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/