# Справочник API

Все эндпоинты работают с одним API-ключом и одним балансом. Чат поддерживает форматы OpenAI и Anthropic; изображения и видео создаются асинхронными задачами.

> https://nezhagate.com/ru/docs/api

## Base URL

Выберите адрес под ваш SDK. Оба адреса используют один ключ и один баланс.

| Протокол | Base URL | Для чего |
| --- | --- | --- |
| **OpenAI-совместимый** | `https://nezhagate.com/v1` | Чат, Responses, изображения, видео, список моделей, баланс |
| **Нативный Anthropic** | `https://nezhagate.com/anthropic` | Messages API для моделей Claude (Claude Code, Anthropic SDK) |

### Авторизация

Передавайте API-ключ в заголовке каждого запроса. Ключи создаются на странице API Keys в консоли и показываются только один раз — при создании.

```
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

Эндпоинты Anthropic принимают заголовок `x-api-key`, а также `Authorization: Bearer`.

## Список эндпоинтов

Все пути находятся под `https://nezhagate.com`. Синхронные эндпоинты сразу возвращают результат, эндпоинты изображений и видео — id задачи.

| Метод | Путь | Что делает |
| --- | --- | --- |
| POST | `/v1/chat/completions` | Чат с любой чат-моделью. С `stream: true` ответ идёт потоком. |
| POST | `/v1/responses` | Чат в формате OpenAI Responses (для части моделей). |
| POST | `/anthropic/v1/messages` | Нативный Messages API для Claude: потоковый вывод, вызов инструментов и кэш промптов. |
| POST | `/anthropic/v1/messages/count_tokens` | Считает токены в запросе Messages. |
| GET | `/anthropic/v1/models` | Список моделей Claude (в формате Anthropic). |
| POST | `/v1/images/generations` | Изображение из текста. Сразу возвращает id задачи (HTTP 202). |
| POST | `/v1/images/edits` | Изображение из изображения. То же самое делает `image` в предыдущем вызове. |
| GET | `/v1/images/jobs/{id}` | Статус и результат задачи изображения. |
| POST | `/v1/videos/generations` | Создание видео. Сразу возвращает id задачи (HTTP 202). |
| GET | `/v1/videos/jobs/{id}` | Статус и результат видеозадачи. |
| GET | `/v1/models` | Список моделей в продаже (в формате OpenAI). |
| GET | `/v1/usage` | Баланс, общий и сегодняшний расход, расход по моделям. |
| GET | `/v1/dashboard/billing/credit_grants` | Проверка баланса в стиле OpenAI; баланс в поле `total_available`. |

## Асинхронные задачи (изображения и видео)

Запросы изображений и видео сразу возвращают HTTP 202 и id задачи, а генерация идёт в фоне. Опрашивайте задачу по id или получайте результат вебхуком.

| Статус | Что значит |
| --- | --- |
| `queued` | В очереди. В ответе есть `queue_position` (сколько задач впереди) и `eta_seconds` (ожидаемое время ожидания). |
| `processing` | Генерируется. |
| `succeeded` | Готово. Результат в `data[0].url`, детали оплаты в `usage`. |
| `failed` | Ошибка. Причина в `error`; зарезервированные кредиты возвращаются полностью. |

```
curl https://nezhagate.com/v1/images/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "nano-banana-2", "prompt": "a lighthouse at dawn, watercolor", "size": "16:9"}'

# HTTP 202
{"id": "img_3f9a...c2", "object": "image.generation.job", "status": "queued", "model": "nano-banana-2"}
```

```
curl https://nezhagate.com/v1/images/jobs/img_3f9a...c2 -H "Authorization: Bearer YOUR_API_KEY"
```

```
{
  "id": "img_3f9a...c2",
  "object": "image.generation.job",
  "status": "succeeded",
  "created": 1791199400,
  "model": "nano-banana-2",
  "data": [{"url": "https://img.nezhagate.com/i/9f86d081a8....png"}],
  "usage": {"images": 1, "resolution": "1K", "model": "nano-banana-2"}
}
```

- Опрашивайте изображения каждые 2–3 секунды, видео — каждые 5–10 секунд. Опрос бесплатный.

- `data[0].url` — ссылка на нашем медиахостинге; файл хранится 60 дней и затем удаляется. Скачайте то, что нужно сохранить.

- Добавьте `callback_url` при отправке — когда задача завершится, тот же результат, что и при опросе, придёт на этот адрес. [Документация по вебхукам →](https://nezhagate.com/ru/docs/webhooks)

## Список моделей

Возвращает все ID моделей в продаже в формате OpenAI. Снятых с продажи моделей в списке нет; модель со статусом «скоро» в списке есть, но до открытия отвечает 400 `model_coming_soon`.

```
curl https://nezhagate.com/v1/models -H "Authorization: Bearer YOUR_API_KEY"
```

```
{"object": "list", "data": [{"id": "gpt-5.5", "object": "model", "owned_by": "..."}, {"id": "claude-sonnet-5", "object": "model", "owned_by": "..."}]}
```

## Баланс и расход

Любой API-ключ может узнать баланс и расход аккаунта — входить в консоль не нужно.

```
curl https://nezhagate.com/v1/usage -H "Authorization: Bearer YOUR_API_KEY"
```

```
{
  "object": "usage",
  "balance": {"usd": 12.5, "credits": 2500},
  "total": {"cost_usd": 37.5, "requests": 1840, "billed_requests": 1822, "failed_requests": 18},
  "today": {"cost_usd": 1.2, "requests": 64, "billed_requests": 63, "failed_requests": 1},
  "by_model": [
    {"model": "gpt-5.5", "cost_usd": 20.1, "requests": 900, "billed_requests": 896, "failed_requests": 4,
     "prompt_tokens": 1520000, "completion_tokens": 410000, "image_count": 0}
  ]
}
```

`balance.usd` — баланс в долларах, `balance.credits` — тот же баланс в кредитах (1 доллар = 200 кредитов).

Для готовых инструментов проверки баланса OpenAI используйте эндпоинт в стиле OpenAI; баланс в поле `total_available`.

```
curl https://nezhagate.com/v1/dashboard/billing/credit_grants -H "Authorization: Bearer YOUR_API_KEY"
```

## Формат ошибок

У всех ошибок одинаковая структура. `code` — стабильный машиночитаемый идентификатор: ориентируйтесь на `code`, а не на текст `message`.

```
{
  "error": {
    "message": "Model not enabled: gpt-9",
    "type": "invalid_request_error",
    "code": "model_not_found",
    "param": "model"
  }
}
```

| HTTP | Когда возникает |
| --- | --- |
| **400** | Неверный параметр или неизвестная модель (например, `model_not_found`); `error.param` указывает на поле. |
| **401** | Нет ключа, или он недействителен либо отключён (`missing_api_key`, `invalid_api_key`). |
| **402** | Недостаточно средств или ключ исчерпал свой бюджет (`insufficient_quota`). |
| **403** | Этой модели нет в списке разрешённых моделей ключа. |
| **404** | Задачи нет или она принадлежит другому ключу (`job_not_found`). |
| **429** | Сработал лимит или все линии этой модели заняты. Подождите столько секунд, сколько указано в заголовке `Retry-After`, и повторите. |
| **502** | Ошибка или таймаут на стороне поставщика (`upstream_error`). Запрос не оплачивается, его можно повторить. |
| **503** | Модель на обслуживании (`model_maintenance`) и не принимает задачи, пока оно не закончится. |

[Полный список кодов ошибок →](https://nezhagate.com/ru/docs-guide#errors)

## Лимиты и повторы

- По умолчанию у аккаунта нет ограничения на частоту запросов. В консоли для каждого ключа можно задать лимит запросов в минуту, дневной бюджет, общий лимит расходов, список разрешённых моделей и список разрешённых IP.

- Получив 429, подождите столько, сколько указано в заголовке `Retry-After`, и повторите. При 502, 503 и таймаутах повторяйте с экспоненциальной задержкой (например, 1, 2, затем 4 секунды).

- Неудачные запросы не оплачиваются. Если поток оборвался на середине, вы платите только за то, что успело прийти.

- Если нужна стабильно высокая параллельность, предупредите нас заранее — мы расширим мощности под ваш объём.

## SDK и примеры

Отдельный SDK не нужен: официальные SDK OpenAI и Anthropic работают, если поменять `base_url`.

```
from openai import OpenAI

client = OpenAI(base_url="https://nezhagate.com/v1", api_key="YOUR_API_KEY")
resp = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "Hello"}],
    stream=True,
)
for chunk in resp:
    print(chunk.choices[0].delta.content or "", end="")
```

```
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nezhagate.com/v1", apiKey: "YOUR_API_KEY" });
const resp = await client.chat.completions.create({
  model: "gpt-5.5",
  messages: [{ role: "user", content: "Hello" }],
});
console.log(resp.choices[0].message.content);
```

```
import anthropic

client = anthropic.Anthropic(base_url="https://nezhagate.com/anthropic", api_key="YOUR_API_KEY")
msg = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}],
)
print(msg.content[0].text)
```

Больше готовых примеров (Python, Node.js, curl, включая асинхронный сценарий для изображений и видео): [github.com/gaoorange/nezhagate-api-examples](https://github.com/gaoorange/nezhagate-api-examples)

## Документация по моделям

У каждой модели своя страница: допустимые значения параметров, примеры кода, формат ответа и порядок оплаты.

### Чат-модели

- [DeepSeek V4.1 Flash](https://nezhagate.com/ru/docs/deepseek-v4.1-flash)

- [DeepSeek V4 Flash 0731](https://nezhagate.com/ru/docs/deepseek-v4-flash-0731)

- [GLM-5.3](https://nezhagate.com/ru/docs/glm-5.3)

- [GLM-5.3 Flash](https://nezhagate.com/ru/docs/glm-5.3-flash)

- [Kimi K3](https://nezhagate.com/ru/docs/kimi-k3)

- [Qwen3.7 Max](https://nezhagate.com/ru/docs/qwen3.7-max)

- [Qwen3.8 Max](https://nezhagate.com/ru/docs/qwen3.8-max)

- [Qwen3.8 Max 0902](https://nezhagate.com/ru/docs/qwen3.8-max-0902)

- [Qwen3.8 Flash](https://nezhagate.com/ru/docs/qwen3.8-flash)

- [GPT-5.6 Sol](https://nezhagate.com/ru/docs/gpt-5.6-sol)

- [GPT-5.6 Terra](https://nezhagate.com/ru/docs/gpt-5.6-terra)

- [GPT-5.6 Luna](https://nezhagate.com/ru/docs/gpt-5.6-luna)

- [GPT-5.5](https://nezhagate.com/ru/docs/gpt-5.5)

- [GPT-6 Astra](https://nezhagate.com/ru/docs/gpt-6-astra)

- [GPT-6.1 Sol](https://nezhagate.com/ru/docs/gpt-6.1-sol)

- [GPT-6 Sol](https://nezhagate.com/ru/docs/gpt-6-sol)

- [GPT-6 Luna](https://nezhagate.com/ru/docs/gpt-6-luna)

- [Claude Sonnet 4.6](https://nezhagate.com/ru/docs/claude-sonnet-4-6)

- [Claude Opus 5](https://nezhagate.com/ru/docs/claude-opus-5)

- [Claude Fable 5](https://nezhagate.com/ru/docs/claude-fable-5)

- [Claude Sonnet 5](https://nezhagate.com/ru/docs/claude-sonnet-5)

- [Claude Opus 5.5](https://nezhagate.com/ru/docs/claude-opus-5-5)

- [Claude Sonnet 5.5](https://nezhagate.com/ru/docs/claude-sonnet-5-5)

- [Gemini 3.1 Pro](https://nezhagate.com/ru/docs/gemini-3.1-pro)

- [Gemini 3.8 Flash](https://nezhagate.com/ru/docs/gemini-3.8-flash)

- [Gemini 3.7 Flash](https://nezhagate.com/ru/docs/gemini-3.7-flash)

- [Gemini 3.6 Flash](https://nezhagate.com/ru/docs/gemini-3.6-flash)

- [Gemini 3.6 Flash High](https://nezhagate.com/ru/docs/gemini-3.6-flash-high)

- [Gemini 3.6 Flash Low](https://nezhagate.com/ru/docs/gemini-3.6-flash-low)

- [Gemini 3.6 Flash Tiered](https://nezhagate.com/ru/docs/gemini-3.6-flash-tiered)

- [Gemini 3 Flash](https://nezhagate.com/ru/docs/gemini-3-flash-preview)

- [Gemini 2.5 Flash](https://nezhagate.com/ru/docs/gemini-2.5-flash)

- [Doubao Seed 2.1 Pro](https://nezhagate.com/ru/docs/doubao-seed-2-1-pro)

- [Doubao Seed 2.1 Turbo](https://nezhagate.com/ru/docs/doubao-seed-2-1-turbo)

- [Grok 4.7](https://nezhagate.com/ru/docs/grok-4.7)

### Модели изображений

- [GPT Image 2](https://nezhagate.com/ru/docs/gpt-image-2)

- [GPT Image 2.5 Flare](https://nezhagate.com/ru/docs/gpt-image-2.5-flare)

- [GPT Image 2.5 Sunburst](https://nezhagate.com/ru/docs/gpt-image-2.5-sunburst)

- [Nano Banana 2](https://nezhagate.com/ru/docs/nano-banana-2)

- [Nano Banana Pro](https://nezhagate.com/ru/docs/nano-banana-pro)

- [Grok Imagine Image](https://nezhagate.com/ru/docs/grok-imagine-image)

- [Grok Imagine Image Quality](https://nezhagate.com/ru/docs/grok-imagine-image-quality)

### Видеомодели

- [Veo 3.1](https://nezhagate.com/ru/docs/veo-3.1)

- [Gemini Omni Flash](https://nezhagate.com/ru/docs/gemini-omni-flash)

- [Seedance 2.5](https://nezhagate.com/ru/docs/seedance-2.5)

- [Seedance 2.0](https://nezhagate.com/ru/docs/seedance-2.0)

- [Seedance 2.0 Fast](https://nezhagate.com/ru/docs/seedance-2.0-fast)

- [Seedance 2.0 · Clip](https://nezhagate.com/ru/docs/seedance-2.0-clip)

- [Seedance 2.5 · 30s](https://nezhagate.com/ru/docs/seedance-2.5-30s)

- [Wan 3.0](https://nezhagate.com/ru/docs/wan3.0-video)

- [Wan 3.0 Prime](https://nezhagate.com/ru/docs/wan3.0-video-prime)

- [MiniMax H3](https://nezhagate.com/ru/docs/minimax-h3)

- [Grok Imagine Video 1.5](https://nezhagate.com/ru/docs/grok-imagine-video-1.5)
