---
title: "Send A2A v0.3 streaming message"
method: POST
path: "/v2/agents/{agent_key}/v1/message:stream"
tags: ["A2A Protocol"]
---

# Send A2A v0.3 streaming message

`POST /v2/agents/{agent_key}/v1/message:stream`

Sends a message to the agent and streams task lifecycle events as Server-Sent Events. Each SSE `data:` line is a JSON `A2aV03StreamResponse` carrying a `task`, `message`, `statusUpdate`, or `artifactUpdate`. The stream ends when the task reaches a terminal or interrupted state.

## Path parameters

- `agent_key` string, required — A unique key that identifies an agent.

## Headers

- `Request-Timeout` integer
- `Request-Timeout-Millis` integer

## Request body

- A2aV03SendMessageRequest — Body of `POST /v1/message:send` and `POST /v1/message:stream`.
  - `message` A2aV03Message, required — A v0.3 unit of communication between client and agent. The `content` field carries the message parts.
    - `messageId` string, required — Unique identifier for this message, set by the sender.
    - `contextId` string, nullable — Identifier of the conversation context this message belongs to.
    - `taskId` string, nullable — Identifier of the task this message is associated with.
    - `role` 'ROLE_UNSPECIFIED' | 'ROLE_USER' | 'ROLE_AGENT', required — The sender role in an A2A v0.3 message.
    - `content` A2aV03Part[], required — Message content parts.
      - `text` string, nullable — Plain-text content.
      - `file` A2aV03FilePart — A v0.3 file attachment. Exactly one of `fileWithUri` or `fileWithBytes` is populated.
        - `fileWithUri` string, nullable — URI to the file's content.
        - `fileWithBytes` string, byte, nullable — Inline base64-encoded file bytes.
        - `mimeType` string, nullable — Media type of the file content.
      - `data` A2aV03DataPart — A v0.3 structured-data part. The `data` field is an arbitrary JSON object.
        - `data` object, required — Arbitrary structured JSON object payload.
    - `metadata` object, nullable — Arbitrary sender-supplied metadata.
    - `extensions` string[], nullable — URIs of A2A extensions this message activates.
  - `configuration` A2aV03SendMessageConfiguration — Optional settings that control how the agent processes and responds to a v0.3 message.
    - `acceptedOutputModes` string[], nullable — Media types the client accepts for the agent's output.
    - `pushNotification` A2aV03PushNotificationConfig — Webhook configuration for receiving v0.3 task updates out-of-band.
      - `id` string, nullable — Server-assigned identifier for this push notification configuration.
      - `url` string, required — Webhook URL the agent posts task updates to.
      - `token` string, nullable — Optional token included in update requests so the receiver can validate the caller.
      - `authentication` A2aV03AuthenticationInfo — Authentication parameters for the agent to use when pushing task updates to a webhook.
        - `schemes` string[], required — Supported authentication scheme names the agent may use.
        - `credentials` string, nullable — Optional credentials passed to the webhook for the listed schemes.
    - `historyLength` integer, nullable — Maximum number of recent history messages to include in the response.
    - `blocking` boolean, nullable — When true, the call blocks until the task reaches a terminal state.
    - `returnImmediately` boolean, nullable — Inverse-semantics alias for `blocking`. If both are provided, `blocking` wins.
  - `metadata` object, nullable — Arbitrary client-supplied metadata for the request.

## Response `200`

A stream of `A2aV03StreamResponse` events.

## Other responses

- `400` — The request was malformed.
- `404` — Agent or referenced context not found.

---

[API](https://skmtc.net/vectara/apis/vectara-rest-api-v2.md) · [All operations](https://skmtc.net/vectara/apis/vectara-rest-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vectara/vectara-rest-api-v2/versions/e85040b266cc/schema)
