---
title: "Send Message (Streaming)"
method: POST
path: "/chats/{chatId}/messages/stream"
tags: ["Messages"]
---

# Send Message (Streaming)

`POST /chats/{chatId}/messages/stream`

Sends a new message to an existing chat and returns a Server-Sent Events stream. Events include the initial assistant-message snapshot, content chunk deltas, final usage, and a closing message snapshot. The response is `text/event-stream`; each event is `data: <JSON>\n\n` where the JSON conforms to MessageStreamEvent.

## Path parameters

- `chatId` string, required — The unique identifier of the chat.

## Request body

- object
  - `message` string, required — The prompt or instruction to send to the model.
  - `systemPrompt` string — System-level context for the chat, such as frameworks or development environment details.
  - `modelConfiguration` object — Overrides for the model behavior.
    - `modelId` 'v0-mini' | 'v0-pro' | 'v0-max' | 'v0-max-fast', required — Model to use for the generation.
    - `imageGenerations` boolean, required — Enables image generations to generate up to 5 images per version.
  - `mcpServerIds` string[] — MCP server IDs to enable. When omitted, uses default enabled servers.
  - `attachments` object[] — Files or assets to include with the message.
    - `url` string, required — URL of the attachment.
  - `skills` union[] — Skills to force-attach to the message. Supports skills.sh (`remote`), user/team memory (`memory`), and project (`project`) skills. Maximum 3.
    - union — A skill to force-attach to the chat. Skills provide domain-specific knowledge to the AI. Use `remote` for skills.sh skills, `memory` for user/team memory skills (including design-system skills), and `project` for skills defined in the chat repo.
      - object
        - `type` 'remote', required — Discriminator: a skills.sh skill.
        - `id` string, required — Skill ID from skills.sh.
      - object
        - `type` 'memory', required — Discriminator: a user- or team-scoped memory skill.
        - `scope` 'user' | 'team', required — Whether the skill lives in user or team memory.
        - `skillName` string, required — Name of the memory skill to attach.
      - object
        - `type` 'project', required — Discriminator: a skill defined in the project repo.
        - `skillName` string, required — Name of the project skill to attach.

## Response `200`

A single Server-Sent Events payload emitted by the streaming send-message endpoint. Each SSE event is `data: <JSON>\n\n` where the JSON conforms to one of the union members.

## Other responses

- `401` — Response for status 401
- `403` — Response for status 403
- `404` — Response for status 404
- `422` — Response for status 422
- `500` — Response for status 500

---

[API](https://skmtc.net/vercel/apis/v0-platform-api-beta.md) · [All operations](https://skmtc.net/vercel/apis/v0-platform-api-beta/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vercel/v0-platform-api-beta/versions/7c7a496f8022/schema)
