# Overview

One OpenAI-compatible API for hundreds of models, Global and hosted in Russia, billed in PnP from your Nodul balance.

Nodul Router gives you one endpoint and one API key for every model in the [catalog](/models). Requests and responses follow the OpenAI Chat Completions format, so the OpenAI SDKs and most tools that accept a custom base URL work unchanged.

## Base URL

```text
https://router.nodul.ru/api/v1
```

Every request carries an API key of a Router space in the `Authorization: Bearer` header. See [Authentication](/docs/en/authentication).

## Regions

Every model is served in one region:

| Region | Model ids                                          | What it means                                                          |
| ------ | -------------------------------------------------- | ---------------------------------------------------------------------- |
| Global | `vendor/model`, for example `google/gemma-3-4b-it` | The request may be served by providers outside Russia.                 |
| Russia | `ru-1/…`, `ru-2/…`                                 | The model is hosted in Russia; the request does not leave the country. |

`GET /api/v1/models` lists the models with their region (`routes[].provider` is `global` or `ru`). How to choose and combine them: [Models and routing](/docs/en/models-and-routing).

## Billing

Requests are billed in PnP, the Nodul platform currency, to the payer of the Router space. The response's `usage.cost` is the exact amount charged for that request. See [Pricing and billing](/docs/en/pricing-and-billing).

## Privacy

The router stores no prompts or completions unless the owner of a Router space turns on content logging. Providers have their own data policies: to send a request only to providers that keep nothing, add `"provider": {"zdr": true}`. See [Zero data retention](/docs/en/zero-data-retention).

## Next steps

- [Quickstart](/docs/en/quickstart): your first request in a minute.
- [Parameters](/docs/en/parameters): every request field, what the router checks and what it passes through.
- [Errors](/docs/en/errors): status codes and what to do about each.
