List phishing scenarios for a customer
As a Reseller you can list a customer's phishing scenarios (templates used to run campaigns) scoped to that company. Get the customer's Company ID, then call the phishing-scenario search endpoint with X-KEEPNET-Company-Id. Use a credential with Client Role = Reseller. Use the scenario resourceId when creating or managing phishing campaigns for that customer.
POST /api/companies/search
Get the customer's Company ID. Use the resourceId of the desired company in the next steps.
Retrieves a paginated list of all companies you manage with license details. Each item includes
resourceId— use it as the Company ID for scoped requests. Test it: Authorize with Client ID/Secret, then Send — request body is pre-filled.
- : API
Client ID and Client Secret from Company → Company Settings → REST API. Enter credentials to auto-fetch token.
110CreateTimefalseIf true, only companies exceeding license limit are returned
falseOK
POST /api/companies/search HTTP/1.1
Host: api.keepnetlabs.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 126
{
"pageNumber": 1,
"pageSize": 10,
"orderBy": "CreateTime",
"ascending": false,
"filter": {
"Condition": "AND",
"SearchInputTextValue": ""
}
}OK
{
"data": {
"limitExceededCompanyCount": 1,
"pageNumber": 1,
"pageSize": 1,
"totalNumberOfPages": 1,
"totalNumberOfRecords": 1,
"results": [
{
"companyName": "text",
"companyResourceId": "text",
"resellerName": "text",
"industryName": "text",
"industryResourceId": "text",
"licenseTypeName": "text",
"licenseTypeResourceId": "text",
"isNumberOfUsersLimited": true,
"numberOfUsers": "text",
"privacyDurationId": 1,
"licenceExpired": true,
"licenseEndDate": "2026-01-01T00:00:00.000Z",
"createTime": "2026-01-01T00:00:00.000Z",
"targetUserCount": 1,
"children": [
{
"companyName": "text",
"companyResourceId": "text",
"resellerName": "text",
"industryName": "text",
"industryResourceId": "text",
"licenseTypeName": "text",
"licenseTypeResourceId": "text",
"isNumberOfUsersLimited": true,
"numberOfUsers": "text",
"privacyDurationId": 1,
"licenceExpired": true,
"licenseEndDate": "2026-01-01T00:00:00.000Z",
"createTime": "2026-01-01T00:00:00.000Z",
"targetUserCount": 1,
"children": "[Circular Reference]",
"tags": [
"text"
],
"deletedTargetUserCount": 1,
"inactiveTargetUserCount": 1,
"monthlyActiveUserCount": 1
}
],
"tags": [
"text"
],
"deletedTargetUserCount": 1,
"inactiveTargetUserCount": 1,
"monthlyActiveUserCount": 1
}
]
},
"status": "text",
"message": "text",
"validationMessages": [
"text"
]
}From the response, pick the company and note its resourceId. Example: "resourceId": "xC5kfGz7w2Nz" → use as X-KEEPNET-Company-Id in the scenario requests below.
POST /api/phishing-simulator/phishing-scenario/search
Returns a paginated list of phishing scenarios for that customer. Send X-KEEPNET-Company-Id. Response includes scenario resourceId, name, and other fields — use a scenario ID when creating a phishing campaign.
Returns a list of the phishing scenarios. As a Reseller, send
X-KEEPNET-Company-Id: <companyResourceId>. Request body: optionalfilter,pageNumber,pageSize,orderBy,ascending. Test it: Endpoints → PhishingScenario — use dummy data (H8d) and set the header to a Company ID from companies/search.
- : API
Client ID and Client Secret from Company → Company Settings → REST API. Enter credentials to auto-fetch token.
120NametrueOK
POST /api/phishing-simulator/phishing-scenario/search HTTP/1.1
Host: api.keepnetlabs.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 119
{
"pageNumber": 1,
"pageSize": 20,
"orderBy": "Name",
"ascending": true,
"filter": {
"Condition": "AND",
"SearchInputTextValue": ""
}
}OK
{
"data": {
"pageNumber": 1,
"pageSize": 1,
"totalNumberOfPages": 1,
"totalNumberOfRecords": 1,
"results": [
{
"resourceId": "text",
"name": "text",
"quishingType": "text",
"method": "text",
"difficulty": "text",
"category": "text",
"languageTypeName": [
"text"
],
"languageTypeCode": [
"text"
],
"tags": [
"text"
],
"isOwner": true,
"isSelected": true,
"createdBy": "text",
"createTime": "2026-01-01T00:00:00.000Z",
"roles": [
{
"name": "text"
}
]
}
]
},
"status": "text",
"message": "text",
"validationMessages": [
"text"
]
}To export the scenario list: POST /api/phishing-simulator/phishing-scenario/search/export — same header and body shape; see Endpoints → PhishingScenario.
Common errors
403 Forbidden — Credential is not Reseller, or the Company ID is not one you manage. Set Client Role = Reseller. Roles and permissions →
401 Unauthorized — Missing or invalid token. Request a new token via
POST /connect/token.404 Not Found / 400 Bad Request — Invalid Company ID. Verify Company ID from
POST /api/companies/searchand ensure you sendX-KEEPNET-Company-Idfor the customer.
Related: Scope API requests to a customer →. View customer's campaign list and report → (campaigns and job reports). Create and start phishing campaign for a customer →.
Last updated