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

# Send A2A v1 streaming message

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

Sends a message to the agent using the A2A v1 wire format and streams task lifecycle events as Server-Sent Events. Each SSE `data:` line is a JSON `A2aV1StreamResponse` 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

- A2aV1SendMessageRequest — Body of `POST /message:send` and `POST /message:stream`.
  - `tenant` string, nullable — Tenant identifier the message is sent to.
  - `message` A2aV1Message, required — A v1 unit of communication between client and agent. The `parts` 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 v1 message.
    - `parts` A2aV1Part[], required — Message content parts.
      - `text` string, nullable — Plain-text content.
      - `raw` string, byte, nullable — Inline base64-encoded raw bytes.
      - `url` string, nullable — URL pointing to the file's content.
      - `data` unknown
      - `metadata` object, nullable — Arbitrary metadata associated with this part.
      - `filename` string, nullable — Name of the file, when this part carries a file.
      - `mediaType` string, nullable — Media type of the part's content.
    - `metadata` object, nullable — Arbitrary sender-supplied metadata.
    - `extensions` string[], nullable — URIs of A2A extensions this message activates.
    - `referenceTaskIds` string[], nullable — Identifiers of tasks referenced by this message.
  - `configuration` A2aV1SendMessageConfiguration — Optional settings that control how the agent processes and responds to a v1 message.
    - `acceptedOutputModes` string[], nullable — Media types the client accepts for the agent's output.
    - `pushNotification` A2aV1TaskPushNotificationConfig — Push notification configuration for a v1 task.
      - `tenant` string, nullable — Tenant identifier the config applies to.
      - `id` string, nullable — Server-assigned identifier for this push notification configuration.
      - `taskId` string, nullable — Identifier of the task this config applies to.
      - `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` A2aV1AuthenticationInfo — Authentication details the agent uses when calling the v1 push-notification URL.
        - `scheme` string, required — The authentication scheme name the agent uses for the webhook.
        - `credentials` string, nullable — Optional credentials passed to the webhook for the scheme.
    - `historyLength` integer, nullable — Maximum number of recent history messages to include in the response.
    - `blocking` boolean, nullable — When true (the default), the call blocks until the task reaches a terminal or interrupted state. The response contains the resulting task. Set to false to return as soon as the task is accepted. Then poll `getTask` or subscribe to the task stream. `returnImmediately` is an inverse-semantics alias. If both are sent, `blocking` wins.
    - `returnImmediately` boolean, nullable — Inverse-semantics alias for `blocking`. When `returnImmediately=true` the call returns as soon as the task is accepted (equivalent to `blocking=false`). If both are provided, `blocking` wins.
  - `metadata` object, nullable — Arbitrary client-supplied metadata for the request.

## Response `200`

A stream of `A2aV1StreamResponse` 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)
