OpenAI API: что это, какие есть эндпоинты и почему формат стал стандартом
API — это способ вызывать модель из своего кода, а не через чат. Разбираем запросы, ответы и причины, по которым формат OpenAI используют далеко за пределами самой компании.
4 мин · · API-ключи · разработка
Если вы спрашиваете, OpenAI API что это, ответ короткий: это HTTP-интерфейс, через который ваша программа отправляет текст модели и получает ответ. ChatGPT — готовое приложение для людей, а API — набор адресов и правил для разработчиков. Формат запросов OpenAI оказался настолько удобным, что его повторяют многие шлюзы, редакторы и библиотеки. Ниже разберём, что внутри, и покажем рабочие примеры. Цены даны на 18 октября 2026.
API и ChatGPT: в чём разница
| ChatGPT | OpenAI API | |
|---|---|---|
| Для кого | для людей, окно чата | для программ и разработчиков |
| Как платят | подписка на сервисе | за токены, по факту использования |
| Что получаете | диалог в интерфейсе | JSON с ответом и счётчиком токенов |
| Управление | настройки интерфейса | параметры запроса, системный промпт, инструменты |
Условия и цены подписок меняются, поэтому смотрите актуальный тариф на сайте самого сервиса. Для разработчика важно другое: API оплачивается только за использованные токены, а значит, вы платите за реальные запросы, а не за месяц доступа.
Основные эндпоинты
В формате OpenAI несколько адресов, три из них вам встретятся постоянно. Все они доступны через базовый адрес https://api.zukko.pro/v1:
POST /v1/chat/completions— классический чат. Вы отправляете список сообщений с ролямиsystem,user,assistantи получаете ответ. Справка: Chat Completions.POST /v1/responses— более новый интерфейс, в котором вход задаётся полемinput. Различия описаны в статье responses или chat completions.GET /v1/models— список моделей, доступных вашему ключу.
У самой компании OpenAI есть и другие группы методов. Что из них поддерживает конкретный шлюз, смотрите в его документации; для задач с текстом обычно хватает трёх перечисленных.
Первый запрос
Через curl:
curl https://api.zukko.pro/v1/chat/completions \
-H "Authorization: Bearer $ZUKKO_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"messages": [
{"role": "system", "content": "Отвечай кратко, на русском."},
{"role": "user", "content": "Что такое HTTP-статус 404?"}
]
}'Ответ — JSON. Нужное в нём: choices[0].message.content (текст) и usage (сколько токенов ушло на вход и выход, от них зависит цена).
Через Python-библиотеку openai:
from openai import OpenAI
client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_ваш_ключ")
r = client.chat.completions.create(
model="gpt-6.1-sol",
messages=[
{"role": "system", "content": "Отвечай кратко, на русском."},
{"role": "user", "content": "Что такое HTTP-статус 404?"},
],
)
print(r.choices[0].message.content)
print(r.usage.prompt_tokens, r.usage.completion_tokens)Тот же запрос через /v1/responses:
r = client.responses.create(
model="gpt-6.1-sol",
input="Что такое HTTP-статус 404? Ответь кратко.",
)
print(r.output_text)Список моделей:
for m in client.models.list():
print(m.id)Потоковый ответ
Чтобы текст появлялся по мере генерации, добавляют stream=True. В потоке сервер всегда присылает последний чанк с данными об использовании и пустым списком choices, поэтому перед чтением choices[0] нужна проверка:
stream = client.chat.completions.create(
model="gpt-6.1-sol",
messages=[{"role": "user", "content": "Расскажи про HTTP-статусы"}],
stream=True,
)
for chunk in stream:
if chunk.choices:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)Почему этот формат стал стандартом
Причина практическая, а не техническая. Первым делом библиотеки, редакторы и фреймворки научились говорить именно на этом языке. Дальше работает сетевой эффект: каждому новому инструменту проще поддержать уже распространённый формат, а каждому поставщику моделей выгоднее его повторить, чтобы существующие программы заработали без переделки.
Для вас это означает свободу выбора. В клиенте достаточно поменять два значения: base_url и ключ. Сам код остаётся прежним, а модель выбирается строкой в поле model. Так одна программа может работать с моделями разных компаний. На такую совместимость опираются Cursor, Cline, Kilo Code, Codex, LangChain, LibreChat, Open WebUI и многие другие. Подробнее о самом понятии: OpenAI compatible API: что это.
Любую модель Zukko можно звать и в формате OpenAI, и в формате Anthropic (/v1/messages). Одно ограничение: для Claude скидку за кэш даёт именно Anthropic-формат, а в OpenAI-формате весь вход Claude идёт по цене входа.
Как это получить из России
Условия прямого доступа к сервисам OpenAI для вашей страны и способы оплаты смотрите на сайте самой компании. Альтернативный вариант: доступ из России через шлюз Zukko, оплата СБП (платёжная страница добавляет 8,5% сверху), картой MasterCard или криптовалютой. Вы создаёте ключ fetch_... в кабинете, подставляете его вместе с base_url и используете модели, перечисленные в GET /v1/models. Пошаговый старт описан в быстром старте.
Сколько стоит запрос
Пример: запрос с 1000 токенами входа и 500 токенами выхода к gpt-6.1-sol, цены на 18 октября 2026 — 0.27 за вход и 1.32 за выход на 1M токенов:
1000 × 0.27 / 1 000 000 + 500 × 1.32 / 1 000 000 = 0.00027 + 0.00066 = $0.00093.
Тысяча таких запросов обойдётся примерно в $0.93. Актуальные цены и модели — GET /v1/models или страница «Модели» в кабинете.
Частые вопросы
Что такое OpenAI API простыми словами?
Это адреса в интернете, на которые программа отправляет запрос с текстом и получает ответ модели. Вместо окна чата у вас код и параметры.
Нужна ли подписка ChatGPT, чтобы пользоваться API?
Это разные способы оплаты. API платный по токенам и не требует подписки на приложение. Условия самой подписки смотрите на сайте сервиса.
Что значит «OpenAI-совместимый»?
Сервис принимает запросы в том же формате: те же адреса, поля и заголовок Authorization: Bearer. Поэтому программы для OpenAI работают с ним после смены base_url и ключа.
Можно ли через такой формат вызывать модели Claude?
Да. Любую модель из каталога можно вызвать в формате OpenAI, но кэш Claude со скидкой работает в Anthropic-формате. Для обычных запросов без больших повторяющихся контекстов разницы вы не заметите.
zukko
Платите в 25×
меньше
за Claude Code & ChatGPT
Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.
Похожие статьи
- Свой прокси к нейросети на Node.js: не показывать API-ключ во фронтендеНебольшой сервер на Express между вашим фронтендом и API нейросети: ключ остаётся на сервере, а модели, длина запроса и частота ограничены.
- DeepSeek API на Python: запросы, стриминг, JSON и обработка ошибокГотовый код для DeepSeek V4.1 Flash и V4 Pro на OpenAI SDK: запрос, стриминг, разбор JSON и аккуратная обработка ошибок.
- Gemini API на Python: запросы через OpenAI SDK и OpenAI-форматРабочий пример Gemini API на Python без отдельной библиотеки: меняем base_url в OpenAI SDK, добавляем стриминг и JSON и сравниваем с google-genai.
- Anthropic SDK для Python: base_url, ключ и первый запрос через шлюзОфициальный пакет anthropic для Python нужно только направить на другой адрес. Разбираем base_url, ключ, стриминг, подсчёт токенов, кэш и ошибки.