Skip to main content
Reviewed 2026-10-04. Customers use an OmniRelay API key with the unified API. Customers do not create or submit any other credentials.

Confirm callable models

Live access is enabled per workspace. Public catalog visibility, registration, top-ups and successful connection checks do not grant model access. Query GET https://api.omnirelay.ai/v1/models with your own key and use the exact returned ID with mode: live. Check each model rather than copying another model’s settings: Most integrated text models allow up to 128,000 output tokens and default to 32,000 (Gemini 3.1 Pro Preview and Gemini 3.6 Flash: at most 65,536); DeepSeek V4 Pro, GLM 5.3 and Kimi K3 default to and allow at most 4,096; GPT 5.4 Mini defaults to 64 and allows at most 256. SSE is not supported by every model. Reasoning text does not imply adjustable effort. See List models and Chat completions.

Workspace activation status

Overview → Live model service shows configuration status. The signed-in GET https://omnirelay.ai/api/me endpoint returns workspace.inference. This is a partial example, not a complete response or fixed model list:
This is workspace status for the signed-in account, not a particular key’s allowlist or a real-time health check. Query /v1/models with the specific key for its callable list. /api/me requires a console session; inference and management keys do not replace sign-in.

Current request support

  • Use text messages; check corresponding capabilities for system and developer roles.
  • Send one of max_tokens, max_completion_tokens or max_output_tokens: a positive integer no greater than limits.output_tokens. Omission uses limits.default_output_tokens.
  • The request body is limited to 4 MiB, up to 2,000 messages and 1,048,576 characters per text value; the model’s context window still applies. See Rate limits.
  • GPT 5.4 Mini supports function tools, JSON object/schema output and stateless Responses HTTP/SSE. Strict tools, images, audio, image/video generation and sampling remain disabled. A JSON HTTP response is not structured generation.
  • response_format: {"type":"text"} is accepted and can be omitted. Do not send unlisted reasoning efforts or sampling options such as temperature.
  • Where SSE is supported, send stream: true; add stream_options.include_usage: true for the client usage chunk. The gateway always collects final usage for settlement.
  • Supported reasoning text is choices[0].message.reasoning_content in JSON and choices[0].delta.reasoning_content in SSE.

Holds and settled charges

Before dispatch, the gateway reserves an estimated charge: an input estimate (a third of the request bytes plus 4,096 tokens of fixed overhead, capped by the selected model’s reviewed input ceiling) at the uncached input rate, plus the requested output limit, at customer prices. Even a short prompt needs wallet/key budget for the hold. If verified usage costs more than the hold (for example dense non-Latin text or cache writes), the difference is charged at settlement only when it is at most twice the hold and the wallet, key budget, member limit and platform capacity all cover it; otherwise the request stays pending reconciliation. A hold is not measured prompt tokens, a fixed fee or a guarantee that the prompt fits the model context. Valid final usage settles the request’s frozen prices and releases unused money. cost_microusd is the settled charge; divide by 1,000,000 for USD. Another model’s example cannot establish this request’s price, usage or charge. See Usage and billing.

Request tracking and diagnostics

Save the X-Request-ID response header for support and the diagnostic endpoint below. Do not confuse the reply JSON id with provider trace IDs; an identifier does not prove settlement. The signed-in customer diagnostic endpoint is:
It requires a console session, not an inference key, and returns only the current account/workspace’s records: at most the latest 100, newest first. Optional key filters by the caller’s key ID.
This synthetic field example uses micro-USD, not an actual model price. pending covers all account holds even when id or key filters the records. upstream_trace_id can be null. Records contain metadata, not prompts, replies or credentials.

Timeouts, failures and reconciliation

Successful SSE ends in [DONE]; usage chunks have empty choices and must be handled separately. Failed streams do not carry the success marker; a broken connection may also prevent an error event from arriving. An HTTP 200 at stream opening is not final success. A call that fails before any output reaches you is released at once and not charged. Output that was already delivered, or an answer without valid final usage, can retain a hold pending platform reconciliation. pending does not mean free, and it does not trigger automatic refunds or another paid call. Disable automatic SDK retries and check the error code first (see Errors). Consider resending only after confirming pre-dispatch rejection or a released reservation. The platform verifies final usage/charge evidence to settle or release the hold. Customers do not operate reconciliation endpoints; OmniRelay handles reconciliation. Include time, model ID, Request ID and error code in support requests, never full keys. See Errors and User manual.

Request service activation

Verified registrations enter the setup queue when automatic activation is enabled. Existing accounts can select Request activation in Overview → Live model service when that action is offered. The panel appears only on Overview and shows status without listing models. Account setup can finish before funded inference is ready; queueing, registering an account or topping up does not by itself complete live model activation. Refresh the status and contact support@omnirelay.ai if review is required. Before activation, Model marketplace lets you browse supported models and prices, but every model is unavailable and has no call action. Create inference or management keys only after verified activation. Use the information icon to open details in a popup without leaving the page; query /v1/models with your API key to confirm actual callable models.