ChatGPT API: официальная документация и первый запрос

В этой статье

Если вы ищете chatgpt api docs, начните с Developer quickstart OpenAI API, а не со страницы подписки ChatGPT. Quickstart относится к API Platform: там создают ключ проекта, выбирают SDK или HTTP-вызов и отправляют запрос к модели.

ChatGPT и OpenAI API — разные продукты

ChatGPT и OpenAI API связаны одной экосистемой, но решают разные задачи. Подписка ChatGPT даёт доступ к пользовательскому интерфейсу и его функциям. Она сама по себе не является API-ключом, не настраивает API-биллинг и не разрешает приложению вызывать api.openai.com.

Для программного запроса нужен отдельный проект в API Platform, API-ключ и настроенные там условия биллинга. Доступные модели, цены и лимиты зависят от проекта и могут меняться, поэтому перед запуском сверяйте их с актуальной документацией.

Куда идти в документации

  • Для первого запуска — Developer quickstart. Он ведёт от настройки ключа к установке SDK и минимальному запросу.
  • Для параметров и схем — OpenAI API Reference. Там ищут точные поля запроса, структуру ответа, коды ошибок и сведения о лимитах.
  • Для переноса старого кода — Migrate to the Responses API. Chat Completions часто встречается в существующих проектах, но новый пример здесь строится на Responses API.

На дату проверки, 4 октября 2026 года, базовый текстовый запрос отправляется на POST https://api.openai.com/v1/responses. В запросе нужны bearer-авторизация, model и input.

После настройки API, если вам отдельно нужна подписка или другой цифровой доступ, можно посмотреть каталог цифровых сервисов Amber Market. Это не пополнение OpenAI API и не замена API Platform; актуальные товары и условия проверяйте перед заказом.

Сначала ключ, потом код

Создайте API-ключ в проекте OpenAI Platform и передайте его процессу через переменную окружения. В macOS или Linux:

export OPENAI_API_KEY="your_api_key_here"

В PowerShell:

$env:OPENAI_API_KEY = "your_api_key_here"

setx записывает переменную для следующих сессий, но уже открытый терминал её не увидит. Поэтому после изменения окружения откройте новый терминал или задайте переменную в текущем.

Ключ нельзя помещать в браузерный JavaScript, мобильное приложение, git-репозиторий или опубликованный пример — это соответствует рекомендациям OpenAI по безопасности API-ключей. Публичный клиент должен обращаться к вашему серверу, а сервер — к OpenAI. Если ключ утёк, отзовите его и создайте новый: минификация фронтенд-кода секретом его не делает.

Первый запрос через Python SDK

Установите актуальную версию официального пакета в окружении проекта:

python -m pip install openai

Создайте example.py:

from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-6-astra",
    input="Ответь одной фразой: API подключён?",
)

print(response.output_text)

SDK читает OPENAI_API_KEY из окружения, поэтому передавать ключ в коде не нужно. Запустите файл:

python example.py

response.output_text — удобное текстовое представление результата. Имя модели взято из текущего Quickstart; перед запуском всё равно проверьте её доступность в своём проекте.

Для Node.js официальный SDK устанавливается так:

npm install openai

Минимальный example.mjs:

import OpenAI from "openai";

const client = new OpenAI();
const response = await client.responses.create({
  model: "gpt-6-astra",
  input: "Ответь одной фразой: API подключён?",
});

console.log(response.output_text);

Запустите его командой:

node example.mjs

Оба SDK вызывают тот же endpoint и используют ту же bearer-авторизацию, что и ручной HTTP-запрос. SDK лишь берёт на себя сборку запроса и разбор ответа.

Тот же запрос через curl

Для проверки сети и ключа без SDK выполните прямой HTTP-вызов:

curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-6-astra",
    "input": "Ответь одной фразой: API подключён?"
  }'

В PowerShell тело удобнее собрать как объект:

$body = @{
  model = "gpt-6-astra"
  input = "Ответь одной фразой: API подключён?"
} | ConvertTo-Json

Invoke-RestMethod `
  -Uri "https://api.openai.com/v1/responses" `
  -Method Post `
  -Headers @{ Authorization = "Bearer $env:OPENAI_API_KEY" } `
  -ContentType "application/json; charset=utf-8" `
  -Body ([System.Text.Encoding]::UTF8.GetBytes($body))

В полном JSON-ответе будут идентификатор и выходные элементы. SDK собирает текст в response.output_text, поэтому для первого smoke test не нужно вручную обходить массив output.

Как проверить результат и найти причину ошибки

Настройка закончена, если одновременно выполнены три условия:

  1. Процесс получил OPENAI_API_KEY именно из своего окружения.
  2. Сервер вернул успешный HTTP-ответ, а output_text непустой.
  3. Запрос использовал модель, доступную вашему проекту сейчас.

Разбирайте ошибки по границе, на которой они возникли:

  • ошибка авторизации — проверьте имя переменной, пробелы в ключе и проект;
  • 404 или ошибка модели — проверьте имя модели и её доступность;
  • 429 — отделите rate limit от отсутствующей квоты по телу ответа и настройкам проекта;
  • отсутствие HTTP-ответа — проверьте сеть, прокси и корпоративный TLS.

После минимального вызова можно разобрать запрос через curl, затем изучить роли и структуру сообщений OpenAI API. Для 429, rate limit и insufficient_quota пригодится диагностика этих ошибок.

Смысл первого запроса — проверить границу между приложением, SDK, ключом и API. Когда она работает, следующие возможности Responses API добавляются поверх проверенной авторизации, а не скрывают ошибку в базовой настройке.

Источники

Есть следующая задача?Ещё по теме «Работа с API» →