Skip to main content

HTTP API Reference

AgentVisor™ exposes an OpenAPI/REST transport (LangGraph Agent Protocol) on port 8090.

Base URL​

http://localhost:8090

Authentication​

When authentication is enabled, clients authenticate via OIDC:

# OIDC Bearer token
curl -H "Authorization: Bearer <token>" http://localhost:8090/agents

Endpoints​

EndpointMethodDescription
Threads
/threadsPOSTCreate thread
/threads/{id}GETGet thread
/threads/{id}PATCHUpdate thread
/threads/{id}DELETEDelete thread
/threads/{id}/copyPOSTCopy thread
/threads/searchPOSTSearch threads
/threads/{id}/historyGET, POSTGet checkpoint history
Runs (per thread)
/threads/{id}/runsPOSTCreate run
/threads/{id}/runsGETList runs
/threads/{id}/runs/{runId}GETGet run
/threads/{id}/runs/{runId}/streamGETStream run output
/threads/{id}/runs/{runId}/cancelPOSTCancel run
Stateless runs
/runsPOSTStateless run (async)
/runs/waitPOSTStateless run (sync)
/runs/streamPOSTStateless run (streaming)
Run by ID
/runs/{id}GETGet run status
/runs/{id}/waitGETWait for run
/runs/{id}/streamGETStream run output
/runs/{id}/cancelPOSTCancel run
/runs/{id}DELETEDelete run
State
/threads/{id}/stateGETGet state
/threads/{id}/statePOSTUpdate state
/threads/{id}/state/checkpointPOSTGet state at a checkpoint/namespace
/threads/{id}/state/{checkpoint_id}GETGet state at a checkpoint ID
Agents
/agentsGETList agents
/agents/searchPOSTSearch agents
/agents/{name}GETGet agent
/agents/{name}/schemasGETGet schemas
Store
/store/namespacesPOSTList namespaces
/store/itemsPUTPut item
/store/itemsGETGet item
/store/itemsDELETEDelete item
/store/items/searchPOSTSearch items
Tracing
/traces/events/streamGETStream gVisor seccheck trace events (SSE)
System
/healthGETLiveness check
/readyGETReadiness probe
/metricsGETPrometheus metrics
/openapi.jsonGETOpenAPI spec
/schemaGETAggregated agent schemas
/swagger-ui/GETSwagger UI

Response Format​

Success​

{
"thread_id": "abc123",
"status": "idle",
"created_at": "2024-01-15T10:30:00Z",
"metadata": {"user": "alice"}
}

Error​

{
"error": "thread not found",
"code": "not_found"
}

code is a lowercase snake_case string. Some low-level validation failures (e.g. a malformed JSON body) are returned by generic request handling before an error code is assigned and omit the code field, leaving only error.

Status Codes​

CodeDescription
200Success
201Created (thread created, thread copied)
202Accepted (run created or cancelled asynchronously)
204No Content (thread/run deleted, store item put/deleted)
400Bad request
401Unauthorized
403Forbidden (policy denied)
404Not found
409Conflict (thread busy)
413Payload too large
429Rate limited
500Internal error
503Service unavailable
504Timeout (e.g. wait/timeout exceeded)

Error Codes​

The code field on an error response is one of:

CodeHTTP Status
not_found404
invalid_input400
unauthorized401
forbidden403
conflict409
internal_error500
unavailable503
timeout504
rate_limited429
payload_too_large413
invalid_json400
json_depth_exceeded400
invalid_parameter400
connection_limit503

Interactive Documentation​

Access Swagger UI at:

http://localhost:8090/swagger-ui/