API

API-справочник

Полный список эндпоинтов Codex Key: /v1/chat/completions, /v1/responses, /v1/models. Параметры, примеры запросов и ответов, коды ошибок.

Базовый URL

https://codexkey.ru/v1

Все эндпоинты OpenAI-совместимы — можно использовать официальный SDK с переопределением base_url.

POST /v1/chat/completions

Основной эндпоинт для чат-моделей GPT-5.x и gpt-5.4-mini.

Параметры запроса

ПараметрТипОбязат.Описание
modelstringдаИдентификатор модели (gpt-5.4, gpt-5.5, …).
messagesarrayдаМассив сообщений {role, content}.
temperaturenumberнет0.0–2.0. По умолчанию 1.0.
top_pnumberнетNucleus sampling, 0.0–1.0.
max_tokensintegerнетМаксимум токенов в ответе.
streambooleanнетЕсли true — Server-Sent Events.
reasoning_effortstringнетminimal / low / medium / high.
service_tierstringнетdefault / priority / flex.
toolsarrayнетОписания функций для tool use.
tool_choicestring|objнетauto / none / {type: "function", ...}.

Пример

curl https://codexkey.ru/v1/chat/completions \
  -H "Authorization: Bearer sk-clb-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4",
    "messages": [
      {"role": "system", "content": "Ты полезный ассистент."},
      {"role": "user", "content": "Напиши hello world на Rust."}
    ],
    "temperature": 0.2,
    "max_tokens": 500
  }'

Ответ

{
  "id": "chatcmpl-9X...",
  "object": "chat.completion",
  "created": 1747641600,
  "model": "gpt-5.4",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "fn main() { println!(\"Hello, world!\"); }"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 24,
    "completion_tokens": 14,
    "reasoning_tokens": 0,
    "total_tokens": 38
  }
}

POST /v1/responses

Эндпоинт для Codex-моделей и агентских сессий с tool use. Поддерживает streaming событий и stateful-режим.

Параметры

ПараметрТипОбязат.Описание
modelstringдаcodex-5.3 или gpt-5.4 с поддержкой Responses API.
inputstringдаТекст запроса или массив сообщений.
instructionsstringнетСистемные инструкции.
toolsarrayнетФункции / встроенные инструменты.
previous_response_idstringнетПродолжение сессии — ссылка на предыдущий response.
streambooleanнетSSE-стрим событий.

Пример

curl https://codexkey.ru/v1/responses \
  -H "Authorization: Bearer sk-clb-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "codex-5.3",
    "input": "Создай файл hello.py с print(\"hi\")"
  }'

Ответ

{
  "id": "resp_abc123",
  "object": "response",
  "created_at": 1747641600,
  "model": "codex-5.3",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [{"type": "output_text", "text": "Готово. Файл hello.py создан."}]
    }
  ],
  "usage": {
    "input_tokens": 18,
    "output_tokens": 12,
    "reasoning_tokens": 4,
    "total_tokens": 34
  }
}

GET /v1/models

Возвращает список доступных моделей для текущего ключа.

curl https://codexkey.ru/v1/models \
  -H "Authorization: Bearer sk-clb-..."
{
  "object": "list",
  "data": [
    {"id": "gpt-5.4", "object": "model", "owned_by": "codexkey"},
    {"id": "gpt-5.5", "object": "model", "owned_by": "codexkey"},
    {"id": "gpt-5.4-mini", "object": "model", "owned_by": "codexkey"},
    {"id": "codex-5.3", "object": "model", "owned_by": "codexkey"}
  ]
}

Коды ошибок

КодЗначениеЧто делать
200OKУспех.
400Bad RequestПроверьте JSON и обязательные параметры.
401UnauthorizedПроверьте заголовок Authorization и ключ.
402Payment RequiredБаланс исчерпан — пополните в /cabinet.
429Too Many RequestsBackoff: подождите согласно Retry-After.
500Internal Server ErrorВременная ошибка — повторите с задержкой.
503Service UnavailableПерегрузка upstream — повторите через 5–30 секунд.

Формат ошибки

{
  "error": {
    "type": "insufficient_quota",
    "code": "balance_zero",
    "message": "Account balance is zero. Top up at https://codexkey.ru/cabinet/billing.",
    "param": null
  }
}

Rate limits

Базовые лимиты на ключ:

  • 60 RPM (requests per minute),
  • 200k TPM (tokens per minute).

Лимиты повышаются автоматически по мере роста спенда. Текущие лимиты видны в /cabinet/limits.