API v1 gives external services a stable way to operate published workflows and human approvals without using a user session. Workspace boundaries, token abilities, plan limits, and workflow-run limits continue to apply.
Give external services only the access they need within one workspace.
Workspace owners and admins create service tokens from API access in the application. Send the token as a Bearer credential with every request.
Authorization: Bearer wst_v1_<token-id>.<secret>
The full token is shown only once.
Store it in a secret manager and never place it in source control, browser code, query strings, or logs. Rotation revokes the previous value immediately.
Abilities
Grant each application only the operations it needs.
Ability
Allows
workflows:read
View published workflows
runs:create
Start workflow runs
runs:read
View workflow runs
runs:cancel
Cancel workflow runs
approvals:read
View pending approvals
approvals:write
Resolve approvals
Site availability control.
The site administrator can disable the Workspace API globally. While disabled, existing tokens are retained but cannot authenticate, and service endpoints return HTTP 503 with the error code api_disabled.
API reference / Workflows
List workflows
Find published workflows available to your workspace service token.
Reuse a unique key for retries of the same logical attempt. Use 8–200 letters, numbers, periods, underscores, colons, or hyphens.
X-Request-IdstringOptional
A correlation ID of up to 100 letters, numbers, periods, underscores, colons, or hyphens.
Request body
payloadobjectOptional
Inputs to pass into the workflow. Defaults to an empty object.
Response
202 Accepted
A successful start returns HTTP 202. The run may already be finished when synchronous execution is configured, so always inspect its returned status.
Create, cancel, and approval-decision responses contain identifiers and state only. Grant the corresponding read ability and use the GET endpoint when the integration needs workflow output or approval context.
Idempotent starts
Idempotency-Key is optional. When it is omitted, the API starts the run normally using an internal one-time key. This is convenient for simple calls, but repeating the request may start another run.
For integrations that retry requests automatically, generate a unique value in the calling application and reuse it only for the same logical attempt:
Idempotency-Key: order-1842-attempt-1
Retrying the same workflow and payload with that key returns the original run and includes Idempotent-Replayed: true.
The API stores a hash of the key for 24 hours. Reusing it for different data returns HTTP 409. Keys are isolated per token, and a UUID or durable business identifier plus an attempt number works well.
The run ID returned when you started the workflow.
Response
200 OK
Returns the canceled run’s identifiers and state. A conflicting run state returns HTTP 409.
Create, cancel, and approval-decision responses contain identifiers and state only. Grant the corresponding read ability and use the GET endpoint when the integration needs workflow output or approval context.
Use meta.next_cursor from the previous response to request another page.
per_pageintegerOptional
Return 1 to 100 records per page. Defaults to 25.
statusstringOptional
Defaults to pending. Accepts all, pending, approved, rejected, changes_requested, or canceled.
Approval lists return pending requests by default. A service token can approve, reject, or request changes within its own workspace when granted the appropriate ability.
Response
200 OK
Returns approval requests with their titles, current states, and redacted review context.
The approval ID returned by the approval list endpoint.
Request body
decisionstringRequired
Accepts approved, rejected, or changes_requested. The workflow node must allow the selected decision.
feedbackstring · nullOptional
Required and non-empty for changes_requested. Maximum 4,000 characters.
Feedback is required for a change request, and the workflow node must allow that decision.
Response
200 OK
Returns the approval identifiers and decision state. Grant approvals:read and use the GET endpoint to read the review context.
Create, cancel, and approval-decision responses contain identifiers and state only. Grant the corresponding read ability and use the GET endpoint when the integration needs workflow output or approval context.
Treat cursor values as opaque. Pass the returned value through without changing it.
Reference
Errors and limits
Understand failed requests and when to retry them.
Error envelope
Errors use a stable machine-readable code. Every response includes X-Request-Id; clients may supply a safe X-Request-Id value to correlate logs.
{
"error": {
"code": "insufficient_scope",
"message": "This API token does not have the required ability.",
"details": {
"required": ["runs:create"]
}
},
"request_id": "example-request-1842"
}
HTTP status codes
Status
What it means
401
The Bearer token is missing, malformed, expired, or revoked.
403
The token lacks the required ability.
404
The resource was not found in the token workspace.
409
The operation conflicts with current state or idempotency history.
422
The request is invalid or the workspace cannot perform the operation.
429
A per-token rate limit was exceeded. Wait for the Retry-After interval before retrying.
503
The site administrator has disabled the Workspace API.
Limits and safe output
General requests
60 per minute per token
Run starts
10 per minute per token
JSON request body
Maximum 256 KB
Plan enforcement
Normal workspace and run limits apply
HTTP 429 responses include Retry-After. HTTP 503 with api_disabled means the site administrator has disabled the Workspace API; wait for it to be enabled instead of rotating credentials. Run and approval payloads are redacted before they are returned; authorization headers, credentials, and internal exception metadata are never included in API responses.
Install JustFlows
Add the app to your home screen for faster access.