Appearance
HTTP API Reference
All API endpoints are served under the base path: /api/v1.
The OpenAPI spec is api/v1.yaml.
Health
GET /health
Liveness/readiness endpoint for the API server plus Symphony status.
Example:
bash
curl -sS http://localhost:2910/api/v1/health | jq .Response (200):
status:"ok"symphony_running: whether the orchestrator goroutine is runningsymphony_workflow_path: resolved workflow path (if configured)symphony_last_error: last orchestrator exit error, if any
Symphony control
GET /symphony/snapshot
Returns the current orchestrator snapshot for UI rendering.
bash
curl -sS http://localhost:2910/api/v1/symphony/snapshot | jq .This returns a JSON object with:
running: array of running entriesretrying: array of retry entriescompleted: recent attempt history entries (best-effort)codex_totals: aggregated token/seconds countersrate_limits: last observed rate limit payload (best-effort)
POST /symphony/start
Starts Symphony if not already running. Idempotent.
bash
curl -sS -X POST http://localhost:2910/api/v1/symphony/start | jq .Optional JSON body:
json
{
"workflow_path": "./WORKFLOW.md",
"http_port": 8089
}Notes:
http_port: -1disables Symphony’s debug HTTP server even ifWORKFLOW.mdsetsserver.port.- If Symphony is already running and you pass a different
workflow_pathorhttp_port, the server returns409 Conflict.
POST /symphony/stop
Stops Symphony if running. Idempotent.
bash
curl -sS -X POST http://localhost:2910/api/v1/symphony/stop | jq .Demo endpoint
GET /counter
Returns the current counter state.
bash
curl -sS http://localhost:2910/api/v1/counter | jq .POST /counter
Enqueues a task to increment the counter.
bash
curl -sS -X POST http://localhost:2910/api/v1/counter