OpenAI API: что это, какие есть эндпоинты и почему формат стал стандартом

API — это способ вызывать модель из своего кода, а не через чат. Разбираем запросы, ответы и причины, по которым формат OpenAI используют далеко за пределами самой компании.

4 мин · · API-ключи · разработка

Если вы спрашиваете, OpenAI API что это, ответ короткий: это HTTP-интерфейс, через который ваша программа отправляет текст модели и получает ответ. ChatGPT — готовое приложение для людей, а API — набор адресов и правил для разработчиков. Формат запросов OpenAI оказался настолько удобным, что его повторяют многие шлюзы, редакторы и библиотеки. Ниже разберём, что внутри, и покажем рабочие примеры. Цены даны на 18 октября 2026.

API и ChatGPT: в чём разница

ChatGPTOpenAI 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:

bash
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:

bash
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:

bash
r = client.responses.create(
    model="gpt-6.1-sol",
    input="Что такое HTTP-статус 404? Ответь кратко.",
)
print(r.output_text)

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

bash
for m in client.models.list():
    print(m.id)

Потоковый ответ

Чтобы текст появлялся по мере генерации, добавляют stream=True. В потоке сервер всегда присылает последний чанк с данными об использовании и пустым списком choices, поэтому перед чтением choices[0] нужна проверка:

bash
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.