---
title: "POST /v1/message:stream"
method: POST
path: "/v1/message:stream"
tags: ["message"]
---

# POST /v1/message:stream

`POST /v1/message:stream`

SendStreamingMessage is a streaming call that will return a stream of task update events until the Task is in an interrupted or terminal state.

## Request body

- SendMessageRequest — /////////// Request Messages ///////////
  - `configuration` SendMessageConfiguration — Configuration of a send message request.
    - `historyLength` integer — The maximum number of messages to include in the history. if 0, the history will be unlimited.
    - `pushNotification` PushNotificationConfig — Configuration for setting up push notifications for task updates.
      - `url` string — Url to send the notification too
      - `token` string — Token unique for this task/session
      - `authentication` AuthenticationInfo — Defines authentication details, used for push notifications.
        - `schemes` string[] — Supported authentication schemes - e.g. Basic, Bearer, etc
        - `credentials` string — Optional credentials
      - `id` string — A unique identifier (e.g. UUID) for this push notification.
    - `acceptedOutputModes` string[] — The output modes that the agent is expected to respond with.
    - `blocking` boolean — If true, the message will be blocking until the task is completed. If false, the message will be non-blocking and the task will be returned immediately. It is the caller's responsibility to check for any task updates.
  - `metadata` object — Optional metadata for the request.
  - `tenant` string — Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.
  - `message` Message — Message is one unit of communication between client and server. It is associated with a context and optionally a task. Since the server is responsible for the context definition, it must always provide a context_id in its messages. The client can optionally provide the context_id if it knows the context to associate the message to. Similarly for task_id, except the server decides if a task is created and whether to include the task_id.
    - `extensions` string[] — The URIs of extensions that are present or contributed to this Message.
    - `content` Part[] — protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.
      - `file` FilePart — FilePart represents the different ways files can be provided. If files are small, directly feeding the bytes is supported via file_with_bytes. If the file is large, the agent should read the content as appropriate directly from the file_with_uri source.
        - `fileWithBytes` string, byte
        - `mimeType` string
        - `name` string
        - `fileWithUri` string
      - `metadata` object — Optional metadata associated with this part.
      - `text` string
      - `data` DataPart — DataPart represents a structured blob. This is most commonly a JSON payload.
        - `data` object
    - `messageId` string — The unique identifier (e.g. UUID)of the message. This is required and created by the message creator.
    - `metadata` object — protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to provide along with the message.
    - `contextId` string — The context id of the message. This is optional and if set, the message will be associated with the given context.
    - `role` 'ROLE_UNSPECIFIED' | 'ROLE_USER' | 'ROLE_AGENT' — A role for the message.
    - `taskId` string — The task id of the message. This is optional and if set, the message will be associated with the given task.

## Response `200`

Successful response

---

[API](https://skmtc.dev/google/apis/workspaceevents.md) · [All operations](https://skmtc.dev/google/apis/workspaceevents/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/google/workspaceevents/revisions/d6202517e9f3/schema)
