curl, or your own HTTP client — works against it after you change the
base URL and the API key.
This page covers that HTTP surface. It is separate from the
speech-to-speech agent path, where a model is attached to a call through
the Voice surface instead of being called directly.
Base URL and authentication
There is a single, operator-global base URL. Per-tenant URL routing is not implemented inmod_inference today, so every tenant sends requests
to the same host and the API key identifies the caller. The console’s
API keys → Base URL card shows the exact value and has a copy
button next to it; treat that card as the source of truth rather than
hardcoding a URL from documentation.
Store the value alongside your key:
model id that is not deployed for the
tenant behind the key is not addressable.
Endpoint reference
Five OpenAI-compatible paths are exposed under the base URL. The gateway serves HTTP/2 and HTTP/3 only. It does not serve HTTP/1.1.
The
model field in every request body takes a deployed model id.
Read the ids from /models (or from the console’s model list) rather
than guessing them — the snippets in the console ship with a
<model-id> placeholder for exactly this reason.
A minimal non-streaming chat request:
Streaming over HTTP/3
Setstream: true and the response is delivered as Server-Sent Events.
The gateway carries them over HTTP/3 or HTTP/2. Each event is an OpenAI-shaped chunk, so
chunk.choices[0].delta.content is where incremental text arrives.
Two consequences worth knowing:
- No client changes are required. The OpenAI SDKs iterate the SSE stream exactly as they do against any other OpenAI-compatible server. The HTTP client negotiates HTTP/2 or HTTP/3 underneath. A client that can use only HTTP/1.1 cannot connect.
- 0-RTT resumption cuts reconnect latency (HTTP/3). When a client reconnects to a host it has already talked to, the QUIC session can resume without a full handshake round trip.
Tool calling
Tool and function calling use the OpenAItools field. The model server
decides whether a model supports it. The request cannot turn tool calling on
for a model whose server does not support it. The deploy spec of the model
(see the model registry) has no tool
flags. When the model supports tool calling, the tools field works
unchanged:
Using the official OpenAI SDKs
Point the SDK’s base URL at the inference base URL and pass your FirstByte API key. Nothing else changes. These are the snippets the console’s SDK quickstart card emits. PythonRelated
- Authentication — API keys and how they scope a caller
- Modalities overview