v13

latestOpenAPI 3.1.0Apache-2.0raw.githubusercontent.com2026-04-23163074.4 KB
JSON-RPC

JSON-RPC 2.0 endpoint (all agent operations dispatch here)

Every write or read operation on tasks, messages, and contexts uses this endpoint. The method field in the body selects the operation. See the Error catalog in the top-level description for every possible error.code.

Accepted methods: message/send, message/stream (experimental), tasks/get, tasks/list, tasks/cancel, tasks/feedback, contexts/list, contexts/clear.

Casing tolerance: the server accepts both camelCase (taskId) and snake_case (task_id) in params — pick one and stick with it per-call. Responses are always snake_case for legacy consistency (see bugs/known-issues.md#wire-field-casing-is-mixed).

Size limit: request bodies over 10 MB return 413 Payload Too Large at the ASGI layer (does not use the JSON-RPC error envelope).

Idempotency: message/send is NOT idempotent — a repeat call creates a new task. If you need idempotency, have your client generate a stable messageId and use contexts/list

  • tasks/list to check whether you've already sent it.
post/

Request body

jsonrpc'2.0' required
method'message/send' | 'message/stream' | 'tasks/get' | 'tasks/list' | 'tasks/cancel' | 'tasks/feedback' | 'contexts/list' | 'contexts/clear' required

Example request

{
  "params": {
    "configuration": {
      "acceptedOutputModes": [
        "application/json",
        "text/markdown"
      ]
    }
  }
}

Response

Successful JSON-RPC response. result contains the typed output per method — see components/schemas/*Result.

jsonrpc'2.0' required