Groups
The groups endpoint allows you to create, view, and manage PhishWare groups.
Quick Example
This example shows how to retrieve the name and size of every group in PhishWare.
from
gophish
import
Gophish
api_key =
'API_KEY'
api = Gophish(api_key)
for
group
in
api.groups.get():
print
'{} has {} users'
.format(group.name, len(group.targets))
Models
gophish.models.User
Attributes
id
(int) The user IDfirst_name
(str) The first namelast_name
(str) The last nameemail
(str) The email addressposition
(str) The position (job role)Methods
__init__(self, **kwargs)
- Returns a new Target Example:result = Target( first_name= 'Foo' , last_name= 'Bar' , position= 'Tester' , email= '[email protected]' )
gophish.models.Group
A group contains one or more models.User
objects. The group name must be unique.
Attributes
id
(int) The group IDtargets
(list(models.User)) The group's usersname
(str) The group namemodified_date
(optional: datetime.datetime) The scheduled time for group launch
Methods
__init__(self, **kwargs)
- Returns a new Group
Example:
from
gophish.models
import
*
targets = [
Target(first_name=
'John'
, last_name=
'Doe'
, email=
'[email protected]'
),
Target(first_name=
'Jane'
, last_name=
'Doe'
, email=
'[email protected]'
)]
group = Group(name=
'Doe Company'
, targets=targets)
Methods
gophish.api.groups.get(group_id=None)
Gets the details for one or more groups. To get a particular group, set the ID to the group ID.
If the group_id
is not set, all groups owned by the current user will be returned.
Returns
If the
group
is set:models.Group
If
group_id
isNone
:list(models.Group)
gophish.api.groups.post(group)
Creates a new group. This endpoint requires you to submit a gophish.models.Group
object.
Returns
The gophish.models.Group
object that was created.
gophish.api.groups.put(group)
Edits an existing group. This endpoint requires you to submit an existing gophish.models.Group
object with its id
attribute set correctly.
Returns
The gophish.models.Group
object that was edited.
gophish.api.groups.delete(group_id)
Deletes the group specified by group_id
.
Returns
A gophish.models.Status
message.
Examples
Here are some examples to show how to use the API.
All of these examples assume the following setup:
from
gophish
import
Gophish
from
gophish.models
import
*
api_key =
'API_KEY'
api = Gophish(api_key)
Get All Groups
groups = api.groups.get()
Get Single Group
group = api.groups.get(group_id=
1
)
Create New Group
targets = [
Target(first_name=
'John'
, last_name=
'Doe'
, email=
'[email protected]'
),
Target(first_name=
'Jane'
, last_name=
'Doe'
, email=
'[email protected]'
)]
group = Group(name=
'Doe Company'
, targets=targets)
group = api.groups.post(group)
print
group.id