All streaming endpoints use SSE-style frames:
data: <json-or-sentinel>
Typical frame sequence
- One or more progress/delta frames.
- A completion frame with final status and usage.
data: [DONE] sentinel.
JavaScript parser example
for await (const line of client.streamText({
model: "openai/gpt-5-nano",
messages: [{ role: "user", content: "Say hello." }],
stream: true,
})) {
if (!line.startsWith("data:")) continue;
const payload = line.slice(5).trim();
if (payload === "[DONE]") break;
console.log(payload);
}
Python parser example
for line in client.stream_response({
"model": "openai/gpt-5-nano",
"input": "Say hello.",
"stream": True,
}):
if not line.startswith("data:"):
continue
payload = line[5:].strip()
if payload == "[DONE]":
break
print(payload)
/v1/chat/completions: chunked choices[].delta style events.
/v1/responses: responses-style output item/delta events.
/v1/messages: Anthropic-style events (message_start, content_block_delta, message_stop).
Last modified on February 18, 2026