Inja LLM Gateway
Get started

SSE protocol catalog

Streaming shapes for OpenAI Chat, Responses, Anthropic Messages, and Gemini alt=sse — and what the gateway does on passthrough vs translate.

Gateway streaming by dialect. Same-family traffic is byte-passthrough after model rewrite; cross-dialect rebuilds events from the canonical IR.

OpenAI Chat Completions

Data Notes
choices[].delta Token deltas; role on first chunk
delta.reasoning_content Thinking on openai_compat (DeepSeek/Kimi/…)
delta.tool_calls Incremental tool args
finish_reason On final choice chunk
data: [DONE] Terminator
stream_options.include_usage Gateway forces usage metering on translate/build when streaming

OpenAI Responses API

Event Notes
response.created / in_progress / completed Lifecycle
response.output_text.delta Text
response.function_call_arguments.delta Tools
Passthrough openai family does not rewrite SSE

Experimental duplex: Realtime WebSocketGET /v1/responses/ws.

Anthropic Messages

type Notes
message_start Skeleton + usage start
content_block_start / delta / stop Text, tool_use, thinking
message_delta stop_reason, tokens
message_stop End
ping Keepalive (forwarded on passthrough)

Google Gemini (alt=sse)

Shape Notes
JSON per data: line candidates[].content.parts[]
thought: true Thinking; thoughtSignature preserved for multi-turn
functionCall Tool use
Final usageMetadata Mapped when present

Policy

  • Passthrough: do not strip unknown event types or fields.
  • Translate: rebuild only known IR fields; do not invent vendor events.
  • Client disconnect mid-stream → usage status client_abort.

Type to search…

↑↓ navigate↵ selectEsc close