Use this file to discover all available pages before exploring further.
By default, when you make a request to the OpenAI API, we generate the model’s entire output before sending it back in a single HTTP response. When generating long outputs, waiting for a response can take time. Streaming responses lets you start printing or processing the beginning of the model’s output while it continues generating the full response.
To start streaming responses, set stream=True in your request to the Responses endpoint:
import { OpenAI } from "openai";const client = new OpenAI();const stream = await client.responses.create({ model: "gpt-4.1", input: [ { role: "user", content: "Say 'double bubble bath' ten times fast.", }, ], stream: true,});for await (const event of stream) { console.log(event);}
The Responses API uses semantic events for streaming. Each event is typed with a predefined schema, so you can listen for events you care about.For a full list of event types, see the API reference for streaming. Here are a few examples:
If you’re using our SDK, every event is a typed instance. You can also identity individual events using the type property of the event.Some key lifecycle events are emitted only once, while others are emitted multiple times as the response is generated. Common events to listen for when streaming text are:
Note that streaming the model’s output in a production application makes it more difficult to moderate the content of the completions, as partial completions may be more difficult to evaluate. This may have implications for approved usage.