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/assessments201 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}Path parameters
string
required
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
Cancel (archive) an assessment
DELETE
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
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.