> ## Documentation Index
> Fetch the complete documentation index at: https://omnirelay.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Model access and request diagnostics

> Confirm live model access, inspect request records and understand holds and settlement.

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:

| Field | Purpose |
| - | - |
| `capabilities` | Text, system messages, SSE and reasoning-content support. |
| `limits` | Runtime limits including default and maximum output. |
| `reasoning_efforts` | Accepted efforts; omit `reasoning_effort` when empty. |
| `pricing`, `cache_pricing`, `input_tiers` | Customer base rates and applicable cache/tier prices. |
| `customer_discount_bps`, `price_version` | Customer discount factor and frozen price version. |
| `reservation` | Customer holds for minimum/default/maximum output, in micro-USD. |

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](https://omnirelay.ai/docs/llms/listing-models.md) and [Chat completions](https://omnirelay.ai/docs/llms/chat-completions.md).

## 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:

```json theme={null}
{
  "workspace": {
    "inference": { "status": "enabled", "models": ["gpt-6-luna"] }
  }
}
```

| status | Meaning and next step |
| - | - |
| `not_enabled` | Not enabled or stopped; confirm access with support. |
| `activation_pending` | Activation is incomplete; a top-up does not complete it. |
| `awaiting_funds` | Account setup or service activation is waiting for the required funds. |
| `enabled` | Configuration is ready; a valid key, model permission and sufficient available funds are still required. |
| `maintenance` | New live calls are paused; check existing records before retrying. |
| `action_required` | Platform review is required; contact support. |
| `unavailable` | Configuration is not ready; contact support instead of repeating payments. |

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](https://omnirelay.ai/docs/overview/rate-limits.md#payload-size).
* 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](https://omnirelay.ai/docs/general/usage-billing.md).

## 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:

```text theme={null}
GET https://omnirelay.ai/api/developer/requests?id=<OmniRelay-Request-ID>
```

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.

```json theme={null}
{
  "requests": [{
    "id": "example-request",
    "upstream_trace_id": null,
    "reservation_state": "pending",
    "held_customer_cost": 60,
    "settled_cost": null,
    "price_version": "example-price-version",
    "customer_discount_bps": 10000
  }],
  "limit": 100,
  "pending": { "count": 1, "held_microusd": 60 },
  "pending_summary_scope": "account"
}
```

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](https://omnirelay.ai/docs/general/errors.md)). 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](https://omnirelay.ai/docs/general/errors.md) and [User manual](https://omnirelay.ai/docs/user-manual.md).

## 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](mailto: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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.