Invoke Skill Workstream Run
post
/api/v1/skills/workstream.run/invokeStart a workstream run against the supplied client / period / runtime variables. Returns a run_id you can poll with workstream_status, events_url for live SSE progress, and detail_url to open the run in Workstream Studio. The query_id in the output is the join key for SlackβStudio deep-links.
Request bodyapplication/json
| Field | Type | Description |
|---|---|---|
workstream_idrequired | string | UUID, slug, or 7-char permakey. The adapter resolves it. |
client_id | string (uuid) | null | Client to run against. Optional for client-agnostic workstreams. |
period | string | null | Period label (e.g., 'FY26-Q1', '2026-04'). |
runtime_vars | object | Runtime overrides for the workstream's declared inputs. Keys are input names from `WorkstreamDescribeOutput.inputs_required`; values are JSON-typed (string, number, boolean, array, object, null).show nestedEmpty object. |
idempotency_key | string | null | Caller-supplied stable token (β€200 chars). When the same key is replayed within 24h the API returns the original cycle id rather than starting a duplicate run. Strongly recommended for any automated retry loop. |
Responses
200Skill executed successfully
| Field | Type | Description | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
skillrequired | string | β | ||||||||||||||||||||||||||||||||||||
outputrequired | object | Pointer to the new cycle + URLs the caller can use to monitor / open it.
The canonical noun is ``cycle`` (Workstream β Blueprint β Cycle β Task).
The legacy ``run_id`` field is kept populated alongside ``cycle_id``
for backwards compat with SDK consumers; new code should read
``cycle_id`` and treat ``run_id`` as deprecated.show nested
| ||||||||||||||||||||||||||||||||||||
correlation_idrequired | string | β |
401Authentication required
| Field | Type | Description | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
errorrequired | object | βshow nested
|
403Insufficient permissions
| Field | Type | Description | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
errorrequired | object | βshow nested
|
404Skill not found
| Field | Type | Description | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
errorrequired | object | βshow nested
|
429Rate limit exceeded
| Field | Type | Description | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
errorrequired | object | βshow nested
|
5XXInternal server error
| Field | Type | Description | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
errorrequired | object | βshow nested
|
curl https://api.dev.arch.ie/api/v1/skills/workstream.run/invoke \
-X POST \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/json" \
-d '{
"workstream_id": "string",
"client_id": null,
"period": null,
"runtime_vars": {},
"idempotency_key": null
}'