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

# Providers

> Each model may be backed by multiple providers. Configure routing in your token, or override it per request via headers.

## What Is a Provider

Each model on the platform may be backed by **multiple providers**. Providers are service nodes organized by source and cost — different providers have different pricing multipliers and model availability.

When you send a request, the system automatically selects an available provider based on your token configuration. If a provider fails or times out, the system automatically retries another one — fully transparent to your code.

## Available Providers

| ID               | Name                  | Description                                                                                                                              |
| ---------------- | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `official`       | Official              | A provider group that aggregates direct connections to all major official platforms (OpenAI, Anthropic, Google, etc.); highest stability |
| `official_cheap` | Official (Discounted) | A cost-optimized version of official channels; high stability at a lower price                                                           |
| `mix`            | Mixed                 | Multi-source mixed channels; lowest price, widest model coverage                                                                         |

### About `official`

`official` is a **provider group** that bundles nodes from OpenAI, Anthropic, Google, DeepSeek, and other major official platforms. When you select `official`, the system performs intelligent routing and failover across all official nodes — no need to specify each vendor individually.

### How to Choose

| Your need                                         | Recommended config   |
| ------------------------------------------------- | -------------------- |
| Maximum stability, price not a concern            | `official`           |
| Good stability with better value                  | `official_cheap`     |
| Lowest cost, minor instability acceptable         | `mix`                |
| Try discounted official first, fall back to mixed | `official_cheap,mix` |

***

## Configuring Providers in a Token

When creating or editing a token, you can set the default routing behavior for that token.

### Provider List

Specifies which providers this token is allowed to use.

* **Leave empty (recommended)**: Automatically routes across all available providers for best availability
* **Single provider**: e.g. `official` — routes only through official nodes
* **Multiple providers**: Comma-separated, e.g. `official_cheap,mix` — tried in order or by sort strategy

### Provider-Only Mode

* **Off (default)**: Specified providers are prioritized; falls back to others if all fail
* **On**: Strictly limited to the specified providers — if all fail, returns an error with no fallback

### Sort Strategy

When multiple providers are specified, controls the order they are tried:

* **Manual (default)**: Tried in the order you listed them
* **Latency**: Prioritizes the fastest-responding provider
* **Price**: Prioritizes the lowest-cost provider
* **Throughput**: Prioritizes the highest-throughput provider

***

## Overriding Providers Per Request

You can also temporarily override token settings for a **single request** via headers — no token changes needed.

| Header              | Effect                                                             |
| ------------------- | ------------------------------------------------------------------ |
| `X-Provider-Order`  | Specifies the providers and order for this request                 |
| `X-Provider-Only`   | `"true"` enables strict mode — no fallback                         |
| `X-Provider-Sort`   | Overrides the sort strategy (`latency` / `price` / `throughput`)   |
| `X-Provider-Ignore` | Providers to skip for this request, stacked on top of token config |

> Providers specified via headers are still subject to your account permissions.

### Examples

**Try discounted official first, fall back to mixed on failure**

```bash theme={null}
curl https://api.ephone.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-your-token" \
  -H "X-Provider-Order: official_cheap,mix" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-4o", "messages": [{"role": "user", "content": "Hello"}]}'
```

**Strict official-only, no fallback allowed**

```bash theme={null}
curl https://api.ephone.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-your-token" \
  -H "X-Provider-Order: official" \
  -H "X-Provider-Only: true" \
  -H "Content-Type: application/json" \
  -d '{"model": "claude-opus-4-5-20251101", "messages": [{"role": "user", "content": "Hello"}]}'
```

**Set default headers in your SDK client**

<CodeGroup>
  ```python Python theme={null}
  import openai

  client = openai.OpenAI(
      api_key="sk-your-token",
      base_url="https://api.ephone.ai/v1",
      default_headers={
          "X-Provider-Order": "official_cheap,mix",
      }
  )
  ```

  ```javascript Node.js theme={null}
  import OpenAI from "openai";

  const client = new OpenAI({
    apiKey: "sk-your-token",
    baseURL: "https://api.ephone.ai/v1",
    defaultHeaders: {
      "X-Provider-Order": "official_cheap,mix",
    }
  });
  ```
</CodeGroup>
