Silkroute
REST API
The Silkroute API lets you trigger workflows, submit documents for extraction, and manage your organization programmatically.
All requests must be made over HTTPS. The API returns JSON. Dates are in ISO 8601 format (UTC).
Authentication
Authenticate by passing your API key in the Authorization header as a Bearer token.
API keys are generated in Settings → API Keys. Keys are environment-scoped — sandbox keys are prefixed sk_test_, production keys sk_live_.
Errors
The API uses standard HTTP status codes. Errors return a JSON body with a code and message.
| Status | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request — invalid parameters |
| 401 | Unauthorized — invalid or missing API key |
| 403 | Forbidden — insufficient key scope |
| 404 | Not found |
| 422 | Unprocessable — document extraction failed |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
Rate Limits
Rate limits are applied per API key. Limits vary by plan. When you exceed a limit the API returns HTTP 429 with a Retry-After header.
| Endpoint group | Limit |
|---|---|
| Workflows | 600 req / min |
| Runs | 600 req / min |
| Extractions | 120 req / min |
| Organization | 60 req / min |
Workflows
Returns a paginated list of all workflows in your organization.
| Parameter | Type | Description | |
|---|---|---|---|
| limit | integer | Optional | Number of results. Default 20, max 100. |
| cursor | string | Optional | Pagination cursor from previous response. |
| status | string | Optional | Filter by status: active, draft, or paused. |
Retrieves a single workflow by ID.
Creates a new workflow. The workflow is created in draft status.
| Body field | Type | Description | |
|---|---|---|---|
| name | string | Required | Human-readable workflow name. |
| trigger | object | Required | Trigger configuration. See trigger types in Docs. |
| actions | array | Required | Ordered list of action objects. |
| description | string | Optional | Internal description for your team. |
Updates a workflow. Pass only the fields you want to change. To activate a workflow set status to "active".
Permanently deletes a workflow. Active workflows must be paused before deletion. Returns HTTP 204 on success.
Runs
Lists all runs for a workflow, most recent first.
| Parameter | Type | Description | |
|---|---|---|---|
| limit | integer | Optional | Default 50, max 200. |
| status | string | Optional | success, failed, or running. |
| since | string | Optional | ISO 8601 timestamp. Returns runs after this date. |
Retrieves a single run including step-level logs and any extracted output.
Manually triggers a workflow run. Useful for testing or one-off executions outside the configured trigger.
| Body field | Type | Description | |
|---|---|---|---|
| payload | object | Optional | Data passed into the workflow as the trigger payload. |
Extractions
Submits a document to the TRACE engine. Returns an extraction ID. Extractions are processed asynchronously — poll /extractions/{id} or use a webhook for the result.
| Body field | Type | Description | |
|---|---|---|---|
| file | file | Required | Multipart file upload. PDF, PNG, JPG, TIFF, or DOCX. |
| schema | string | Required | Extraction schema identifier (e.g. purchase_order_v2). |
| confidence_threshold | number | Optional | Minimum field-level confidence 0.0–1.0. Default 0.75. |
| webhook_url | string | Optional | URL to POST results to on completion. |
Retrieves an extraction result. The status field will be pending, complete, or failed.
Organization
Returns your organization details including name, plan, and active feature flags.
Lists all API keys for your organization. Key values are redacted — only the prefix and metadata are returned.