Streaming
Set stream: true on either endpoint to receive Server-Sent Events (SSE)
instead of a single JSON body.
Event sequences
Section titled “Event sequences”/v1/responses:
response.createdresponse.output_text.delta (one or more)response.completed (data is the full response object)/v1/chat/completions:
chat.completion.chunk (one or more, with choices[0].delta.content)chat.completion.chunk (final chunk, finish_reason: "stop")data: [DONE]Example
Section titled “Example”stream = client.chat.completions.create( model="claude-sonnet-4-6", messages=[{"role": "user", "content": "hi"}], stream=True,)for chunk in stream: print(chunk.choices[0].delta.content or "", end="")The same pattern works with client.responses.create(..., stream=True),
consuming response.output_text.delta events instead of chat chunks.
Text-only deltas
Section titled “Text-only deltas”Octo streams text deltas only — it runs tools server-side, so there are no client-side tool-call deltas to consume. If a turn invokes tools, you’ll see the resulting text once the tool call resolves, not intermediate tool-call events.
Server-side settle guarantee
Section titled “Server-side settle guarantee”Both endpoints inherit the same guarantee regardless of streaming: the turn always persists and meters even if the client disconnects mid-stream. A dropped connection does not leave the workspace’s conversation state or usage accounting in a partial state — see Usage & billing.