Gateway API¶
The Obra gateway exposes a workflow-native local control plane over HTTP and WebSocket:
- packaged Workflow Studio browser routes under
/studio/* - canonical HTTP routes under
/api/* - typed event streaming on
WS /api/events/stream - authenticated diagnostics on
/api/health/details - a generated OpenAPI artifact at openapi.json
Legacy /v1/* routes are not part of the supported public contract.
Install¶
The gateway runtime and its dependencies are included in the base package.
Start the server¶
Override defaults with flags:
Check status:
obra studio vs obra gateway start¶
obra studio is the default customer launch path. It handles setup and login
preflight, starts or reuses the local gateway, and opens the packaged browser
UI under /studio/*.
Use obra gateway start directly when you intentionally want API-only
automation, custom token management, or gateway-only debugging.
Authentication¶
The gateway supports:
- bearer auth for automation and direct API clients
- a same-origin browser session for Workflow Studio launched through
obra studio
Bearer requests use:
/health and /ready are the only unauthenticated routes.
Discovery¶
GET /api is the API-first entry point. It returns the current gateway version,
an inventory of route groups, and discovery links for the most useful next
steps.
curl http://127.0.0.1:18790/api \
-H "Authorization: Bearer <token>"
curl http://127.0.0.1:18790/api/domains/ \
-H "Authorization: Bearer <token>"
curl http://127.0.0.1:18790/api/runners/kinds \
-H "Authorization: Bearer <token>"
Example discovery response:
{
"version": "3.2.32",
"route_groups": [
{
"name": "assistant",
"base_path": "/api/assistant",
"route_count": 21
},
{
"name": "workflow-runs",
"base_path": "/api/workflow-runs",
"route_count": 18
},
{
"name": "workflows",
"base_path": "/api/workflows",
"route_count": 14
}
],
"_links": {
"self": "/api",
"domains": "/api/domains",
"runners_kinds": "/api/runners/kinds",
"sessions": "/api/sessions"
}
}
GET /api uses _links. Most resource payloads use links.
Cross-cutting API patterns¶
Pagination¶
List routes support cursor pagination with ?cursor=<opaque>&limit=<int>.
- default limit comes from gateway config
- max limit comes from gateway config
- the
paginationblock appears only whencursororlimitis requested - collection keys stay stable for backward compatibility
{
"workflow_runs": [
{"run_id": "run-1"},
{"run_id": "run-2"}
],
"pagination": {
"next_cursor": "Mg",
"has_more": true,
"total_count": 8
}
}
Rate limit headers¶
All /api/* responses include rate-limit headers. 429 responses also include
Retry-After.
Resource links¶
Workflow, run, session, derivation, and thread payloads expose route-backed
links objects so API clients can follow next actions directly.
{
"session": {
"session_id": "gateway-session-123",
"status": "running",
"links": {
"self": "/api/sessions/gateway-session-123",
"repair": "/api/sessions/gateway-session-123/repair",
"force_complete": "/api/sessions/gateway-session-123/force-complete"
}
}
}
Error payload shapes¶
Some routes use structured GatewayAPIError envelopes:
{
"error_code": "unknown_runner_kind",
"message": "Unknown runner kind: workflow_runner",
"hint": "Valid kinds: command, http, python"
}
Other surfaces still return plain FastAPI detail payloads, including rate
limiting and parts of the callbacks and webhooks surface:
Workflows¶
Workflow routes cover listing, revisions, create, validate, archive, restore, patch, delete, contract inspection, and snapshot export/import.
curl "http://127.0.0.1:18790/api/workflows/?view=active&limit=20" \
-H "Authorization: Bearer <token>"
curl -X POST http://127.0.0.1:18790/api/workflows/ \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"title": "Claims exception review",
"stages": [],
"transitions": []
}'
curl -X PATCH http://127.0.0.1:18790/api/workflows/WORKFLOW-CLAIMS-001 \
-H "Authorization: Bearer <token>" \
-H "If-Match: rev-12" \
-H "Content-Type: application/json" \
-d '{
"operations": [
{"op": "replace", "path": "/title", "value": "Claims exception review v2"}
]
}'
Use X-Force-Delete: true on DELETE /api/workflows/{workflow_id} only when
you intend a permanent delete instead of a soft-delete-to-trash flow.
Inspect a workflow's input/output contract:
curl http://127.0.0.1:18790/api/workflows/WORKFLOW-CLAIMS-001/contract \
-H "Authorization: Bearer <token>"
Export and import workflow snapshots for backup or migration:
curl http://127.0.0.1:18790/api/workflows/export \
-H "Authorization: Bearer <token>" \
-o workflows-snapshot.json
curl -X POST http://127.0.0.1:18790/api/workflows/import \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d @workflows-snapshot.json
Workflow runs¶
Workflow-run routes cover launch, inspection, per-stage visibility, lineage, review-state inspection, and operator control.
curl -X POST http://127.0.0.1:18790/api/workflow-runs/ \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"objective": "Review the claims exception workflow and implement the approved fix",
"project_id": "claims-ops",
"working_dir": "~/obra-projects/claims-ops",
"workflow_id": "WORKFLOW-CLAIMS-001",
"revision_id": "rev-12",
"domain_id": "business"
}'
curl http://127.0.0.1:18790/api/workflow-runs/<run_id>/stages \
-H "Authorization: Bearer <token>"
curl http://127.0.0.1:18790/api/workflow-runs/<run_id>/summary \
-H "Authorization: Bearer <token>"
For comparisons, use:
curl "http://127.0.0.1:18790/api/workflow-runs/compare?run_ids=run-a,run-b" \
-H "Authorization: Bearer <token>"
Validate run inputs before launch:
curl -X POST http://127.0.0.1:18790/api/workflow-runs/validate-input \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"workflow_id": "WORKFLOW-CLAIMS-001",
"revision_id": "rev-12",
"objective": "Run the nightly claims triage"
}'
Fetch stage-grouped outputs from a completed run:
Workflow derivations¶
Derivations cover workflow creation, inspection, operator actions, resume, and acceptance.
curl -X POST http://127.0.0.1:18790/api/workflow-derivations/ \
-H "Authorization: Bearer <token>" \
-H "Idempotency-Key: derive-claims-001" \
-H "Content-Type: application/json" \
-d '{
"mission": "Derive a revised claims exception workflow",
"project_id": "claims-ops",
"working_dir": "~/obra-projects/claims-ops",
"domain_id": "business"
}'
curl -X POST http://127.0.0.1:18790/api/workflow-derivations/<derivation_id>/accept \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"expected_baseline_ref": {
"workflow_id": "WORKFLOW-CLAIMS-001",
"revision_id": "rev-12"
}
}'
Sessions¶
Gateway sessions let API clients inspect and recover bound hybrid sessions for the authenticated owner.
curl "http://127.0.0.1:18790/api/sessions/?status=active" \
-H "Authorization: Bearer <token>"
curl http://127.0.0.1:18790/api/sessions/<session_id> \
-H "Authorization: Bearer <token>"
curl -X POST http://127.0.0.1:18790/api/sessions/<session_id>/repair \
-H "Authorization: Bearer <token>"
curl -X POST http://127.0.0.1:18790/api/sessions/<session_id>/force-complete \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"reason": "Operator approved closeout after partial recovery"}'
curl -X POST http://127.0.0.1:18790/api/sessions/<session_id>/reset-review \
-H "Authorization: Bearer <token>"
Repair returns structured diagnostics:
{
"issues_found": 2,
"actions_taken": ["phase:updated", "status:updated"],
"new_status": "running",
"new_phase": "execution"
}
The HTTP contract does not include a separate confirmation field for destructive mutations. Any confirmation step is a caller or UI concern, not a request parameter.
Assistant¶
Assistant routes expose durable threads, turns, pipelines, models, action execution, and audit history.
curl -X POST http://127.0.0.1:18790/api/assistant/threads \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"title": "Claims workflow repair"}'
curl -X POST http://127.0.0.1:18790/api/assistant/threads/<thread_id>/turns \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"message": "Propose a safer escalation resolution path."}'
curl http://127.0.0.1:18790/api/assistant/pipelines \
-H "Authorization: Bearer <token>"
Model discovery and refresh are available under /api/assistant/models and
/api/assistant/models/refresh.
Runners¶
Runner routes cover catalog lookup, runner-kind discovery, config-schema inspection, and compatibility checks.
curl http://127.0.0.1:18790/api/runners/ \
-H "Authorization: Bearer <token>"
curl http://127.0.0.1:18790/api/runners/kinds \
-H "Authorization: Bearer <token>"
curl http://127.0.0.1:18790/api/runners/kinds/http/config-schema \
-H "Authorization: Bearer <token>"
curl -X POST http://127.0.0.1:18790/api/runners/compatibility-check \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"runner_id": "software.test.pytest",
"platform": "linux"
}'
The public config-schema route is
GET /api/runners/kinds/{runner_kind}/config-schema.
Interpolation¶
Interpolation validation is available through the authoring API.
curl -X POST "http://127.0.0.1:18790/api/interpolation/validate?resolve=true" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"expression": "${stage.validate_invoice.output.exit_code}",
"context_hint": {
"available_stages": ["validate_invoice", "publish_result"]
}
}'
Callbacks¶
Callback routes provide read-only visibility into persisted callback metadata.
curl http://127.0.0.1:18790/api/callbacks/ \
-H "Authorization: Bearer <token>"
curl http://127.0.0.1:18790/api/callbacks/<callback_id> \
-H "Authorization: Bearer <token>"
Events¶
The gateway supports both per-resource SSE streams and a multiplexed WebSocket stream.
curl -N http://127.0.0.1:18790/api/workflow-runs/<run_id>/events \
-H "Authorization: Bearer <token>"
curl -N http://127.0.0.1:18790/api/workflow-derivations/<derivation_id>/events \
-H "Authorization: Bearer <token>"
curl -N http://127.0.0.1:18790/api/workflows/<workflow_id>/events \
-H "Authorization: Bearer <token>"
Subscriptions may target exactly one of run_id, derivation_id, or
workflow_id.
For a complete reference including reconnection, sequence tracking, and keepalive patterns, see Event Stream Client Reference.
Webhooks¶
Webhooks let automation receive signed workflow, derivation, and run events without holding open stream connections.
curl -X POST http://127.0.0.1:18790/api/webhooks/ \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"callback_url": "https://automation.example.com/hooks/obra",
"resource_type": "workflow_run",
"resource_id": "run-123",
"events": ["workflow_run.completed", "workflow_run.failed"],
"secret": "replace-with-32-char-minimum-secret"
}'
curl -X POST http://127.0.0.1:18790/api/webhooks/<webhook_id>/test \
-H "Authorization: Bearer <token>"
Registrable events come from the canonical resource-type event sets. The
synthetic webhook.test payload is emitted only by the test endpoint and is
not a valid registration event.
Automation¶
Automation routes provide a loopback-oriented launch and watch surface for workflow runs and derivations.
curl -X POST http://127.0.0.1:18790/api/automation/runs \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"objective": "Run the nightly claims triage",
"project_id": "claims-ops",
"working_dir": "~/obra-projects/claims-ops",
"domain_id": "business"
}'
curl -N http://127.0.0.1:18790/api/automation/runs/<run_id>/events \
-H "Authorization: Bearer <token>"
Knowledge documents¶
Knowledge routes let operators upload reference material for assistant context.
curl -X POST http://127.0.0.1:18790/api/knowledge/documents \
-H "Authorization: Bearer <token>" \
-F "file=@policies/claims-review.md"
curl http://127.0.0.1:18790/api/knowledge/documents \
-H "Authorization: Bearer <token>"
Artifacts and template assets¶
Artifact and template-asset routes expose persisted execution evidence and authoring assets.
curl http://127.0.0.1:18790/api/artifacts/<artifact_id>/content \
-H "Authorization: Bearer <token>"
curl http://127.0.0.1:18790/api/template-assets/templates/review.md/revisions \
-H "Authorization: Bearer <token>"
Transcription¶
Voice transcription routes are available when the optional voice runtime is installed.
curl http://127.0.0.1:18790/api/transcription/providers \
-H "Authorization: Bearer <token>"
curl -X POST http://127.0.0.1:18790/api/transcription/transcribe \
-H "Authorization: Bearer <token>" \
-F "audio=@note.wav"
Settings¶
Settings routes expose the gateway configuration catalog and allow operators to inspect and override editable settings.
curl http://127.0.0.1:18790/api/settings/catalog \
-H "Authorization: Bearer <token>"
curl http://127.0.0.1:18790/api/settings \
-H "Authorization: Bearer <token>"
curl -X PATCH http://127.0.0.1:18790/api/settings \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"orchestration.budgets.enabled": true
}'
The catalog returns sections, fields, tiers, and validation metadata. PATCH
applies user-layer overrides; project- and session-locked fields are read-only.
Filesystem¶
Filesystem routes support working-directory browsing and creation from Workflow Studio and API clients.
curl "http://127.0.0.1:18790/api/filesystem/browse?path=~/obra-projects" \
-H "Authorization: Bearer <token>"
curl -X POST http://127.0.0.1:18790/api/filesystem/mkdir \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"path": "~/obra-projects/new-project"}'
curl "http://127.0.0.1:18790/api/filesystem/validate-path?path=~/obra-projects/claims" \
-H "Authorization: Bearer <token>"
curl http://127.0.0.1:18790/api/filesystem/defaults \
-H "Authorization: Bearer <token>"
All paths are validated against traversal and symlink attacks. browse returns
directory listings; validate-path checks existence and characterizes missing
path segments; defaults returns the default projects and home directories.
Onboarding¶
Onboarding routes power the first-run provider setup flow in Obra Desktop and Workflow Studio.
curl http://127.0.0.1:18790/api/onboarding/status \
-H "Authorization: Bearer <token>"
curl http://127.0.0.1:18790/api/onboarding/providers \
-H "Authorization: Bearer <token>"
curl -X POST http://127.0.0.1:18790/api/onboarding/providers/claude/authenticate \
-H "Authorization: Bearer <token>"
curl http://127.0.0.1:18790/api/onboarding/providers/claude/auth-status \
-H "Authorization: Bearer <token>"
curl -X POST http://127.0.0.1:18790/api/onboarding/complete \
-H "Authorization: Bearer <token>"
Providers can be dismissed and later re-enabled with
POST .../providers/{provider_id}/dismiss and .../undismiss.
Health¶
curl http://127.0.0.1:18790/health
curl http://127.0.0.1:18790/ready
curl http://127.0.0.1:18790/api/health/details \
-H "Authorization: Bearer <token>"
/health is the unauthenticated liveness probe. /ready reports subsystem
initialization status without authentication. /api/health/details is the
authenticated diagnostic surface.
Endpoint summary by capability¶
Discovery¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api |
Capabilities manifest and discovery links |
GET |
/api/domains/ |
List installed domains |
GET |
/api/runners/kinds |
List gateway-exposed runner kinds |
Workflows¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api/workflows/ |
List workflows |
GET |
/api/workflows/export |
Export workflow snapshot |
POST |
/api/workflows/import |
Import workflows from snapshot |
GET |
/api/workflows/{workflow_id} |
Inspect one workflow |
GET |
/api/workflows/{workflow_id}/contract |
Inspect workflow I/O contract |
GET |
/api/workflows/{workflow_id}/revisions |
List workflow revisions |
GET |
/api/workflows/{workflow_id}/revisions/{revision_id} |
Inspect one workflow revision |
POST |
/api/workflows/ |
Create a workflow |
POST |
/api/workflows/{workflow_id}/validate |
Validate a workflow draft |
POST |
/api/workflows/{workflow_id}/archive |
Archive a workflow |
POST |
/api/workflows/{workflow_id}/restore |
Restore an archived workflow |
PATCH |
/api/workflows/{workflow_id} |
Apply revision-guarded workflow changes |
DELETE |
/api/workflows/{workflow_id} |
Soft delete or hard delete a workflow |
Workflow Runs¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api/workflow-runs/ |
List workflow runs |
GET |
/api/workflow-runs/compare |
Compare multiple runs |
POST |
/api/workflow-runs/ |
Launch a workflow run |
POST |
/api/workflow-runs/validate-input |
Pre-flight input validation |
GET |
/api/workflow-runs/{run_id} |
Inspect one workflow run |
GET |
/api/workflow-runs/{run_id}/lineage |
Inspect parent-child run lineage |
GET |
/api/workflow-runs/{run_id}/outputs |
Get stage-grouped run outputs |
POST |
/api/workflow-runs/{run_id}/cancel |
Cancel a run |
POST |
/api/workflow-runs/{run_id}/resume |
Resume a run |
POST |
/api/workflow-runs/{run_id}/operator-actions |
Dispatch a run operator action |
POST |
/api/workflow-runs/{run_id}/escalations/{escalation_id}/resolve |
Resolve a run escalation |
GET |
/api/workflow-runs/{run_id}/stages |
List stage status for a run |
GET |
/api/workflow-runs/{run_id}/stages/{stage_name} |
Inspect one stage |
GET |
/api/workflow-runs/{run_id}/summary |
Get run summary metrics |
GET |
/api/workflow-runs/{run_id}/escalations |
List escalations for a run |
GET |
/api/workflow-runs/{run_id}/review-state |
Inspect review-state payload |
GET |
/api/workflow-runs/{run_id}/replay |
Fetch replay payload for the run |
Workflow Derivations¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api/workflow-derivations/ |
List derivations |
POST |
/api/workflow-derivations/ |
Create a derivation |
GET |
/api/workflow-derivations/{derivation_id} |
Inspect one derivation |
POST |
/api/workflow-derivations/{derivation_id}/cancel |
Cancel a derivation |
POST |
/api/workflow-derivations/{derivation_id}/resume |
Resume a derivation |
POST |
/api/workflow-derivations/{derivation_id}/operator-actions |
Dispatch a derivation operator action |
POST |
/api/workflow-derivations/{derivation_id}/accept |
Accept a derivation result |
Sessions¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api/sessions/ |
List gateway sessions |
GET |
/api/sessions/{session_id} |
Inspect one gateway session |
POST |
/api/sessions/{session_id}/repair |
Repair a bound hybrid session |
POST |
/api/sessions/{session_id}/force-complete |
Force-complete a session |
POST |
/api/sessions/{session_id}/reset-review |
Reset review state |
Assistant¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api/assistant/pipelines |
List assistant pipelines |
GET |
/api/assistant/pipelines/{pipeline_id} |
Inspect one assistant pipeline |
POST |
/api/assistant/pipelines/execute |
Execute an assistant pipeline |
POST |
/api/assistant/pipelines/{pipeline_id}/cancel |
Cancel a pipeline run |
POST |
/api/assistant/threads |
Create a thread |
GET |
/api/assistant/threads |
List threads |
GET |
/api/assistant/threads/{thread_id} |
Inspect one thread |
PATCH |
/api/assistant/threads/{thread_id} |
Update thread metadata |
POST |
/api/assistant/threads/{thread_id}/restore |
Restore an archived thread |
DELETE |
/api/assistant/threads/{thread_id} |
Archive a thread |
POST |
/api/assistant/threads/{thread_id}/carry-forward |
Create a carried-forward thread |
POST |
/api/assistant/threads/{thread_id}/turns |
Append a turn |
PATCH |
/api/assistant/threads/{thread_id}/turns/{turn_id} |
Update a turn |
GET |
/api/assistant/threads/{thread_id}/audit |
Read thread audit history |
GET |
/api/assistant/models |
List available assistant models |
POST |
/api/assistant/models/refresh |
Refresh model registry state |
POST |
/api/assistant/actions/{action_id}/execute |
Execute one assistant action |
POST |
/api/assistant/actions/execute-batch |
Execute a batch of assistant actions |
POST |
/api/assistant/actions/{audit_id}/revert |
Revert one applied assistant action |
GET |
/api/assistant/pipelines/active |
List active pipeline sessions |
POST |
/api/assistant/pipelines/sessions/{session_id}/cancel |
Cancel a pipeline session |
GET |
/api/assistant/pipelines/sessions/{session_id}/events |
Stream pipeline session events |
Runners¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api/runners/ |
List catalog-backed runners |
GET |
/api/runners/kinds |
List gateway-exposed runner kinds |
GET |
/api/runners/kinds/{runner_kind}/config-schema |
Inspect runner config schema |
GET |
/api/runners/{runner_id} |
Inspect one runner |
POST |
/api/runners/compatibility-check |
Check runner compatibility |
Interpolation¶
| Method | Path | Purpose |
|---|---|---|
POST |
/api/interpolation/validate |
Validate interpolation syntax and optional stage resolution |
Callbacks¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api/callbacks/ |
List persisted callback records |
GET |
/api/callbacks/{callback_id} |
Inspect one callback record |
Events¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api/workflow-runs/{run_id}/events |
Stream run events over SSE |
GET |
/api/workflow-derivations/{derivation_id}/events |
Stream derivation events over SSE |
GET |
/api/workflows/{workflow_id}/events |
Stream workflow events over SSE |
WS |
/api/events/stream |
Multiplexed event stream with subscriptions |
Webhooks¶
| Method | Path | Purpose |
|---|---|---|
POST |
/api/webhooks/ |
Register a webhook |
GET |
/api/webhooks/ |
List webhook registrations |
GET |
/api/webhooks/{webhook_id} |
Inspect one webhook |
DELETE |
/api/webhooks/{webhook_id} |
Delete a webhook |
POST |
/api/webhooks/{webhook_id}/test |
Send a synthetic test delivery |
Automation¶
| Method | Path | Purpose |
|---|---|---|
POST |
/api/automation/runs |
Launch an automation run |
GET |
/api/automation/runs/{run_id} |
Inspect an automation run |
GET |
/api/automation/runs/{run_id}/events |
Stream automation run events |
POST |
/api/automation/runs/{run_id}/cancel |
Cancel an automation run |
POST |
/api/automation/runs/{run_id}/actions |
Dispatch an automation run action |
POST |
/api/automation/derivations |
Launch an automation derivation |
GET |
/api/automation/derivations/{derivation_id} |
Inspect an automation derivation |
GET |
/api/automation/derivations/{derivation_id}/events |
Stream automation derivation events |
POST |
/api/automation/derivations/{derivation_id}/cancel |
Cancel an automation derivation |
POST |
/api/automation/derivations/{derivation_id}/actions |
Dispatch an automation derivation action |
GET |
/api/automation/bootstrap-template |
Get the bootstrap template for automation clients |
Knowledge¶
| Method | Path | Purpose |
|---|---|---|
POST |
/api/knowledge/documents |
Upload a knowledge document |
GET |
/api/knowledge/documents |
List knowledge documents |
GET |
/api/knowledge/documents/{doc_id} |
Inspect one knowledge document |
DELETE |
/api/knowledge/documents/{doc_id} |
Delete a knowledge document |
Artifacts¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api/artifacts/ |
List artifacts |
GET |
/api/artifacts/{artifact_id} |
Inspect one artifact |
GET |
/api/artifacts/{artifact_id}/content |
Get artifact content |
GET |
/api/artifacts/{artifact_id}/references |
Inspect artifact references |
GET |
/api/artifacts/{artifact_id}/provenance |
Inspect artifact provenance |
Template Assets¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api/template-assets/ |
List template assets |
GET |
/api/template-assets/{asset_id} |
Inspect one template asset |
GET |
/api/template-assets/{asset_id}/revisions |
List template asset revisions |
GET |
/api/template-assets/{asset_id}/bindings |
List template asset bindings |
Transcription¶
| Method | Path | Purpose |
|---|---|---|
POST |
/api/transcription/transcribe |
Transcribe uploaded audio |
GET |
/api/transcription/providers |
List available transcription providers |
Settings¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api/settings/catalog |
Get settings catalog with fields and metadata |
GET |
/api/settings |
Get editable settings with origins |
PATCH |
/api/settings |
Update gateway settings |
Filesystem¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api/filesystem/browse |
Browse directory contents |
POST |
/api/filesystem/mkdir |
Create a directory |
GET |
/api/filesystem/validate-path |
Validate a path |
GET |
/api/filesystem/defaults |
Get default project and home directories |
Onboarding¶
| Method | Path | Purpose |
|---|---|---|
GET |
/api/onboarding/status |
Get onboarding status with provider states |
GET |
/api/onboarding/providers |
List available providers |
POST |
/api/onboarding/providers/{provider_id}/authenticate |
Start provider auth flow |
GET |
/api/onboarding/providers/{provider_id}/auth-status |
Check provider auth completion |
POST |
/api/onboarding/providers/{provider_id}/dismiss |
Dismiss a provider |
POST |
/api/onboarding/providers/{provider_id}/undismiss |
Re-enable a dismissed provider |
POST |
/api/onboarding/complete |
Mark onboarding complete |
Health¶
| Method | Path | Purpose |
|---|---|---|
GET |
/health |
Liveness probe |
GET |
/ready |
Readiness probe with subsystem status |
GET |
/api/health/details |
Authenticated diagnostics |
The published OpenAPI artifact is available at openapi.json.
For event payload schemas and the full event name taxonomy, see
docs/api/event-catalog.md and the AsyncAPI specification at
docs/api/asyncapi.yaml in the repository.