When /v1/responses uses stream=true, TokenMarket returns a server-sent event sequence. Consume response.output_text.delta for incremental rendering and response.completed for the final assembled result.
response.created means the response object exists and is usually still in_progress.
response.output_text.delta is the event you should append directly into a live text buffer.
usage.summary reports token and billing totals during the stream, and the sequence ends with data: [DONE].
Example SSE event sequence
event: response.created
data: {"type":"response.created","response":{"id":"resp_123","object":"response","created":1780468890,"model":"gpt-5.4","status":"in_progress"}}
event: response.output_item.added
data: {"type":"response.output_item.added","output_index":0,"item":{"type":"message","id":"msg_resp_123","status":"in_progress","role":"assistant","content":[]}}
event: response.output_text.delta
data: {"type":"response.output_text.delta","item_id":"msg_resp_123","output_index":0,"content_index":0,"delta":"Hello"}
event: usage.summary
data: {"prompt_tokens":24,"completion_tokens":12,"total_tokens":36,"charged_amount":0.00052}
event: response.output_item.done
data: {"type":"response.output_item.done","output_index":0,"item":{"type":"message","id":"msg_resp_123","status":"completed","role":"assistant","content":[{"type":"output_text","text":"Hello","annotations":[]}]}}
event: response.completed
data: {"type":"response.completed","response":{"id":"resp_123","object":"response","created":1780468890,"status":"completed","output_text":"Hello","output":[{"type":"message","id":"msg_resp_123","status":"completed","role":"assistant","content":[{"type":"output_text","text":"Hello","annotations":[]}]}],"model":"gpt-5.4","usage":{"input_tokens":24,"output_tokens":12,"total_tokens":36,"charged_amount":0.00052}}}
data: [DONE]
Different upstream models may chunk text differently, but the event order and outer field semantics stay the same.