Skip to main content
POST
/
a2a
/
{assistant_id}
curl --request POST \
  --url https://api.example.com/a2a/{assistant_id} \
  --header 'Accept: <accept>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "message/send",
  "params": {
    "message": {
      "role": "user",
      "parts": [
        {
          "kind": "text",
          "text": "Hello from A2A"
        },
        {
          "kind": "data",
          "data": {
            "locale": "en-US"
          }
        }
      ],
      "messageId": "msg-1",
      "contextId": "f5bd2a40-74b6-4f7a-b649-ea3f09890003"
    }
  }
}
'
{
"jsonrpc": "2.0",
"id": "1",
"result": {
"kind": "task",
"id": "run-uuid",
"contextId": "f5bd2a40-74b6-4f7a-b649-ea3f09890003",
"status": {
"state": "completed"
},
"artifacts": [
{
"artifactId": "artifact-uuid",
"name": "Assistant Response",
"parts": [
{
"kind": "text",
"text": "Hello back"
}
]
}
]
}
}

Headers

Accept
string
required

For message/stream, must include text/event-stream. For all other methods, use application/json.

Path Parameters

assistant_id
string<uuid>
required

The ID of the assistant to communicate with

Body

application/json
jsonrpc
enum<string>
required

JSON-RPC version

Available options:
2.0
id
string
required

Request identifier

method
enum<string>
required

The method to invoke

Available options:
message/send,
message/stream,
tasks/get,
tasks/cancel
params
Message Send/Stream Parameters · object

Method parameters; shape depends on the method.

Response

JSON-RPC response for non-streaming methods. For message/stream, the response is an SSE stream of JSON-RPC envelopes.

jsonrpc
enum<string>
required
Available options:
2.0
id
string
required
result
object

Success result containing task information or task details

error
object

Error information if request failed