Skip to main content
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
POST /v1/assessments
Creates a new assessment for a vendor. Returns 201 Created.

Request body

string
required
The vendor ID (cbvndr_...) the assessment runs against.
string[]
required
Control set IDs (cbctst_...) to evaluate the vendor against. May be an empty array, but the field itself is required.
string
Assessment name. Optional.
string
Optional template used to auto-generate the assessment name.
string[]
Optional service IDs (cbsvc_...) the assessment covers.
string
Optional user ID (cbuser_...) to assign the assessment to.
string
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.
string[]
Optional document IDs (cbvdoc_...) to attach as supporting evidence. Upload documents first with the Documents API to obtain these IDs.

Headers

string
required
Bearer ak_...
string
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

string
The new assessment ID (cbqsrw_...).
string
The vendor the assessment runs against.
string
The assessment name.
string
Assessment status. One of: created, collecting_documents, indexing_supporting_documents, analyzing_questionnaire, review_evals, complete, failed, canceled. Newly created assessments are typically created.
string[]
The control sets being evaluated.
string[]
The services the assessment covers.
string | null
The assigned user (cbuser_...), if any.
number | null
Score as a decimal (typically 0–1), or null until scored.
integer | null
Number of findings on the assessment. 0 on creation.
integer | null
Unix timestamp (seconds) when the assessment was initiated, or null.
integer
Unix timestamp (seconds) when the assessment was created.
integer
Unix timestamp (seconds) of the last update.
string | null
The workflow run created when trigger_workflow was supplied, otherwise null.

Error responses

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
GET /v1/assessments/{assessment_id}
Fetches a single assessment by ID.

Path parameters

string
required
The assessment ID (cbqsrw_...).

Example request

cURL

Example response

The shape matches the create response, minus workflow_run_id. findings_count is a computed count of findings on the assessment.

Error responses

Cancel (archive) an assessment

DELETE
DELETE /v1/assessments/{assessment_id}
Cancels an in-flight assessment or archives a completed one. Mirrors the in-product “Archive” action on the assessment page. The operation is a soft delete: the assessment row plus its evals and findings are marked 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

string
required
The assessment ID (cbqsrw_...).

Example request

cURL

Example response

200 OK:

Response fields

string
The archived assessment ID.
string
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.
boolean
Always true after a successful archive.
integer
Unix timestamp (seconds) when the archive took effect.

Error responses

Archive is idempotent: archiving an already-archived assessment returns 200 with the same envelope. To restore an archived assessment, use the Coverbase dashboard.