/workflows endpoints let any HTTP client manage Armature workflows and dispatch runs on demand. Use them to wire workflow creation into onboarding scripts, trigger validation runs from CI on every deploy, or sync workflow definitions from a source-of-truth repository.
All paths are relative to the REST API base URL. All requests require an API key; write operations require editor, admin, or owner.
List workflows
| Parameter | Description |
|---|---|
category | One or more category slugs. Comma-separated values are accepted. |
categorySlug | Alternative single-slug filter. |
Get a workflow
Create a workflow
editor, admin, or owner.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | yes | Workflow name. |
mcpServerId | UUID | yes | ID of the MCP source to test. |
testerPrompt | string | yes | Prompt the tester agent runs against the source. |
description | string | — | Short description shown in the dashboard. |
defaultMcpAuthProfileId | UUID | — | Default auth profile for the source. |
testerModelId | string | — | Single tester model. |
testerModelIds | string[] | — | Multiple tester models to fan out across. |
testerTargets | object[] | — | { modelId, skillMode, skillVersionId } per target. |
criteria | object[] | — | { criterionText, isRequired } evaluation criteria. |
schedule | object | — | Schedule config (omit for manual-only). |
limits, retryPolicy, toolPolicy, metadata | object | — | Execution policy overrides. |
201 Created)
Update a workflow
schedule: null to make a workflow manual-only. A new workflow version is written and returned in currentVersion.
Archive a workflow
{ "ok": true }.
Manually dispatch a run
| Field | Description |
|---|---|
reason | Human-readable label for the run trigger. Shown in the dashboard. |
baselineRunId | Run ID to use as the comparison baseline. |
idempotencyKey | Deduplicates retries — Armature returns the existing run for the same key. |
forceNewRun | Bypass dedup and force a new dispatch. |
testerModelIds | Override the workflow’s configured models for this run. |
testerTargets | Override per-target { modelId, skillMode, skillVersionId }. |
202 Accepted) includes the dispatched run IDs. Poll them with GET /runs/{id} until they reach a terminal state.
Related
- Workflow overview — concepts behind workflows, schedules, and criteria.
- Authoring workflows — guidance on prompts, criteria, and tester targets.
- Inspect runs — pull results back from dispatched runs.