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 arbitrary input payload, 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 /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, then a Workflow.RunRequested event is dispatched to the workflow engine, which executes the definition’s entrypoint components. The response returns as soon as the run is created and the event is enqueued — poll Get a workflow run for progress.
Path parameters
The name of the workflow as configured for your org.
Request body
Workflow input parameters. Optional — defaults to
{}. The value is stored and echoed back on the response; its schema is workflow-specific and is not validated by this endpoint.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 run is started. See Idempotency.
Example request
Example response
201 Created:
Response fields
Identifier for this run (
cbwr_...). Use it with the get-run endpoint.The resolved workflow definition name.
Run status. One of:
started, completed, canceled, failed. A new run is started.Unix timestamp (seconds) when the run was created.
Echoes the input sent in the request.
Error responses
| Status | Body | When |
|---|---|---|
| 404 | {"detail": {"code": "workflow_not_found", "message": "Workflow '...' not found."}} | No workflow with that name exists for the org. |
| 409 | {"detail": {"code": "workflow_disabled", "message": "Workflow '...' is disabled."}} | The workflow exists but is not enabled. |
| 502 | {"detail": {"code": "workflow_dispatch_failed", "message": "Workflow run was created but could not be dispatched. Retry with the same workflow run id (...)."}} | The run row was created but the dispatch event failed. The run ID is in the message; safe to retry. |
| 422 | Standard validation error | The request body failed schema validation. See API conventions. |
Get a workflow run
GET /v1/workflows/runs/{workflow_run_id}Path parameters
The run ID (
cbwr_...).Example request
cURL
Example response
Response fields
The run ID (
cbwr_...).The workflow definition name, or
null if the definition could not be resolved.The workflow definition ID (
cbwd_...).Run status. One of:
started, completed, canceled, failed.Unix timestamp (seconds) when the run was created.
Unix timestamp (seconds) when the run finished. Populated only when
status is completed, failed, or canceled; otherwise null.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 actually did.
Error responses
| Status | Body | When |
|---|---|---|
| 404 | {"detail": {"code": "workflow_run_not_found", "message": "Workflow run not found."}} | The workflow_run_id does not exist or is not in the API key’s org. |
List workflow runs
GET /v1/workflows/runsQuery parameters
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.Filter by run status. Repeat to include multiple statuses, e.g.
?status=started&status=failed. Valid values: started, completed, canceled, failed.Unix timestamp (seconds). Include only runs created at or after this time.
Unix timestamp (seconds). Include only runs created at or before this time.
Page size. Min
1, max 500.Pagination offset.
Example request
cURL
Example response
Response fields
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.Total number of runs matching the filters (across all pages).
Echoes the requested page size.
Echoes the requested offset.
Error responses
| Status | Body | When |
|---|---|---|
| 404 | {"detail": {"code": "workflow_not_found", "message": "Workflow '...' not found."}} | workflow_name was supplied but no workflow with that name exists for the org. |
| 422 | Standard validation error | A query parameter failed validation (e.g. limit out of range, malformed status). |