---
title: Streaming events
---

# Streaming events

Server-Sent Events (SSE) streamed when using `stream: true` in the request. This page is a quick overview of the most common events — for the **complete** event catalog with every payload field, see the [Streaming Event Object](./streaming-event-object.md) reference.

The stream always ends with a terminal `data: [DONE]` line.


{% api-container %}
{% api-content %}

## Event Types

**`response.created`**

Sent when the response is created and processing begins.

<details>
<summary>Show data structure</summary>

**`thread_id`** string <em style="color: #ef4444 !important; font-weight: 600 !important; font-style: normal !important;">required</em>

The thread ID.

**`status`** string <em style="color: #ef4444 !important; font-weight: 600 !important; font-style: normal !important;">required</em>

Always `in_progress`.

**`is_summarized`** boolean <em style="color: #9ca3af !important; font-weight: 500 !important; font-style: normal !important;">optional</em>

Whether the conversation history was summarized.

**`output_mode`** string <em style="color: #9ca3af !important; font-weight: 500 !important; font-style: normal !important;">optional</em>

Echoes the requested output mode.

Example:
```json
{"thread_id":"thrd_xyz789","status":"in_progress","is_summarized":false,"output_mode":"text"}
```

</details>

**`response.content_delta`**

Sent for each text chunk as it's generated.

<details>
<summary>Show data structure</summary>

**`delta`** string <em style="color: #ef4444 !important; font-weight: 600 !important; font-style: normal !important;">required</em>

The text chunk being streamed.

Example:
```json
{"delta":"Hello"}
```

</details>

**`response.tool.started`** / **`response.tool.done`**

Sent when a tool/connector invocation begins and finishes. Tool blocks may include an optional `icon_url` string field with the tool's brand icon URL.

<details>
<summary>Show data structure</summary>

Example:
```json
{"event":"response.tool.done","id":"call_paris_weather","type":"mcp_tool","name":"get_weather","status":"completed","success":true,"execution_time_ms":245,"result":"{\"temperature\":15,\"condition\":\"Partly Cloudy\"}"}
```

</details>

**`response.reasoning.started`**

Sent when reasoning content starts streaming.

**`response.reasoning.delta`**

Sent for each reasoning chunk as it's generated.

<details>
<summary>Show data structure</summary>

**`delta`** string <em style="color: #ef4444 !important; font-weight: 600 !important; font-style: normal !important;">required</em>

The reasoning chunk being streamed.

Example:
```json
{"event":"response.reasoning.delta","delta":"I should call get_weather with city=Paris."}
```

</details>

**`response.reasoning.completed`**

Sent when reasoning content streaming is complete.

**`response.completed`**

Sent when the entire response is complete.

<details>
<summary>Show data structure</summary>

**`status`** string <em style="color: #ef4444 !important; font-weight: 600 !important; font-style: normal !important;">required</em>

Always `completed`.

Example:
```json
{"status":"completed","thread_id":"thrd_xyz789","response_id":"resp_abc123","stop_reason":"end_turn","response":[{"type":"text","text":"Hello"}]}
```

</details>

**`response.error`**

Sent if the response fails.

<details>
<summary>Show data structure</summary>

**`status`** string <em style="color: #ef4444 !important; font-weight: 600 !important; font-style: normal !important;">required</em>

Always `failed`.

**`message`** string <em style="color: #ef4444 !important; font-weight: 600 !important; font-style: normal !important;">required</em>

Error message.

Example:
```json
{"status":"failed","message":"Rate limit exceeded"}
```

</details>

## Usage

These events are streamed by:

- [Create a model response](../responses/create.md) - When `stream: true` is set

For the full set of streamed events (content, tools, web search, knowledge search, images, skins, skills, tasks, and provider passthrough), see the [Streaming Event Object](./streaming-event-object.md) reference.

{% /api-content %}
{% api-examples %}

{% /api-examples %}
{% /api-container %}
