Pull survey results for a customer

As a Reseller you can list a customer's survey enrollments, get the summary report, and pull per-user survey results (status, progress, and question-level responses) for analysis or reporting. Use a credential with Client Role = Reseller. Send X-KEEPNET-Company-Id and x-ir-company-id (for enrollment search) so results are scoped to that customer.


POST /api/companies/search

Use this to get the customer's Company ID; use the resourceId as X-KEEPNET-Company-Id in the requests below. Retrieves a paginated list of companies you manage. Test it: Authorize with Client ID/Secret, then Send — request body is pre-filled.

Retrieves a list of all companies

post
chevron-right
lockRequired scopes
This endpoint requires the following scopes:
  • : API
Authorizations
OAuth2clientCredentialsRequired

Client ID and Client Secret from Company → Company Settings → REST API. Enter credentials to auto-fetch token.

Token URL:
Body
pageNumberintegerRequiredExample: 1
pageSizeintegerRequiredExample: 10
orderBystringRequiredExample: CreateTime
ascendingbooleanRequiredExample: false
isTargetUserCountExceededLimitbooleanOptional

If true, only companies exceeding license limit are returned

Example: false
Responses
chevron-right
200

OK

application/json
statusstringOptional
messagestring · nullableOptional
validationMessagesstring[] · nullableOptional
post
/api/companies/search
200

OK


POST /api/enrollments/search

Returns a list of enrollments for the customer. Send X-KEEPNET-Company-Id and x-ir-company-id with the same Company ID. Include enrollmentType: "Survey" in the request body to list only survey enrollments. Use enrollmentId from the response for the summary and users report below.

Returns a list of enrollments

post
chevron-right
lockRequired scopes
This endpoint requires the following scopes:
  • : API
Authorizations
OAuth2clientCredentialsRequired

Client ID and Client Secret from Company → Company Settings → REST API. Enter credentials to auto-fetch token.

Token URL:
Body
pageNumberintegerRequiredExample: 1
pageSizeintegerRequiredExample: 20
orderBystringRequiredExample: CreateTime
ascendingbooleanRequiredExample: false
enrollmentTypestringOptional

Optional: use "Survey" to list only survey enrollments

Example: Survey
Responses
chevron-right
200

OK

application/json
statusstring · nullableOptional
messagestring · nullableOptional
validationMessagesstring[] · nullableOptional
post
/api/enrollments/search
200

OK


GET /api/enrollments/{resourceId}

Returns full details for one enrollment. As a Reseller, send X-KEEPNET-Company-Id: <companyResourceId> for the customer that owns this enrollment.

Get enrollment by Id

get
chevron-right
lockRequired scopes
This endpoint requires the following scopes:
  • : API
Authorizations
OAuth2clientCredentialsRequired

Client ID and Client Secret from Company → Company Settings → REST API. Enter credentials to auto-fetch token.

Token URL:
Path parameters
resourceIdstringRequired
Responses
chevron-right
200

OK

application/json
statusstring · nullableOptional
messagestring · nullableOptional
validationMessagesstring[] · nullableOptional
get
/api/enrollments/{resourceId}
200

OK


GET /api/training-reports/{enrollmentId}/summary

Returns the enrollment summary (overview) for the survey. Send X-KEEPNET-Company-Id. For Survey enrollments you can pass the optional query parameter trainingType=0 if required by the API.

Returns enrollment summary report

get
chevron-right
lockRequired scopes
This endpoint requires the following scopes:
  • : API
Authorizations
OAuth2clientCredentialsRequired

Client ID and Client Secret from Company → Company Settings → REST API. Enter credentials to auto-fetch token.

Token URL:
Path parameters
enrollmentIdstringRequired
Query parameters
trainingTypestringOptional
Responses
chevron-right
200

OK

application/json
statusstring · nullableOptional
messagestring · nullableOptional
validationMessagesstring[] · nullableOptional
get
/api/training-reports/{enrollmentId}/summary
200

OK


POST /api/training-reports/{enrollmentId}/users/search

Returns the per-user report for that survey enrollment — one row per user with status, progress, and related fields. Send X-KEEPNET-Company-Id. Request body: filter (required), pageNumber, pageSize, orderBy, ascending. For Survey enrollments include trainingType (e.g. 0) in the body if required. See Endpoints → TrainingReport for the full schema.

Returns target user training report for an enrollment

post
chevron-right
lockRequired scopes
This endpoint requires the following scopes:
  • : API
Authorizations
OAuth2clientCredentialsRequired

Client ID and Client Secret from Company → Company Settings → REST API. Enter credentials to auto-fetch token.

Token URL:
Path parameters
enrollmentIdstringRequired
Body
pageNumberintegerRequiredExample: 1
pageSizeintegerRequiredExample: 100
orderBystringRequiredExample: Email
ascendingbooleanRequiredExample: true
trainingTypeinteger · nullableOptional

Optional: e.g. 0 for Survey enrollment

Responses
chevron-right
200

OK

application/json
statusstring · nullableOptional
messagestring · nullableOptional
validationMessagesstring[] · nullableOptional
post
/api/training-reports/{enrollmentId}/users/search
200

OK


GET /api/training-reports/{enrollmentId}/interactions/{targetUserResourceId}

Returns per-user interaction data for the enrollment (e.g. survey question-level responses when the enrollment is a survey). Send X-KEEPNET-Company-Id. Use targetUserResourceId from the users/search response. See Endpoints → TrainingReport for the response shape.

Returns interactions for an user

get
chevron-right
lockRequired scopes
This endpoint requires the following scopes:
  • : API
Authorizations
OAuth2clientCredentialsRequired

Client ID and Client Secret from Company → Company Settings → REST API. Enter credentials to auto-fetch token.

Token URL:
Path parameters
enrollmentIdstringRequired
targetUserResourceIdstringRequired
Query parameters
emailEventTypestringOptional
trainingTypestringOptional
Responses
chevron-right
200

OK

application/json
statusstring · nullableOptional
messagestring · nullableOptional
validationMessagesstring[] · nullableOptional
get
/api/training-reports/{enrollmentId}/interactions/{targetUserResourceId}
200

OK


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.

  • 400 Bad Request — Invalid request body. For POST /api/enrollments/search, ensure filter is sent with the required structure (e.g. Condition, FilterGroups). For survey-only results, include enrollmentType: "Survey". For users/search, include the required filter object.

  • 404 Not Found — Invalid Company ID or enrollment ID. Verify Company ID from POST /api/companies/search and enrollment ID from POST /api/enrollments/search; send X-KEEPNET-Company-Id and x-ir-company-id for enrollment search.

circle-info

Platform UI: View survey enrollments and reports under Awareness Educator → Enrollments. Enrollments →

Related: View customer's enrollment list and report →. View customer's enrollment sending, certificates, and notifications →. Scope API requests to a customer →.

Last updated