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

# Introduction

> MESH is an OpenAI-compatible API gateway. One endpoint, every major model, with receipts on every call.

MESH routes requests from your app to 80+ models across every major frontier and open-weight
family — Anthropic, OpenAI, Google, xAI, Meta, Mistral, DeepSeek, Perplexity, Alibaba, AI21,
Moonshot, Z.AI, Writer, NVIDIA, MiniMax, and the MESH house tier — through a single
OpenAI-compatible endpoint. The live catalogue is at `GET /v1/models`; this docs site is updated
periodically and `GET /v1/models` is always the source of truth.

Point the OpenAI SDK at `https://api.meshrouter.app/v1`, authenticate with a `mesh_live_...` key,
and call the API the way you already do. Or open the [MESH chat](https://meshrouter.app/chat) to
talk to any model in your browser, no SDK setup required.

<CardGroup cols={2}>
  <Card title="One endpoint, every model" icon="route" href="/models">
    Use router modes (`auto`, `fast`, `cheapest`, `best`) or address a specific provider model.
  </Card>

  <Card title="Pay per call in USDC" icon="wallet" href="/payments">
    Top up with USDC on Base or Solana. Calls draw against the balance; no subscription, no
    permanent free tier.
  </Card>

  <Card title="Receipts on every call" icon="receipt" href="/reference/receipts">
    Response headers carry upstream cost, MESH margin, total USD, and a receipt ID for lookup.
  </Card>

  <Card title="Per-key limits" icon="lock" href="/authentication/api-keys">
    Per-key request, token, and monthly USD ceilings. Revoked keys stop working in the same request.
  </Card>
</CardGroup>

## How it works

```text theme={null}
Your app → MESH API → Provider
              ↓
       Receipt + usage event
```

1. Get an API key starting with `mesh_live_`.
2. Set `OPENAI_BASE_URL=https://api.meshrouter.app/v1`.
3. Call the API the way you'd call OpenAI.
4. Read the receipt headers off the response.

## Install an SDK (optional)

| Language                   | Package                                                            | Install                       |
| -------------------------- | ------------------------------------------------------------------ | ----------------------------- |
| TypeScript / JavaScript    | [`@meshrouter/sdk`](https://www.npmjs.com/package/@meshrouter/sdk) | `npm install @meshrouter/sdk` |
| Python                     | [`meshrouter`](https://pypi.org/project/meshrouter/)               | `pip install meshrouter`      |
| Anything OpenAI-compatible | use the official OpenAI SDK                                        | swap `OPENAI_BASE_URL`        |

## Next steps

* [Open MESH chat](https://meshrouter.app/chat) — no API key needed, talk to any model in the
  browser.
* [Quickstart](/quickstart) — two-minute first request.
* [Models](/models) — full catalogue (80+ models across every major family); call
  `GET /v1/models` for the live source of truth.
* [Tool calling](/tool-calling), [structured output](/structured-output), [vision](/vision).
* [Authentication](/authentication/api-keys) — keys, limits, revocation.
* [Accounts](/accounts) — project structure and credit balance.
* [Provider health](/monitoring) — live model + provider status.
* [TypeScript SDK (`@meshrouter/sdk`)](/sdks/typescript) and
  [Python SDK (`meshrouter`)](/sdks/python).
* [Privacy classes](/privacy/mesh) — pick one of four per-call classes (Standard, Protected,
  Private Gateway, Confidential). The router enforces the class you ask for and refuses to
  silently downgrade.
* [Tokenomics](/tokenomics) — 100% of MESH margin flows back into \$BETTER through buyback,
  lock, distribute, or burn.
