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.
Параметры запроса
| Параметр | Тип | Обязат. | Описание |
|---|---|---|---|
model | string | да | Идентификатор модели (gpt-5.4, gpt-5.5, …). |
messages | array | да | Массив сообщений {role, content}. |
temperature | number | нет | 0.0–2.0. По умолчанию 1.0. |
top_p | number | нет | Nucleus sampling, 0.0–1.0. |
max_tokens | integer | нет | Максимум токенов в ответе. |
stream | boolean | нет | Если true — Server-Sent Events. |
reasoning_effort | string | нет | minimal / low / medium / high. |
service_tier | string | нет | default / priority / flex. |
tools | array | нет | Описания функций для tool use. |
tool_choice | string|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-режим.
Параметры
| Параметр | Тип | Обязат. | Описание |
|---|---|---|---|
model | string | да | codex-5.3 или gpt-5.4 с поддержкой Responses API. |
input | string | да | Текст запроса или массив сообщений. |
instructions | string | нет | Системные инструкции. |
tools | array | нет | Функции / встроенные инструменты. |
previous_response_id | string | нет | Продолжение сессии — ссылка на предыдущий response. |
stream | boolean | нет | 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"}
]
}
Коды ошибок
| Код | Значение | Что делать |
|---|---|---|
| 200 | OK | Успех. |
| 400 | Bad Request | Проверьте JSON и обязательные параметры. |
| 401 | Unauthorized | Проверьте заголовок Authorization и ключ. |
| 402 | Payment Required | Баланс исчерпан — пополните в /cabinet. |
| 429 | Too Many Requests | Backoff: подождите согласно Retry-After. |
| 500 | Internal Server Error | Временная ошибка — повторите с задержкой. |
| 503 | Service 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.