OpenAI-совместимый API: быстрый старт — от curl до официального SDK
Ищете OpenAI-совместимый API, к которому можно подключиться за ближайшие пять минут? Направьте любой клиент OpenAI на https://router.apitoken.sale/v1 с одним ключом sk-pool и тем же предоплаченным балансом, который уже покрывает Claude. Responses и Chat Completions стримят по SSE, а использование GPT-6 Astra / GPT-5.6 тарифицируется по официальным ставкам OpenAI за токены минус ваша единая скидка 50%.
·
Первый ответ GPT-5.6 за три шага
Вся миграция с API OpenAI на этот эндпоинт — это смена base URL и одного заголовка. Новый SDK изучать не нужно, никакого слоя-адаптера и отдельного аккаунта для GPT нет: ключ, которым вы, возможно, уже пользуетесь для Claude, — тот же самый здесь, а общий предоплаченный баланс учитывает обоих провайдеров.
- 01Создайте бесплатный аккаунт и выпустите один API-ключ вида sk-pool-… — он уже покрывает поддерживаемые модели Claude, Gemini и Kimi на их собственных протокольных поверхностях.
- 02Направьте клиент на https://router.apitoken.sale/v1 и авторизуйтесь через Authorization: Bearer — не отправляйте x-api-key: этот заголовок относится к Anthropic Messages и здесь будет отклонён.
- 03Проверьте включённый набор моделей через GET https://router.apitoken.sale/v1/models — единый каталог задаёт ID по пространствам имён провайдеров (anthropic/*, openai/*, google/*) — затем отправьте запрос Responses ниже.
curl https://router.apitoken.sale/v1/responses \
-H "Authorization: Bearer $APITOKEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"input": "Reply with exactly: connected"
}'Если в теле ответа пришёл output text — всё готово: любой другой ваш клиент заработает так же после однострочного изменения конфигурации.
Читайте также: Как купить API-ключ GPT
Официальный SDK переключается двумя аргументами конструктора
Официальные SDK OpenAI работают без изменений. Меняются только base_url и ключ, причём в production ключ должен жить в серверной переменной окружения — никогда не в клиентском коде и не в закоммиченном файле.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["APITOKEN_API_KEY"],
base_url="https://router.apitoken.sale/v1",
)
response = client.responses.create(
model="gpt-5.6-sol",
input="Reply with exactly: connected",
)
print(response.output_text)Фреймворки, жёстко привязанные к форме Chat Completions, — старые цепочки LangChain, конфиги LiteLLM, большинство open-source чат-интерфейсов — работают на том же хосте с тем же ID модели и ключом:
completion = client.chat.completions.create(
model="gpt-5.6-sol",
messages=[{"role": "user", "content": "Hello"}],
)
print(completion.choices[0].message.content)Какую поверхность выбрать для нового кода? Responses. Оба эндпоинта стримят по SSE с одинаковыми моделями, ценами и скидкой, но именно вокруг Responses строится актуальный инструментарий OpenAI: элементы рассуждений и вызовы инструментов идут в одном типизированном потоке, а удобства вроде response.output_text доступны из коробки. Chat Completions существует для клиентов и фреймворков, ожидающих классический массив messages; ничто из построенного на одной поверхности не закрывает вам другую.
ID моделей, цены за токен и ловушка 272K
Набор моделей закреплён и тарифицирован в движке, а GET https://router.apitoken.sale/v1/models — всегда актуальный ответ. Сегодня линейка включает GPT-6 Astra, три уровня GPT-5.6 плюс две модели прошлого поколения, оставленные для совместимости:
| ID модели | Уровень | Офиц. вход / выход ($ за 1M) | Кэш входа |
|---|---|---|---|
| gpt-6-astra | GPT-6 Astra | $10 / $50 | $1 |
| gpt-5.6-sol (псевдоним: gpt-5.6) | Флагман | $4 / $20 (временно) | $0.40 |
| gpt-5.6-terra | Сбалансированная | $2 / $12 | $0.20 |
| gpt-5.6-luna | Быстрая | $0.20 / $1.20 | $0.02 |
| gpt-5.5 | Флагман прошлого поколения | $5 / $30 | $0.50 |
| gpt-5.4 | Сбалансированная прошлого поколения | $2.50 / $15 | $0.25 |
- Временные официальные ставки Sol за input/cached/запись кэша/output — $4/$0.40/$5/$20 до 2026-11-21 включительно, а после плоской скидки 50% — $2/$0.20/$2.50/$10. С 2026-11-22 UTC возвращаются стандартные $5 за input и $30 за output.
- Выбирайте по уровню: gpt-5.6-sol — для самых сложных рассуждений, gpt-5.6-terra — ежедневная рабочая лошадка, gpt-5.6-luna — для массовых дешёвых вызовов. Псевдоним gpt-5.6 выбирает Sol, а не Astra.
- Усилие рассуждений настраивается на каждый запрос — от none до xhigh у всех моделей, плюс max в линейке GPT-5.6.
- Каждая модель принимает текст и изображения на входе и стримит по SSE как в Responses, так и в Chat Completions.
- Официальные tool_choice (none/auto/required/именованная функция/hosted web_search и image_generation), parallel_tool_calls включая false и hosted web_search/image_generation пробрасываются; Chat Completions мапит эти hosted-инструменты на те же Responses-инструменты.
- Кэшированный вход тарифицируется отдельно и намного дешевле свежего ($0.40 против $4 за 1M на Sol во время акции) — стабильный префикс промпта между вызовами это реальные деньги, а не микрооптимизация.
- Ваша единая B2C-скидка 50% действует здесь точно так же, как и для Claude, — один баланс, одна ставка, минус половина от официального расхода.
Порог 272K — это ловушка: выше него ставки OpenAI для длинного контекста применяются ко всему запросу — ×2 на вход и ×1,5 на выход, а не только к превышению. На Sol по акционному тарифу 270K input плюс 2K output стоят $1.12 официально, а 273K плюс 2K — $2.244. Делите слишком большие контексты на части или сокращайте историю до пересечения границы.
Что этот эндпоинт есть — и чего нет
Это независимый OpenAI-совместимый сервис, а не OpenAI Platform. Он обслуживает каталог моделей, стриминговые Responses и Chat Completions, hosted web_search и image_generation на этих текстовых маршрутах, а также отдельные routes генерации и редактирования GPT Image 2. Эндпоинты audio, files, realtime, assistants, batch и fine-tuning недоступны — если ваше приложение зависит от них, оно не кандидат на миграцию. Для текста, vision, tool calling и названных hosted-инструментов поверхность здесь полная: в стандартном цикле «сгенерировать, стримить или вызвать инструмент» нет ни одного обращения к отсутствующему эндпоинту.
- tool_choice none/auto/required, именованная функция и hosted web_search/image_generation пробрасываются (имя функции без name — 400).
- parallel_tool_calls включая false пробрасывается; при false натив сериализует function_call.
- include:["web_search_call.action.sources"] возвращает sources на завершённых search-элементах.
- Responses image_generation пробрасывает output_format jpeg/webp и partial_images 1..=3 (SSE response.image_generation_call.partial_image). background=transparent переписывается в opaque, input_fidelity отбрасывается — эти поля дают 400 на этом ChatGPT image tool. Отдельные маршруты GPT Image 2 /v1/images/* по-прежнему принимают только PNG на выходе.
- Нативные max_output_tokens/max_tokens этот endpoint выполнить не может (400 documented_limitation); уберите их. Адаптеры обрезают доставленный текст локально (~4 символа/токен) и выставляют incomplete_details.reason=max_output_tokens на Responses.
- Hosted-инструменты кроме web_search и image_generation (hosted_shell, code_interpreter, file_search, computer, mcp, skills) — 400 documented_limitation с именованным param и обходом.
Ошибки приходят в стандартном конверте OpenAI — {"error":{"message","type","param","code"}} — поэтому существующий код обработки ошибок продолжает работать. Четыре статус-кода покрывают почти всё, что вы увидите при интеграции:
- 401 — ключ неверен, отозван или вы отправили x-api-key вместо Authorization: Bearer. Воспроизведите запрос curl'ом вне приложения, чтобы понять, какая половина сломана.
- 400 documented_limitation / unsupported_parameter — присутствующее официальное поле, которое этот endpoint не выполняет. Сообщение называет поле и обход; уберите его. Не повторяйте то же тело.
- 402 insufficient_quota — общий предоплаченный баланс нужно пополнить. HTTP 402, не 429: SDK OpenAI ретраят 429. type и code остаются insufficient_quota.
- 404 — ID модели не включён на вашем ключе; проверьте GET https://router.apitoken.sale/v1/models вместо того, чтобы предполагать, что имя из документации OpenAI существует и здесь.
GPT-6 Astra: новейшая модель GPT
GPT-6 Astra — новейшая модель GPT в каталоге моделей. Официальные ставки за свежий ввод/кешированный ввод/запись кеша/вывод — $10/$1/$12.50/$50 за 1 млн токенов; после скидки B2C 50% — $5/$0.50/$6.25/$25. Максимальный контекст Codex — 872K, консервативный лимит ввода — 744K, вывод — 128K. Уровни reasoning: low, medium, high, xhigh и max. Свыше 272K ввода ставки ввода и кеша удваиваются, вывода — умножаются на 1,5; Fast удваивает применимые ставки. Примеры GPT-5.6 ниже сохраняют свои ставки.
Частые вопросы
Можно ли использовать существующий OpenAI SDK с собственным base URL?
Да — передайте официальному клиенту api_key и base_url="https://router.apitoken.sale/v1", всё остальное останется без изменений. В production храните ключ в серверной переменной окружения.
Неужели один API-ключ действительно покрывает GPT, Claude, Gemini и Kimi?
Да. Один ключ sk-pool и один предоплаченный баланс обслуживают всех четырёх провайдеров; для каждой поверхности используйте задокументированные для неё протокол и заголовок авторизации (Bearer здесь, x-api-key — на эндпоинте Anthropic Messages).
Responses API или Chat Completions для нового проекта?
Responses. Обе стримят по SSE с теми же моделями и ценами, но Responses — поверхность, вокруг которой строятся актуальные SDK и инструментарий OpenAI; Chat Completions существует для клиентов, ожидающих классическую форму.
Работают ли tool_choice, parallel_tool_calls и hosted web_search/image_generation?
Да. Официальные tool_choice (включая required и именованные инструменты), parallel_tool_calls включая false и hosted web_search/image_generation пробрасываются на Responses; Chat Completions мапит эти hosted-инструменты на те же Responses-инструменты. Для sources поиска запросите include:["web_search_call.action.sources"]. Нативный max_output_tokens обрезается локально, потому что провод ChatGPT его отклоняет.
Почему я получаю 401 на OpenAI-совместимом эндпоинте?
Почти всегда дело в заголовке авторизации: этот эндпоинт ждёт Authorization: Bearer sk-pool-…, а заголовок x-api-key из сетапов в стиле Anthropic возвращает здесь 401.
Используйте Google или GitHub, чтобы получить ключ и бонус $5 на баланс платформы до пополнения.