Справочник API
На этой странице
Адрес API — https://api.aicreator.app. Тела запросов и ответов — как у официальных API Anthropic и OpenAI: их документация подходит и для нас. Тело запроса уходит провайдеру как есть; меняется только имя модели, если это алиас.
Для России есть второй адрес того же API — https://api-ru.aicreator.app: ключи, пути и баланс общие.
Эндпоинты#
| Запрос | Протокол | Кто пользуется |
|---|---|---|
POST /v1/messages | Anthropic Messages | Claude Code, Anthropic SDK |
POST /v1/messages/count_tokens | Anthropic Messages | Claude Code, Anthropic SDK |
POST /v1/responses | OpenAI Responses | Codex CLI, OpenAI SDK |
POST /v1/chat/completions | OpenAI Chat Completions | Cline, OpenCode, Aider, OpenAI SDK |
GET /v1/models | Anthropic и OpenAI | любой клиент |
Модель доступна не на всех протоколах: на каких — видно на странице цен. Запрос к модели по протоколу, на котором её нет, вернёт 400 model_not_available — мы не переводим один протокол в другой.
Тело запроса — до 32 МБ. Один запрос длится не дольше 30 минут.
Ключ#
Подходит любой из двух заголовков:
Authorization: Bearer sk-aic-…x-api-key: sk-aic-…
Если пришли оба и значения разные, берётся x-api-key. Вход в кабинет — логин или cookie — здесь не подходит: нужен именно ключ.
Список моделей#
GET /v1/models отдаёт один список в форме, которую читают клиенты и Anthropic, и OpenAI: {"object": "list", "data": [{"id": …, "display_name": …, "context_window": …}]}. Ключ с ограничением по моделям видит только разрешённые.
Какой протокол имеется в виду, мы понимаем по заголовку запроса или по параметру ?surface=; параметр главнее заголовка:
| Заголовок | Параметр | Что в списке |
|---|---|---|
anthropic-version | ?surface=anthropic | модели протокола Anthropic Messages |
OpenAI-Beta | ?surface=responses | модели протокола OpenAI Responses |
| — | ?surface=chat | модели протокола OpenAI Chat Completions |
Без заголовка и параметра в списке модели, которые есть сразу на Chat Completions и Responses: их может вызвать любой клиент OpenAI. Другое значение surface — 400 invalid_surface.
curl "https://api.aicreator.app/v1/models?surface=responses" \
-H "Authorization: Bearer $AIC_API_KEY"Подсчёт токенов#
POST /v1/messages/count_tokens считает токены запроса в формате Messages и ничего не генерирует. Он бесплатный и не попадает в статистику, но расходует лимиты ключа на запросы и токены в минуту наравне с остальными.
curl https://api.aicreator.app/v1/messages/count_tokens \
-H "x-api-key: $AIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model": "claude-sonnet-5-5", "messages": [{"role": "user", "content": "Hello"}]}'Стриминг#
С "stream": true ответ приходит как SSE. Мы передаём поток провайдера байт в байт — те же события в том же порядке, — поэтому Claude Code и Codex работают с ним так же, как с официальным API.
Если модель молчит дольше 15 секунд — например, долго думает, — мы шлём keepalive: event: ping в протоколе Anthropic и SSE-комментарий : ping в протоколах OpenAI. Клиент не обрывает соединение по тайм-ауту.
В стриме Chat Completions мы всегда включаем stream_options.include_usage: последним приходит чанк с пустым choices: [] и статистикой токенов.
Длинные ответы — только стримом#
Запрос без стрима ждёт весь ответ молча. Если модель готовит его дольше примерно двух минут, Cloudflare перед нашим API закроет соединение с кодом 524, хотя модель ещё работает. Стрим с keepalive это ограничение проходит: для длинных ответов и долгого thinking включай "stream": true.
Заголовки#
Запроса#
anthropic-version,anthropic-betaиopenai-betaуходят провайдеру как есть: беты Claude Code работают.
Ответа#
X-Billing-Id— номер запроса в биллинге. По нему запрос, который дошёл до провайдера, находится в выгрузке статистики (полеrequest_id).retry-afterиx-should-retry— когда и стоит ли повторять. Мы ставим их на своих ошибках (кроме 401 и отказов без JSON) и передаём от провайдера.anthropic-ratelimit-*иx-ratelimit-*не возвращаются: у провайдера это лимиты нашего аккаунта, а не твоего ключа. Лимиты ключа — в разделе «Ошибки и лимиты».
Примеры#
Anthropic Messages#
curl https://api.aicreator.app/v1/messages \
-H "x-api-key: $AIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model": "claude-sonnet-5-5", "max_tokens": 1024, "messages": [{"role": "user", "content": "Hello"}]}'OpenAI Responses#
curl https://api.aicreator.app/v1/responses \
-H "Authorization: Bearer $AIC_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-6-astra", "input": "Hello"}'OpenAI Chat Completions#
curl https://api.aicreator.app/v1/chat/completions \
-H "Authorization: Bearer $AIC_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-6-astra", "messages": [{"role": "user", "content": "Hello"}]}'Список моделей#
curl https://api.aicreator.app/v1/models \
-H "Authorization: Bearer $AIC_API_KEY"