Документация Tokenator API

Один ключ, два совместимых формата запросов и общий каталог моделей. Здесь собрано всё, что нужно знать перед первым запросом и при разборе ошибок.

Базовые адреса и авторизация

У Tokenator два входа. Один говорит на языке OpenAI, второй — на языке Anthropic. Выбирайте тот, который уже понимает ваш клиент; конвертацией между форматами занимается сам прокси.

ФорматBase URLЗаголовок с ключом
OpenAIhttps://api.tokenator.top/v1Authorization: Bearer sk-your-tokenator-key
Anthropichttps://api.tokenator.top/anthropicx-api-key: sk-your-tokenator-key

Ключ также принимается в заголовке Authorization: Bearer на Anthropic-входе — так проще подключать клиенты, которые умеют только один способ авторизации.

Эндпоинты

МетодПутьНазначение
POST/v1/chat/completionsОсновной чат-эндпоинт формата OpenAI. Поддерживает streaming, tools и мультимодальный вход.
POST/v1/responsesФормат Responses API. Поддерживает продолжение диалога по previous_response_id.
POST/v1/messagesФормат Anthropic Messages. Доступен также по префиксу /anthropic/v1/messages.
POST/v1/messages/count_tokensПодсчёт токенов для запроса в формате Anthropic.
POST/v1/embeddingsВекторные представления текста.
POST/v1/images/generationsГенерация изображений.
POST/v1/images/editsРедактирование и апскейл изображений. Принимает multipart и JSON с base64.
POST/v1/audio/speechСинтез речи.
POST/v1/audio/transcriptionsРаспознавание речи.
POST/v1/audio/translationsРаспознавание с переводом на английский.
GET/v1/modelsСписок моделей, доступных конкретному ключу.
GET/v1/tokensОстаток лимита ключа и израсходованные токены.

Первый запрос

OpenAI-совместимый запрос
curl https://api.tokenator.top/v1/chat/completions \
  -H "Authorization: Bearer sk-your-tokenator-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "messages": [{"role": "user", "content": "Привет"}]
  }'
Тот же запрос в формате Anthropic
curl https://api.tokenator.top/anthropic/v1/messages \
  -H "x-api-key: sk-your-tokenator-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "max_tokens": 256,
    "messages": [{"role": "user", "content": "Привет"}]
  }'

Потоковый режим

Добавьте "stream": true — ответ придёт как поток server-sent events. Для длинных ответов это не просто удобство: без стриминга клиент ждёт весь ответ целиком и может отвалиться по собственному таймауту.

Если ответ формируется долго, Tokenator шлёт keep-alive, чтобы соединение не закрыли промежуточные прокси.

Как считаются input и output токены

Input — всё, что уходит в модель: системный промпт, история сообщений, описания инструментов, приложенные файлы. Output — всё, что модель сгенерировала, включая reasoning-токены, даже если вы их не видите в ответе.

С лимита ключа списывается (input + output) × множитель модели. Множитель у каждой модели свой и указан на её странице в каталоге. Фактические токены апстрима видны в статистике ключа, а в биллинге они уже с коэффициентом.

Практический вывод: длинная история диалога — это input, который оплачивается заново на каждом запросе. В агентных сценариях именно она обычно составляет основную часть расхода, а не ответы модели.

Что такое context window

Context window — предел того, сколько токенов модель может держать «в голове» за один запрос: input и output вместе. Превысили — апстрим вернёт ошибку, а не молча обрежет ваш промпт.

Отдельно от контекста существует максимальный output: сколько токенов модель может выдать в одном ответе. У большинства моделей он значительно меньше контекста. Оба значения для каждой модели указаны в каталоге.

Tools и function calling

Инструменты описываются как обычно для выбранного формата: массив tools в OpenAI-запросе или в Anthropic-запросе. Модель не вызывает функции сама — она возвращает намерение вызова, ваш код выполняет функцию и отправляет результат следующим сообщением.

Tokenator конвертирует описания инструментов между форматами, поэтому один и тот же набор tools работает на обоих входах. Клиентские серверные инструменты веб-поиска и веб-фетча из запроса удаляются: их выполнял бы апстрим, а не ваш код, и поведение было бы непредсказуемым.

Повторяющиеся описания инструментов и дубли блоков контента в истории схлопываются перед отправкой — это уменьшает input, не меняя смысла запроса.

Как включить reasoning

Поле reasoning_effort в запросе передаётся апстриму без изменений. Модели, которые его не понимают, игнорируют поле — ошибки не будет.

Кроме этого у самого ключа есть переключатель reasoning в личном кабинете: он действует независимо от того, что присылает клиент. Если reasoning для ключа выключен, расширенное размышление не используется.

Важно для бюджета: reasoning-токены тарифицируются как output. Высокий уровень усилий может увеличить расход в несколько раз при том же видимом ответе.

Файлы и изображения во входе

Изображения передаются штатным способом формата — как часть контента сообщения. Модель должна поддерживать изображения на входе; в каталоге это указано отдельным полем.

Текстовые вложения (.md, .txt) и PDF с текстовым слоем прокси распознаёт сам: текст извлекается и вставляется в запрос как текстовая часть. Сканы и файлы без текстового слоя передаются модели как файл.

Ошибки и лимиты

СимптомПричинаЧто сделать
401 или сообщение о недействительном ключеКлюч скопирован с лишними пробелами, отозван, истёк или подставлен не в ту переменную окружения.Проверьте ключ в личном кабинете и убедитесь, что переменная окружения действительно попала в тот процесс, где запускается инструмент.
403Модель не входит в список разрешённых для этого ключа.Посмотрите список моделей ключа в кабинете и выберите ID из каталога моделей.
429Превышен лимит запросов в минуту или час либо лимит одновременных стримов для ключа.Уменьшите параллелизм агента и повторите запрос с экспоненциальной задержкой. Лимиты ключа видны в кабинете.
Модель не найдена / не поддерживаетсяВ запросе указан ID, которого нет в каталоге, либо алиас, недоступный этому ключу.Скопируйте точный API ID со страницы модели — регистр и точки значимы.
Запрос завис или обрывается на длинном ответеКлиент закрыл соединение по своему таймауту раньше, чем модель закончила генерацию.Включите потоковый режим (stream: true) и увеличьте таймаут клиента: у длинных reasoning-ответов первый токен может прийти не сразу.
Ошибка вида «Request error» без деталейАпстрим-провайдер вернул ошибку. Её текст не передаётся клиенту.Повторите запрос: Tokenator сам переключается на следующего провайдера модели. Если ошибка стабильна — напишите в поддержку.

Ошибки апстрим-провайдеров клиенту не пересылаются: вместо чужих текстов и названий сервисов возвращается общее сообщение. Если модель обслуживают несколько провайдеров, Tokenator сначала пробует следующего по приоритету и отдаёт ошибку только когда закончились все.

Лимит ответа (output limit)

Помимо общего объёма токенов у каждого ключа есть отдельный лимит ответа: максимальное суммарное количество токенов, которое ключ может выдать в ответах модели. Он считается как процент от общего объёма пакета — начального плюс все пополнения — и расходуется только output-токенами; входные токены в него не входят.

Текущее значение по умолчанию для новых ключей: 6%. Точный процент для конкретного ключа виден в личном кабинете, а условия зафиксированы в оферте — она имеет приоритет над любым текстом на сайте.

Срок жизни ключа

Пакет действует до полного исчерпания лимита токенов или до истечения срока жизни ключа — что наступит раньше. Согласно действующей оферте, срок жизни ключа, выданного при покупке пакета, составляет 3 месяца (90 календарных дней) с момента выдачи, после чего ключ деактивируется, а неиспользованные токены не возвращаются.

Планируйте объём пакета под реальный темп расхода: длинная история диалога в агентных сценариях расходует input-токены быстрее, чем кажется. Актуальный остаток и дату выдачи всегда видно в личном кабинете.

Ограничение по использованию моделей Claude

Модели Claude (Anthropic) предоставляются исключительно для разработки и написания программного кода. Использование в иных целях не допускается: при выявлении такого использования сервис вправе заблокировать API-ключ без компенсации стоимости неизрасходованных токенов. Полная формулировка — в оферте.

Как проверить API-ключ

Самый быстрый способ — спросить у сервиса, что доступно этому ключу. Запрос ничего не расходует.

Список моделей ключа
curl https://api.tokenator.top/v1/models \
  -H "Authorization: Bearer sk-your-tokenator-key"
Остаток лимита
curl https://api.tokenator.top/v1/tokens \
  -H "Authorization: Bearer sk-your-tokenator-key"

Пустой или отфильтрованный список моделей означает, что ключ действителен, но модели ему не разрешены. Ответ 401 — ключ недействителен.

Частые вопросы

Нужно ли менять код, если я уже использую OpenAI SDK?

Нет. Достаточно поменять base URL и ключ; названия методов и структуры запросов остаются теми же.

Можно ли обращаться к Claude через OpenAI-формат?

Да, конвертацией занимается прокси. Обратное тоже верно: не-Claude модели доступны через Anthropic-эндпоинт.

Сгорают ли неиспользованные токены?

Условия по срокам действия ключей и токенов описаны в оферте — ориентируйтесь на неё, а не на пересказ.

Где посмотреть, сколько токенов ушло на конкретный запрос?

В личном кабинете есть журнал запросов с токенами по каждому обращению.