For AI agents: a documentation index is available at https://docs.coverbase.com/llms.txt — this page is also available in markdown by appending .md to the URL.
The Assessments API lets external systems start an assessment for an existing vendor and retrieve its state. The most common use case is a GRC tool or scheduled job kicking off a reassessment of a known vendor.
All endpoints are org-scoped to the API key. See API conventions for authentication, IDs, timestamps, idempotency, and the error envelope.
Create an assessment
POST /v1/assessments201 Created.
Request body
The vendor ID (
cbvndr_...) the assessment runs against.Control set IDs (
cbctst_...) to evaluate the vendor against. May be an empty array, but the field itself is required.Assessment name. Optional.
Optional template used to auto-generate the assessment name.
Optional service IDs (
cbsvc_...) the assessment covers.Optional user ID (
cbuser_...) to assign the assessment to.Optional name of a workflow to invoke alongside the assessment. If the named workflow does not exist for the org, the request fails with
404 workflow_not_found.Optional document IDs (
cbvdoc_...) to attach as supporting evidence. Upload
documents first with the Documents API to obtain
these IDs.Headers
Bearer ak_...Optional. If the same key is sent again within 24 hours for this endpoint, the original response is returned and no new assessment is created. See Idempotency.
Example request
Example response
201 Created:
Response fields
The new assessment ID (
cbqsrw_...).The vendor the assessment runs against.
The assessment name.
Assessment status. One of:
created, collecting_documents, indexing_supporting_documents, analyzing_questionnaire, review_evals, complete, failed, canceled. Newly created assessments are typically created.The control sets being evaluated.
The services the assessment covers.
The assigned user (
cbuser_...), if any.Score as a decimal (typically 0–1), or
null until scored.Number of findings on the assessment.
0 on creation.Unix timestamp (seconds) when the assessment was initiated, or
null.Unix timestamp (seconds) when the assessment was created.
Unix timestamp (seconds) of the last update.
The workflow run created when
trigger_workflow was supplied, otherwise null.Error responses
| Status | Body | When |
|---|---|---|
| 400 | {"detail": {"error": "..."}} | The assessment could not be created (e.g. an invalid vendor_id, control_set_ids, service_ids, or assignee_id). error contains the reason. |
| 404 | {"detail": {"code": "workflow_not_found", "message": "Workflow '...' not found."}} | trigger_workflow was supplied but no workflow with that name exists for the org. |
| 422 | Standard validation error | The request body failed schema validation (e.g. vendor_id or control_set_ids missing). See API conventions. |
Re-sending a request with a previously used
Idempotency-Key returns the original 201 response body. It does not return a conflict error.Retrieve an assessment
GET /v1/assessments/{assessment_id}Path parameters
The assessment ID (
cbqsrw_...).Example request
cURL
Example response
workflow_run_id. findings_count is a computed count of findings on the assessment.
Error responses
| Status | Body | When |
|---|---|---|
| 404 | {"detail": {"code": "assessment_not_found", "message": "Assessment not found."}} | The assessment_id does not exist or is not in the API key’s org. |
Cancel (archive) an assessment
DELETE /v1/assessments/{assessment_id}is_archived=true, the assessment’s portal (if any) is closed, and any in-flight workflow runs targeting the assessment are canceled in the workflow engine on a best-effort basis. The underlying rows are retained for audit; GET /v1/assessments/{assessment_id} will continue to return them.
Path parameters
The assessment ID (
cbqsrw_...).Example request
cURL
Example response
200 OK:
Response fields
The archived assessment ID.
Assessment status at the time of archival. The workflow engine receives a best-effort cancel signal immediately after archive; transient runs may still surface a brief
canceled lifecycle event.Always
true after a successful archive.Unix timestamp (seconds) when the archive took effect.
Error responses
| Status | Body | When |
|---|---|---|
| 404 | {"detail": {"code": "assessment_not_found", "message": "Assessment not found."}} | The assessment_id does not exist or is not in the API key’s org. |
Archive is idempotent: archiving an already-archived assessment returns
200 with the same envelope. To restore an archived assessment, use the Coverbase dashboard.