AsyncAPI 2.6 description of the Martian Gateway's **chat completion streaming** surface. Martian does not publish a WebSocket API. The Martian Gateway is an OpenAI-compatible model router; its only asynchronous / event-style transport is **HTTP Server-Sent Events (SSE)** delivered over the same REST endpoint (`POST /v1/chat/completions`) when the request body sets `stream: true`. SSE is a one-way, server-to-client HTTP streaming channel; it is **not** WebSocket. Because Martian mirrors the OpenAI Chat Completions streaming contract, tokens are sent as data-only server-sent events as they become available, with the stream terminated by a `data: [DONE]` message. This AsyncAPI document models only the streamed events emitted by the Gateway's SSE response. The request body itself (model in provider/model-name format, messages, etc.) is modeled in the companion OpenAPI document at `openapi/martian-ai-openapi.yml`.
View SpecView on GitHubArtificial IntelligenceLLMModel RouterGatewayCost OptimizationAsyncAPIEventsWebhooks
Channels
/v1/chat/completions
subscribereceiveChatCompletionChunks
Receive streamed chat completion chunks as Server-Sent Events.
SSE stream of chat completion chunks returned by POST /v1/chat/completions when the request body sets stream=true.
Messages
✉
ChatCompletionChunk
Chat Completion Chunk (SSE data event)
A single data-only Server-Sent Event carrying an incremental chat completion delta. The terminal event is the literal string [DONE].
Servers
https
productionapi.withmartian.com
Martian Gateway. The streaming response is delivered as HTTP Server-Sent Events over this host when stream=true. This is not a WebSocket server.
asyncapi: '2.6.0'
id: 'urn:com:withmartian:gateway:v1:chat-completions:sse'
info:
title: Martian Gateway Chat Completions Streaming (HTTP + SSE)
version: '1.0.0'
description: |
AsyncAPI 2.6 description of the Martian Gateway's **chat completion
streaming** surface.
Martian does not publish a WebSocket API. The Martian Gateway is an
OpenAI-compatible model router; its only asynchronous / event-style
transport is **HTTP Server-Sent Events (SSE)** delivered over the same
REST endpoint (`POST /v1/chat/completions`) when the request body sets
`stream: true`. SSE is a one-way, server-to-client HTTP streaming
channel; it is **not** WebSocket.
Because Martian mirrors the OpenAI Chat Completions streaming contract,
tokens are sent as data-only server-sent events as they become available,
with the stream terminated by a `data: [DONE]` message.
This AsyncAPI document models only the streamed events emitted by the
Gateway's SSE response. The request body itself (model in
provider/model-name format, messages, etc.) is modeled in the companion
OpenAPI document at `openapi/martian-ai-openapi.yml`.
contact:
name: API Evangelist
email: kin@apievangelist.com
url: https://apievangelist.com
license:
name: API documentation - Martian Terms of Service
url: https://www.withmartian.com
x-transport-notes:
transport: HTTP Server-Sent Events (SSE)
protocol: https
direction: server-to-client (one-way)
mediaType: text/event-stream
triggeredBy: 'POST https://api.withmartian.com/v1/chat/completions with request body { "stream": true }'
servers:
production:
url: api.withmartian.com
protocol: https
description: >-
Martian Gateway. The streaming response is delivered as HTTP
Server-Sent Events over this host when stream=true. This is not a
WebSocket server.
channels:
/v1/chat/completions:
description: >-
SSE stream of chat completion chunks returned by POST /v1/chat/completions
when the request body sets stream=true.
bindings:
http:
type: request
method: POST
subscribe:
operationId: receiveChatCompletionChunks
summary: Receive streamed chat completion chunks as Server-Sent Events.
bindings:
http:
type: response
message:
$ref: '#/components/messages/ChatCompletionChunk'
components:
messages:
ChatCompletionChunk:
name: ChatCompletionChunk
title: Chat Completion Chunk (SSE data event)
contentType: text/event-stream
summary: >-
A single data-only Server-Sent Event carrying an incremental chat
completion delta. The terminal event is the literal string [DONE].
payload:
$ref: '#/components/schemas/ChatCompletionChunk'
schemas:
ChatCompletionChunk:
type: object
properties:
id:
type: string
object:
type: string
example: chat.completion.chunk
created:
type: integer
model:
type: string
description: The provider/model-name the router selected to serve the request.
choices:
type: array
items:
type: object
properties:
index:
type: integer
delta:
type: object
properties:
role:
type: string
content:
type: string
finish_reason:
type: string
nullable: true
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.