---
title: Resume Chat Stream
description: "Resumes consumption of the active assistant generation as Server-Sent Events. If the latest message has already finished, returns a closing chat-state event. The response is `text/event-stream`; each event is `data: <JSON>\\n\\n` where the JSON conforms to ChatStreamEvent."
docs_index: /docs/llms.txt
lastUpdated: 2026-10-23
badge: "POST"
---

> For an index of all documentation, see [/docs/llms.txt](/docs/llms.txt).

Resumes consumption of the active assistant generation as Server-Sent Events. If the latest message has already finished, returns a closing chat-state event. The response is `text/event-stream`; each event is `data: <JSON>\n\n` where the JSON conforms to ChatStreamEvent.

#### `POST /v2/chats/{chatId}/resume`

## Usage

```typescript
import { v0 } from 'v0'

const result = await v0.chats.resume({
  chatId: 'chat_abc123',
})

console.log(result)
```

```bash
curl -X POST "https://api.v0.dev/v2/chats/chat_abc123/resume"   -H "Authorization: Bearer $V0_API_KEY"   -H "Content-Type: application/json"
```

## API Signature

### Request

#### Path Parameters

- `chatId: string` The unique identifier of the chat.
  - **Minimum length:** 1

### Response (Stream)

The response is a `text/event-stream`. Each event is `data: <JSON>\n\n` where the JSON conforms to one of the following event types:

- `event: 'chat' | 'chat.title' | 'message.parts.chunk' | 'message.usage' | 'error'` A single Server-Sent Events payload emitted by streaming chat endpoints. Each SSE event is `data: <JSON>\n\n` where the JSON conforms to one of the union members.
  - **chat** Initial and final chat-state event. Emitted once at stream open with the freshly-created chat, and once at stream close with the chat including the completed assistant message.
    - `id: string` Unique chat identifier.
    - `title?: string` Chat title, if generated.
    - `privacy: 'public' | 'private' | 'team' | 'team-edit' | 'unlisted'` Visibility setting of the chat.
    - `createdAt: string` ISO timestamp of when the chat was created.
    - `updatedAt?: string` ISO timestamp of when the chat was last updated.
    - `authorId: string` ID of the user who created the chat.
    - `vercelProjectId?: string` Associated Vercel project ID, if any.
    - `metadata: Record<string, string>` User-defined key-value metadata.
    - `writePermission: boolean` Whether the caller has write access to this chat.
    - `object: 'chat'` Discriminator: a chat-state snapshot.
  - **chat.title** Emitted when the chat title is (re)generated.
    - `id: string` Chat ID.
    - `object: 'chat.title'` Discriminator.
    - `delta: string` Full title string at this point in the stream.
  - **message.parts.chunk** Incremental update to the assistant message content.
    - `id: string` Assistant message ID.
    - `object: 'message.parts.chunk'` Discriminator.
    - `delta: unknown` jsondiffpatch delta to apply against the running public `Message.parts` array. Apply each delta in order to reconstruct the complete current parts snapshot.
  - **message.usage** Final model, token usage, and credit cost for the assistant message produced by this stream. Emitted once after the message finishes generating, before the closing state event.
    - `id: string` Assistant message ID this usage applies to.
    - `object: 'message.usage'` Discriminator.
    - `usage: object` Model identifier, token usage, and credit cost. Token and credit values are zero on user messages and on assistant messages that have not generated tokens.
      - `model: string | null` Model identifier used for the assistant message, or null when not applicable or unavailable.
      - `tokens: object` Token counts for this message.
        - `input: number` Prompt input value (non-cached).
        - `output: number` Completion output value.
        - `cacheRead: number` Cache-read input value.
        - `cacheWrite: number` Cache-write input value.
        - `total: number` Sum of input, output, cacheRead, and cacheWrite.
      - `creditsCost: object` Credit cost for this message.
        - `input: number` Prompt input value (non-cached).
        - `output: number` Completion output value.
        - `cacheRead: number` Cache-read input value.
        - `cacheWrite: number` Cache-write input value.
        - `total: number` Sum of input, output, cacheRead, and cacheWrite.
  - **error** Emitted when a stream error occurs after the SSE response begins.
    - `id: string` Assistant message ID or chat ID, depending on what is in scope when the error is raised.
    - `object: 'error'` Discriminator.
    - `message: string` Human-readable stream error message.
    - `code?: string` Optional machine-readable stream error code.

---

For a semantic overview of all documentation, see [/docs/sitemap.md](/docs/sitemap.md)

For an index of all available documentation, see [/docs/llms.txt](/docs/llms.txt)

For agent-facing discovery, including API and MCP surfaces, see [/docs/agents.md](/docs/agents.md)