Для разработчиков
OpenAI-compatible API в России
Сохраните привычный формат SDK и меняйте модели через единый gateway NormaHub: без VPN, с рублёвым балансом и прозрачным usage.
Для кого: backend-разработчики, AI-функции продуктов и небольшие команды
Создать API keyБыстрый старт
От ключа до первого ответа
- 01
Создайте API key и задайте spend limit.
- 02
Получите MODEL_ID из каталога.
- 03
Отправьте короткий запрос и сохраните X-Request-Id.
Рабочий шаблон
Скопируйте основу и замените модель
Используйте только идентификатор из актуального каталога. Ключ храните в переменной окружения.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["NORMAHUB_API_KEY"],
base_url="https://api.normahub.cc/v1",
)
response = client.chat.completions.create(
model="MODEL_ID",
messages=[{"role": "user", "content": "Привет"}],
)
print(response.choices[0].message.content)Детали решения
Как это устроено
Переезд с прямого OpenAI за три строки
Меняются base_url на https://api.normahub.cc/v1, ключ на ключ NormaHub и model на ID из актуального каталога. Формат запросов, SDK, streaming и tools остаются привычными: переписывать интеграцию не нужно. Начните с короткого запроса без большого контекста и зафиксируйте статус, фактическую модель и X-Request-Id — это acceptance-тест переезда.
Почему единый gateway дешевле разрозненных кабинетов
Каждый прямой провайдер — это отдельный аккаунт, валюта, способ оплаты и биллинг. Здесь один баланс покрывает GPT, Claude и остальные модели каталога, а финальная сумма каждого запроса сохраняется в истории с usage. Для команды это означает один счёт вместо пяти и общий контроль расходов через лимиты ключей.
Маршруты под разные клиенты
Один base_url обслуживает Chat Completions, Responses API и Anthropic-совместимый /v1/messages. Маршрут выбирайте по формату клиента, а не по названию модели, и проверяйте capabilities модели до переключения: tools, streaming и структура ответа различаются. Детали — в документации API и гайде OpenAI SDK.
Безопасность ключа и лимиты
Ключ живёт в переменных окружения сервера, а не в коде, браузере и логах. На каждый ключ задаётся spend limit: тестовый, продуктовый и агентский ключи тратят из общего баланса, но останавливаются на своих порогах. Скомпрометированный ключ отзывается в кабинете одной кнопкой, после чего выпускается новый — интеграция меняется в одном месте.
Оплата и контроль расходов
Запросы оплачиваются с предварительно пополненного баланса по актуальным ставкам выбранной модели. Минимум и комиссия показываются перед оплатой в кабинете; лимит расходов задаётся для API-ключа.
Ограничения доступности
Возможности зависят от модели и внешнего маршрута. При недоступности provider запрос может завершиться ошибкой; проверяйте каталог, статус и документацию перед production.
Частые вопросы
Что менять в коде при переходе с api.openai.com?
Три значения: base_url, api_key и model. Остальная интеграция — SDK, обработка ответов, streaming — остаётся без изменений.
Нужен ли VPN для запросов из России?
Нет. Запросы идут на api.normahub.cc напрямую, оплата — с рублёвого баланса личного кабинета.
Как понять, сколько стоил запрос?
Финальная сумма с usage сохраняется в истории личного кабинета. Формула расчёта — в гайде по стоимости токенов.
Что делать при 401 или 402?
401 — проверьте ключ (неверен или отозван), 402 — пополните баланс или поднимите spend limit ключа. Повторять эти ошибки бессмысленно, сначала исправьте причину.
Где смотреть актуальные модели и цены?
В каталоге моделей: ID, контекст, возможности и ставки входа/выхода. Точный ID для кода берите оттуда же или ответом /v1/models.