NezhaGateNezhaGate

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

Base URL

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

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

Авторизация

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

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

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

Управлять API-ключами →

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

Все пути находятся под 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 · Отправить задачу
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 · Опросить задачу
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 при отправке — когда задача завершится, тот же результат, что и при опросе, придёт на этот адрес. Документация по вебхукам →

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

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

curl · GET /v1/models
curl https://nezhagate.com/v1/models -H "Authorization: Bearer YOUR_API_KEY"
200 · JSON
{"object": "list", "data": [{"id": "gpt-5.5", "object": "model", "owned_by": "..."}, {"id": "claude-sonnet-5", "object": "model", "owned_by": "..."}]}

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

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

curl · GET /v1/usage
curl https://nezhagate.com/v1/usage -H "Authorization: Bearer YOUR_API_KEY"
200 · JSON
{
  "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 · GET /v1/dashboard/billing/credit_grants
curl https://nezhagate.com/v1/dashboard/billing/credit_grants -H "Authorization: Bearer YOUR_API_KEY"

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

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

400 · JSON
{
  "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) и не принимает задачи, пока оно не закончится.

Полный список кодов ошибок →

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

  • По умолчанию у аккаунта нет ограничения на частоту запросов. В консоли для каждого ключа можно задать лимит запросов в минуту, дневной бюджет, общий лимит расходов, список разрешённых моделей и список разрешённых IP.
  • Получив 429, подождите столько, сколько указано в заголовке Retry-After, и повторите. При 502, 503 и таймаутах повторяйте с экспоненциальной задержкой (например, 1, 2, затем 4 секунды).
  • Неудачные запросы не оплачиваются. Если поток оборвался на середине, вы платите только за то, что успело прийти.
  • Если нужна стабильно высокая параллельность, предупредите нас заранее — мы расширим мощности под ваш объём.

SDK и примеры

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

Python · openai
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="")

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

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

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

Чат-модели

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

Видеомодели