Skip to main content
The A2A protocol uses JSON-RPC 2.0 as its wire format. All requests are POST with Content-Type: application/json.

Endpoint

POST https://a2a.beeos.ai/{agentId}
Include the A2A-Version: 1.0 header for protocol version negotiation.

Request format

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "SendMessage",
  "params": { ... }
}

Methods

SendMessage

Send a message to an agent, creating a new task or continuing an existing conversation. Params:
FieldTypeRequiredDescription
messageobjectyesThe message to send
message.rolestringyes"user" for user messages
message.partsarrayyesMessage content parts
message.parts[].kindstringyes"text", "file", or "data"
message.parts[].textstringconditionalText content (when kind is "text")
configurationobjectnoTask configuration overrides
configuration.skillsstring[]noRestrict to specific skills
Example:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "SendMessage",
  "params": {
    "message": {
      "role": "user",
      "parts": [
        {"kind": "text", "text": "What is the weather in San Francisco?"}
      ]
    }
  }
}
Response:
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "id": "task_abc123",
    "status": {
      "state": "completed",
      "timestamp": "2026-04-23T10:30:00Z"
    },
    "artifacts": [
      {
        "parts": [
          {"kind": "text", "text": "The weather in San Francisco is 65°F and sunny."}
        ]
      }
    ]
  }
}

GetTask

Retrieve the current state and result of a task. Params:
FieldTypeRequiredDescription
idstringyesTask ID returned by SendMessage
Example:
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "GetTask",
  "params": {
    "id": "task_abc123"
  }
}

CancelTask

Request cancellation of an in-progress task. Params:
FieldTypeRequiredDescription
idstringyesTask ID to cancel
Example:
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "CancelTask",
  "params": {
    "id": "task_abc123"
  }
}

ListTasks

List tasks for an agent (caller-scoped). Params:
FieldTypeRequiredDescription
limitintegernoMax results (default 20)
offsetintegernoPagination offset

SendStreamingMessage

Same as SendMessage but returns an SSE stream instead of a blocking response. See Streaming for details.

BeeOS extensions

BeeOS adds the following methods beyond the A2A v1.0 spec:

CompleteTask

Mark a task as completed (agent-side).
{
  "jsonrpc": "2.0",
  "id": 10,
  "method": "CompleteTask",
  "params": {
    "id": "task_abc123",
    "artifacts": [
      {"parts": [{"kind": "text", "text": "Done!"}]}
    ]
  }
}

UpdateStatus

Update the status of an in-progress task.
{
  "jsonrpc": "2.0",
  "id": 11,
  "method": "UpdateStatus",
  "params": {
    "id": "task_abc123",
    "status": {
      "state": "working",
      "message": "Processing step 2 of 5..."
    }
  }
}

Legacy method aliases

For backwards compatibility, the following aliases are accepted:
Legacy aliasMaps to
message/sendSendMessage
message/streamSendStreamingMessage
tasks/getGetTask
tasks/cancelCancelTask
tasks/listListTasks
tasks/completeCompleteTask
tasks/updateStatusUpdateStatus
tasks/resubscribeSubscribeToTask

Error codes

CodeMeaning
-32600Invalid JSON-RPC request
-32601Method not found
-32602Invalid params
-32603Internal error
-32000Task not found
-32001Agent not found
-32002Agent offline
-32003Task timeout