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 Workflows API lets external systems start a workflow by name with an input payload, schedule one for later, and read the state of a run.
All endpoints are org-scoped to the API key. See API conventions for authentication, IDs, timestamps, idempotency, and the error envelope.
Run a workflow
POST
POST /v1/workflows/{workflow_name}/run201 Created. The workflow_name path segment is matched against the workflow definition’s name for your org.
The run row is created and committed, and the commit emits a WorkflowRun.Created event to the workflow engine. The engine runs the definition’s entrypoint components that subscribe to that event, which is how a directly runnable workflow starts; an event-driven workflow starts from its own domain events instead. The response returns as soon as the run is created; poll Get a workflow run for progress.
Path parameters
string
required
The name of the workflow as configured for your org.
Request body
object
Workflow input parameters. Optional; defaults to
{}. The value is stored and echoed back on the response. Record IDs under the well-known keys (vendor_id, service_id, assessment_id, engagement_id, contract_id, finding_id, vendor_document_id, questionnaire_response_id, intake_session_id, procurement_id, review_id, eval_id, portal_id, work_queue_item_id, radar_event_id, radar_case_id) tell the workflow’s actions which record to act on, and custom_fields passes custom field values to them. Any other key is stored as given. A number under a well-known key is converted to a string, and null values are dropped.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 run is started. See Idempotency.
Example request
Example response
201 Created:
Response fields
string
Identifier for this run (
cbwr_...). Use it with the get-run endpoint.string
The resolved workflow definition name.
string
Run status. One of:
started, completed, canceled, failed. A new run is started.integer
Unix timestamp (seconds) when the run was created.
object
Echoes the input sent in the request.
Error responses
Schedule a workflow run
POST
POST /v1/workflows/{workflow_name}/schedule201 Created with the schedule. When the time comes, the run starts as if you had called Run a workflow with the same input.
Request body
integer
required
When to run, as a Unix timestamp in seconds. Must be in the future.
object
Workflow input, as for Run a workflow. Defaults to
{}.Idempotency-Key. See Idempotency.
Example request
cURL
Response fields
The schedule carriesid, workflow_definition_id (cbwd_...), scheduled_for, fired_at and canceled_at (both null until the schedule fires or is canceled), cancel_reason, payload (the input pinned at schedule time), and updated_at. The scheduling_* fields are null for schedules created through this endpoint.
Error responses
Get a workflow run
GET
GET /v1/workflows/runs/{workflow_run_id}Path parameters
string
required
The run ID (
cbwr_...).Example request
cURL
Example response
Response fields
string
The run ID (
cbwr_...).string | null
The workflow definition name, or
null if the definition could not be resolved.string | null
The workflow definition ID (
cbwd_...).string
Run status. One of:
started, completed, canceled, failed.integer
Unix timestamp (seconds) when the run was created.
integer | null
Unix timestamp (seconds) when the run finished. Populated only when
status is completed, failed, or canceled; otherwise null.object[]
Executed steps for this run (empty array if none yet). Each step records both the component that ran and the outcome of that component’s action. Each step has:
status is terminal (completed, canceled, or failed); steps[] grows as the engine progresses, and each step’s status and artifacts reflect what that stage did.
Error responses
List workflow runs
GET
GET /v1/workflows/runsQuery parameters
string
Filter to runs of a specific workflow definition by name. Returns
404 workflow_not_found if no workflow with that name exists for the org.string
Filter by run status. Repeat to include multiple statuses, for example,
?status=started&status=failed. Valid values: started, completed, canceled, failed.integer
Unix timestamp (seconds). Include only runs created at or after this time.
integer
Unix timestamp (seconds). Include only runs created at or before this time.
integer
default:"100"
Page size. Min
1, max 500.integer
default:"0"
Pagination offset.
Example request
cURL
Example response
Response fields
object[]
Paginated list of run summaries. Each entry mirrors the keys of Get a workflow run, minus
steps[] and plus step_count. Fetch the full run via GET /v1/workflows/runs/{workflow_run_id} when you need per-stage outcomes.integer
Total number of runs matching the filters (across all pages).
integer
Echoes the requested page size.
integer
Echoes the requested offset.