Gophish manages recipients for campaigns in groups. Each group can contain one or more recipients. Groups have the following format:
{id : int64name : stringtargets : array(Target)modified_date : string(datetime)}
Each recipient in the targets
field has the following format:
{email : stringfirst_name : stringlast_name : stringposition : string}
[{"id": 1,"name": "Example Group","modified_date": "2018-10-08T15:56:13.790016Z","targets": [{"email": "[email protected]","first_name": "Example","last_name": "User","position": ""},{"email": "[email protected]","first_name": "Foo","last_name": "Bar","position": ""}]}]
{"id": 1,"name": "Example Group","modified_date": "2018-10-08T15:56:13.790016Z","targets": [{"email": "[email protected]","first_name": "Example","last_name": "User","position": ""},{"email": "[email protected]","first_name": "Foo","last_name": "Bar","position": ""}]}
{"message": "Group not found","success": false,"data": null}
Returns a 404 error if no group is found with the provided ID.
[{"id": 1,"name": "Example Group","modified_date": "2018-10-08T15:56:13.790016Z","num_targets": 2}]
{"id": 1,"name": "Example Group","modified_date": "2018-10-08T15:56:13.790016Z","num_targets": 2}
{"message": "Group not found","success": false,"data": null}
It may be the case that you just want the number of members in a group, not necessarily the full member details. This API endpoint returns a summary for a group.
Returns a 404 error if no group is found with the provided ID.
{"id": 1,"name": "Example Group","modified_date": "2018-10-08T15:56:13.790016Z","targets": [{"email": "[email protected]","first_name": "Example","last_name": "User","position": ""},{"email": "[email protected]","first_name": "Foo","last_name": "Bar","position": ""}]}
{"message": "Group name not specified","success": false,"data": null}
When creating a new group, you must specify a unique name
, as well as a list of targets
. Here's an example request body:
{"name": "Example Group","targets": [{"email": "[email protected]","first_name": "Example","last_name": "User","position": ""},{"email": "[email protected]","first_name": "Foo","last_name": "Bar","position": ""}]}
{"id": 1,"name": "Example Modified Group","modified_date": "2018-10-08T15:56:13.790016Z","targets": [{"email": "[email protected]","first_name": "Foo","last_name": "Bar","position": ""}]}
{"message": "Group not found","success": false,"data": null}
This API endpoint allows you to modify an existing group. The request must include the complete group JSON, not just the fields you're wanting to update. This means that you need to include the matching id
field. Here's an example request:
{"id": 1,"name": "Example Modified Go","targets": [{"email": "[email protected]","first_name": "Foo","last_name": "Bar","position": ""}]}
Returns a 404 if no group is found with the provided ID.
{"message": "Group deleted successfully!","success": true,"data": null}
{"message": "Group not found","success": false,"data": null}
Returns a 404 error if no group is found with the provided ID.
[{"email": "[email protected]","first_name": "Example","last_name": "User","position": "Systems Administrator"},{"email": "[email protected]","first_name": "John","last_name": "Doe","position": "CEO"}]
This API endpoint allows you to upload a CSV, returning a list of group targets. For example, you can use the following curl
command to upload the CSV:
curl -k https://localhost:3333/api/import/group -XPOST \-F "[email protected]_template.csv" \-H "Authorization: Bearer 0123456789abcdef"
The results of this API endpoint can be used as the targets
parameter in a call to the Create Group endpoint.