One endpoint, every model
The base URL for all inference is:
Switching models is a one-string change: no new SDK, no new endpoint.
OpenAI compatibility
Omnia implements the standard OpenAI request and response shapes:POST /v1/chat/completions: chat + visionPOST /v1/embeddings: embeddingsPOST /v1/responses: the Responses APIPOST /v1/rerank: rerankingGET /v1/models: the models you can call
What happens on each request
1
Authenticate
Your API key resolves to a workspace. A missing or revoked key is rejected
with
401.2
Resolve the route
Aliases resolve to their target (or canary arm),
dedicated/ prefixes to
your endpoint, catalog ids to shared capacity.3
Gate on balance
For per-token models, Omnia places a hold against your wallet sized to the
request’s worst-case cost. If your balance can’t cover it, the request is
refused with
402 before anything runs.4
Serve from cache, if you opted in
With response caching on, a byte-identical repeat
within your retention window is served from the gateway’s cache at 25% of
the normal price.
X-Omnia-Cache: hit|miss says what happened.5
Route, infer, fall back
The request is forwarded to the model; streams relay token by token. If
you passed
fallbacks (up to 2 backup
models), the gateway retries them in order on upstream failure and reports
which model actually answered.6
Meter and settle
The exact tokens produced, including partial output on a cancelled
stream, are metered and settled idempotently against the request id.
Never billed twice, never billed for nothing.
7
Capture, if you opted in
With request logging enabled, the exchange
is secret-scrubbed and stored under your retention window, where grading,
judges, evals, and datasets can reach it. Off by default; telemetry
without it stays content-free.
Label as you go
Two optional request headers thread through everything downstream, with no SDK changes:X-Omnia-Tagnames the task (“support”, “extraction”). Tags become filters in logs, populations for judges, and scopes for datasets and evals.X-Omnia-Trace-Idgroups the steps of one agent run or conversation, so a multi-step run can be read, graded, and judged as a whole.
Two ways to run models
Shared (per-token)
The default. Pooled capacity, billed per input/output token. Ideal for most
workloads: no provisioning, pay only for what you use.
Dedicated (per-GPU-hour)
Private GPU capacity for a specific model, billed per GPU-hour while running.
For guaranteed throughput, isolation, or serving your own fine-tuned models.