Arbiter HTTP API
Arbiter exposes its reasoning runtime as an HTTP + Server-Sent Events API. Send a direct request with POST /v1/orchestrate, or ingest a structured hardware or software event with POST /v1/events. Both drive the full agentic loop — routing, durable context, delegated and parallel sub-agent calls, tool invocations, and generated files — and stream the whole execution back as SSE events.
Start with arbiter --api --port 8080. The default bind is 127.0.0.1; production deployments should put TLS termination, DDoS protection, and rate limiting in a reverse proxy (nginx, caddy, cloudflare) in front of the process.
Each endpoint page below uses the same template: Function, Request, Response, Failure modes, See also.
Concepts
- Writ — the slash-command DSL agents emit inline
- Tenants
- Authentication
- Fleet streaming
- SSE event catalog
- Advisor
- Structured memory
- Artifacts
- MCP servers
- A2A protocol
- Web search
- Data model
- Operational notes
- Scheduler
- Todos
- Lessons (self-reflection)
- Durable in-flight execution
Endpoints
Top-level
GET /v1/healthGET /v1/metricsGET /v1/modelsPOST /v1/eventsPOST /v1/orchestratePOST /v1/requests/:id/cancelGET /v1/requestsGET /v1/requests/:idGET /v1/requests/:id/events
Agents
GET /v1/agentsPOST /v1/agentsGET /v1/agents/:idPATCH /v1/agents/:idDELETE /v1/agents/:idPOST /v1/agents/:id/chat
Conversations
POST /v1/conversationsGET /v1/conversationsGET /v1/conversations/:idPATCH /v1/conversations/:idDELETE /v1/conversations/:idGET /v1/conversations/:id/messagesPOST /v1/conversations/:id/messages
Conversation folders
GET /v1/conversation-foldersPOST /v1/conversation-foldersPATCH /v1/conversation-folders/:idDELETE /v1/conversation-folders/:id
Memory (file scratchpads)
Memory (structured graph)
POST /v1/memory/entriesGET /v1/memory/entriesGET /v1/memory/entries/:idPATCH /v1/memory/entries/:idDELETE /v1/memory/entries/:idPOST /v1/memory/entries/:id/invalidatePOST /v1/memory/relationsGET /v1/memory/relationsDELETE /v1/memory/relations/:idGET /v1/memory/graph
Artifacts
POST /v1/conversations/:id/artifactsGET /v1/conversations/:id/artifactsGET /v1/conversations/:id/artifacts/:aidGET /v1/conversations/:id/artifacts/:aid/rawDELETE /v1/conversations/:id/artifacts/:aidGET /v1/artifactsGET /v1/artifacts/:aidGET /v1/artifacts/:aid/rawDELETE /v1/artifacts/:aid
Todos
POST /v1/todosGET /v1/todosPATCH /v1/todos— batch update (array body)GET /v1/todos/:idPATCH /v1/todos/:idDELETE /v1/todos/:id
Lessons (self-reflection)
Schedules + runs + notifications
POST /v1/schedulesGET /v1/schedulesGET /v1/schedules/:idPATCH /v1/schedules/:idDELETE /v1/schedules/:idGET /v1/schedules/:id/runsGET /v1/runsGET /v1/runs/:idGET /v1/notifications/stream
A2A protocol
Admin
GET /v1/admin/tenantsPOST /v1/admin/tenantsGET /v1/admin/tenants/:idPATCH /v1/admin/tenants/:idGET /v1/admin/audit
Versioning
All routes are prefixed /v1/. Breaking changes will land at /v2/; additive changes (new fields on responses, new optional query params) ship under /v1/ with a note in this index.