Подключение моделей
Один API‑ключ, один endpoint, все доступные модели — нативные протоколы Anthropic, OpenAI и Gemini плюс OpenAI‑совместимый API для любого клиента. AI‑агент сам настроит и проверит подключение.
Для вашего AI‑агента
Помощь с подключением
IDE, SDK, endpoint, модели и ошибки запросов.
Быстрый старт
Подключите apiToken.sale к coding agent, который читает, изменяет и запускает ваш проект. Выберите стек — точная инструкция появится ниже.
Один endpoint, все протоколы
router.apitoken.sale — единая точка входа для всех провайдеров. Coding‑агенты и официальные SDK получают нативные API байт‑в‑байт; любой OpenAI‑совместимый клиент работает со всеми моделями каталога через один универсальный маршрут. Тот же ключ sk‑pool и тот же предоплаченный баланс.
API баланса и расхода
Тот же ключ, который тратит деньги, читает, на что они ушли. Один маршрут отдаёт живой баланс и точный расход за любое окно по всем провайдерам — без личного кабинета и без второго ключа.
| Параметр | Что задаёт |
|---|---|
from | Начало окна, включительно. RFC3339 UTC — 2026-08-01T00:00:00Z, явный числовой offset или голая дата 2026-08-01. По умолчанию — to минус 30 дней. |
to | Конец окна, **не включается**. Те же формы. По умолчанию — «сейчас»; будущее значение подрезается до «сейчас». |
group_by | model (по умолчанию), provider, day, day,provider, day,model или api_key. Порядок в списке не важен, а model,provider — просто псевдоним model: строка модели и так называет своего провайдера. |
Две цены, обе точные. cost — что списано с вас; list_cost — прайс провайдера за тот же трафик, разница и есть ваша скидка. Обе дублируются целой строкой *_nano. Читайте деньги как строку, никогда как float.
Только явный UTC. Локальное время без offset отклоняется: догадка о зоне молча сдвинула бы границы денежного отчёта. Окно должно быть положительным и не длиннее 366 дней, иначе придёт 400 в конверте ошибок протокола хоста (Anthropic, OpenAI или Google этого хоста), с причиной в error.message.
Разрезы сходятся. Любой разрез одного окна даёт тот же итог: все они читаются из одного согласованного снимка. Токены есть в разрезах model, provider и day,model; простые дневные разрезы несут деньги и число запросов. Разрез day,model — расход по каждой модели по дням — ограничен 92 днями и за этой границей отвечает 400, а не молча теряет строки. Ключи маскируются. GET /balance отдаёт только баланс.
Модели и цены
Все провайдеры, все доступные модели и точные ставки за 1M токенов — официальная цена против той, что платите вы с единой скидкой 50%.
Claude · Anthropic Messages API
router.apitoken.salePOST /v1/messages| Модель | Контекст | Макс. вывод | Ввод | Кеш. ввод | Запись в кеш | Вывод |
|---|---|---|---|---|---|---|
Claude Fable 5.1Новаяclaude-fable-5-1 | 1M | 128K | $5 | $0.125 | $6.25 | $25 |
Claude Opus 5claude-opus-5 | 1M | 128K | $2.5 | $0.25 | $3.125 | $12.5 |
Claude Fable 5claude-fable-5 | 1M | 128K | $5 | $0.5 | $6.25 | $25 |
Claude Opus 4.8claude-opus-4-8 | 1M | 128K | $2.5 | $0.25 | $3.125 | $12.5 |
Claude Opus 4.7claude-opus-4-7 | 1M | 128K | $2.5 | $0.25 | $3.125 | $12.5 |
Claude Sonnet 5claude-sonnet-5 | 1M | 128K | $1 | $0.1 | $1.25 | $5 |
Claude Sonnet 4.6claude-sonnet-4-6 | 200K | 128K | $1.5 | $0.15 | $1.875 | $7.5 |
Claude Haiku 4.5claude-haiku-4-5 | 200K | 64K | $0.5 | $0.05 | $0.625 | $2.5 |
GPT · OpenAI Responses API
router.apitoken.salePOST /v1/responses · POST /v1/chat/completions| Модель | Контекст | Макс. вывод | Ввод | Кеш. ввод | Запись в кеш | Вывод |
|---|---|---|---|---|---|---|
GPT-6 AstraНоваяgpt-6-astra | 872K | 128K | $5 | $0.5 | $6.25 | $25 |
GPT-5.6 Solgpt-5.6-sol | 1.05M | 128K | $2 | $0.2 | $2.5 | $10 |
GPT-5.6 Terragpt-5.6-terra | 1.05M | 128K | $1 | $0.1 | $1.25 | $6 |
GPT-5.6 Lunagpt-5.6-luna | 1.05M | 128K | $0.1 | $0.01 | $0.125 | $0.6 |
GPT-5.5gpt-5.5 | 1.05M | 128K | $2.5 | $0.25 | $2.5 | $15 |
GPT-5.4gpt-5.4 | 1.05M | 128K | $1.25 | $0.125 | $1.25 | $7.5 |
GPT Image 2gpt-image-2 | per request | 1 image | $2.5 | $0.625 | $0 | $15 |
GPT Image 2.5 Flaregpt-image-2.5-flare | per request | 1 image | $2.5 | $0.625 | $0 | $15 |
GPT Image 2.5 Sunburstgpt-image-2.5-sunburst | per request | 1 image | $2.5 | $0.625 | $0 | $15 |
Gemini · Google Gemini API
router.apitoken.salePOST /v1beta/models/{model}:generateContent| Модель | Контекст | Макс. вывод | Ввод | Кеш. ввод | Запись в кеш | Вывод |
|---|---|---|---|---|---|---|
Gemini 3.8 FlashНоваяgemini-3.8-flash | 1M | 64K | $0.375 | $0.0375 | — | $1.875 |
Gemini 3.7 Flashgemini-3.7-flash | 1M | 64K | $0.375 | $0.0375 | — | $1.875 |
Gemini 3.6 Flashgemini-3.6-flash | 1M | 64K | $0.375 | $0.0375 | — | $1.875 |
Gemini 3.5 Flashgemini-3.5-flash | 1M | 64K | $0.75 | $0.075 | — | $4.5 |
Gemini 3 Flash Previewgemini-3-flash-preview | 1M | 64K | $0.25 | $0.025 | — | $1.5 |
Gemini 3.1 Pro Previewgemini-3.1-pro-preview | 1M | 64K | $1 | $0.1 | — | $6 |
Gemini 3.1 Flash-Litegemini-3.1-flash-lite | 1M | 64K | $0.125 | $0.0125 | — | $0.75 |
Gemini 2.5 Flashgemini-2.5-flash | 1M | 64K | $0.15 | $0.015 | — | $1.25 |
Gemini 2.5 Flash-Litegemini-2.5-flash-lite | 1M | 64K | $0.05 | $0.005 | — | $0.2 |
Kimi · Anthropic Messages API
router.apitoken.salePOST /v1/messages| Модель | Контекст | Макс. вывод | Ввод | Кеш. ввод | Запись в кеш | Вывод |
|---|---|---|---|---|---|---|
Kimi K3Новаяk3 | 1M | not published | $1.5 | $0.15 | $1.5 | $7.5 |
Kimi K3 (256K)k3-256k | 256K | not published | $1.5 | $0.15 | $1.5 | $7.5 |
Kimi for Codingkimi-for-coding | 256K | not published | $0.475 | $0.095 | $0.475 | $2 |
Kimi for Coding HighSpeedkimi-for-coding-highspeed | 256K | not published | $0.95 | $0.19 | $0.95 | $4 |
2M input × $10 = $20400K output × $50 = $20Официально итого = $40- Ставки указаны за 1M токенов; списание идёт за фактические токены по официальным ставкам, затем вычитается единая скидка 50%.
- Токены размышлений (thinking/reasoning) тарифицируются как вывод у обоих провайдеров.
- GPT-запросы свыше 272K входных токенов тарифицируются по официальным ставкам длинного контекста: 2× ввод и 1,5× вывод на весь запрос.
- Ставки Gemini соответствуют официальному стандартному платному тарифу Google.
- Актуальный список доступных моделей — всегда в
GET /v1/modelsна едином endpoint: один агрегированный каталог для всех провайдеров.
Gemini Batch API
Запускайте множество независимых запросов Gemini асинхронно, опрашивайте одну durable operation и получайте каждый ответ модели или ошибку отдельного item. Один нативный API работает через unified router и прямой Gemini endpoint.
https://router.apitoken.sale или прямой https://gemini.api.apitoken.sale. Меняется только hostname: пути, тела и авторизация x-goog-api-key одинаковы. Храните ключ только на сервере.Endpoints
| Метод | Путь | Назначение |
|---|---|---|
POST | /v1beta/models/{model}:batchGenerateContent | Создать асинхронную operation |
GET | /v1beta/batches/{id} | Проверить состояние и получить результаты |
GET | /v1beta/batches?pageSize={n}&pageToken={token} | Список операций этого аккаунта |
POST | /v1beta/batches/{id}:cancel | Запросить отмену; отправленные items могут завершиться |
DELETE | /v1beta/batches/{id} | Удалить завершённую операцию |
POST | /upload/v1beta/files | Начать или продолжить resumable-загрузку JSONL |
GET | /v1beta/files | Список account-scoped файлов шлюза |
GET | /v1beta/files/{id} | Получить метаданные файла |
GET | /v1beta/files/{id}:download | Потоково или диапазоном скачать активный файл |
DELETE | /v1beta/files/{id} | Удалить файл без активных ссылок |
Большой ввод через JSONL
Каждая непустая строка — отдельный JSON object с correlation key и объектом request. Не оборачивайте строки в массив. Пустые строки и CRLF допустимы. Загрузите файл в этот шлюз и передайте возвращённое files/{id} в inputConfig.fileName.
Лимиты и хранение
| Лимит | Значение |
|---|---|
| Тело inline create | 20 МиБ |
| Items в одном Batch | Нет потолка. Один клиентский job остаётся одним job. |
| Незавершённых Batches на аккаунт | 100 |
| Одна строка JSONL | 20 МиБ |
| Один upload chunk | 8 МиБ |
| TTL загруженного файла | 48 часов |
| Максимальное время в очереди | 48 часов |
| Хранение terminal result | 42 дня |
| Размер страницы list | 1–1 000 |
На аккаунте должен быть положительный предоплаченный баланс. Принятое задание сохраняется и может оставаться в очереди при временном дефиците мощности. Ultra использует до 20 durable Batch slots, остальные планы — 2; старты на одной подписке разделены случайным durable интервалом 2–5 секунд. Действуют обычные цены Gemini и скидка аккаунта; отдельной Batch-скидки и гарантии срока нет.
Отличия от официального Google Batch
| Область | Поведение apiToken.sale |
|---|---|
| Execution | Асинхронные непотоковые задания шлюза; это не Vertex AI Batch, GCS или BigQuery. |
| Pricing | Обычный тариф Gemini и скидка аккаунта. Отдельной Batch-скидки и гарантии срока нет. |
| Inline schema | Принимаются официальная обёртка InlinedRequests (requests.requests[]) и сырой массив. Алиасы proto-JSON snake_case принимаются. |
| Files | Файлы принадлежат аккаунту apiToken.sale, а не Google Cloud project. Чужие Google-файлы недоступны. |
| fileData | Синхронный fileData — 400 INVALID_ARGUMENT / FILE_URI_UNSUPPORTED: официальный Gemini API поле принимает; отправьте inlineData. Batch JSONL использует inputConfig.fileName. |
| File output | Задания с файловым вводом публикуют упорядоченный зашифрованный JSONL responsesFile до done=true; inline jobs сохраняют inlinedResponses. |
| Timestamps | Времена operation — RFC 3339 UTC (google-datetime). |
| Unsupported | Нет webhooks, embedding/update Batch, image-output моделей, Google IAM и Vertex resource semantics. |
Ошибки Batch
| Статус | Что делать |
|---|---|
400 INVALID_ARGUMENT | Исправьте JSON, выбор input form, JSONL, модель или поле. Не повторяйте неизменённый запрос. |
400 INVALID_ARGUMENT / API_KEY_INVALID | Отсутствующий, неверный или отозванный ключ: линия Gemini отвечает 400 с причиной API_KEY_INVALID в `error.details`, как официальный Google API (не 401). Передайте активный sk-pool ключ в x-goog-api-key и не повторяйте запрос с отозванным ключом. |
402 FAILED_PRECONDITION | Для paid Batch create нужен положительный предоплаченный баланс. HTTP 402 FAILED_PRECONDITION — деньги аккаунта движка, не RESOURCE_EXHAUSTED и не 429. |
404 NOT_FOUND | Неверный, удалённый, истёкший или чужой job/file; проверьте полное имя и аккаунт. |
409 ABORTED | Idempotency key использован с другим телом либо не совпал upload offset. |
FAILED_PRECONDITION | Дождитесь/отмените Batch перед удалением; активная ссылка Batch также блокирует удаление файла. |
429 / 503 | Временный лимит мощности, квоты или authority. Используйте ограниченный exponential backoff с jitter. |
Как отправлять файлы в Gemini
Синхронный generateContent требует inline-байты: files/… из любого Google-проекта невидим этому шлюзу. Для большого Gemini Batch input загрузите account-scoped JSONL в этот шлюз и передайте возвращённое имя как inputConfig.fileName. Загруженные файлы живут 48 часов.
| Тип данных | Поддержка | Как отправлять |
|---|---|---|
| Изображения (PNG, JPEG, WebP) | Да | inline_data с mime_type и base64. Примерно до 23 МБ исходного файла. |
| PDF-документы | Да | inline_data с application/pdf. Модель читает текст внутри документа. |
| Текстовые файлы | Да | inline_data с text/plain — или просто вставьте текст в text. |
| Аудио | Все текстовые модели | Любая текстовая модель, inline audio/wav. |
Files API (file_uri / fileData) | Одна модель | Только JSONL input для Batch: загрузите файл в этот шлюз и передайте files/{id} как inputConfig.fileName. Встраивание через fileData не поддерживается. В синхронном generateContent передавайте байты inline. |
cachedContent | Нет | Недоступно. Передавайте содержимое inline. |
Когда мы отказываем. Данные, которые шлюз принять не может, отклоняются до отправки провайдеру — 400 INVALID_ARGUMENT со стабильной причиной ErrorInfo: FILE_URI_UNSUPPORTED, CACHED_CONTENT_UNSUPPORTED, AUDIO_INPUT_UNSUPPORTED. Сообщение следует шаблону {field} cannot be honoured on this endpoint. The official Gemini API accepts it; {workaround}. FILE_URI_UNSUPPORTED относится к синхронному generateContent и чужим Google-файлам; Batch умеет разрешать только файлы, загруженные в этот шлюз тем же аккаунтом. Такой отказ окончательный: помогает изменение запроса, а не повтор. В каждой ошибке есть заголовок x-request-id — назовите его поддержке, и мы найдём именно ваш запрос.
Основные коды ответа
На едином endpoint каждый протокол сохраняет свой формат ошибок: маршруты Anthropic (включая маршрут KIMI на kimi/*) возвращают JSON Anthropic (ограничения шлюза добавляют `error.details.error_code` / `param`), маршруты OpenAI — {"error":{"message","type","param","code"}}, маршрут Gemini — {"error":{"code","message","status","details"}}. Коды 401 и 402 требуют исправить состояние аккаунта; автоматически повторяйте только временные ошибки 429 и 5xx. Полный каталог с точным текстом — /docs/errors.
| Статус | Значение | Что делать |
|---|---|---|
400 | Некорректный запрос, unsupported_parameter или documented_limitation | Исправьте тело. Если error.code или error.details.error_code — documented_limitation или unsupported_parameter, уберите или перенесите названное поле: официальный API этого протокола его принимает, этот endpoint — нет. Не повторяйте неизменённый запрос. |
401 | API-ключ отсутствует, неверен или отозван | Передайте активный ключ sk-pool в x-api-key. Если ключ отозван, создайте новый; повторять запрос с тем же ключом не нужно. На нативной линии Gemini та же ошибка приходит как 400 INVALID_ARGUMENT с причиной `API_KEY_INVALID` в `error.details` — как в официальном Google API; обрабатывайте её так же, как 401. |
402 | Доступного предоплаченного баланса недостаточно | Пополните аккаунт, убедитесь, что баланс зачислен, и повторите запрос. Ожидание само по себе не устранит 402. Маршруты Anthropic: 402 billing_error. Маршруты OpenAI: 402 insufficient_quota (не 429 — SDK ретраят 429). Нативный Gemini: 402 FAILED_PRECONDITION. |
429 | Лимит запросов или временный дефицит мощности провайдера | Учитывайте Retry-After, если он есть; используйте ограниченную экспоненциальную задержку со случайным смещением. |
5xx | Временная ошибка шлюза или инфраструктуры провайдера | Повторите запрос с ограниченной экспоненциальной задержкой. Сохраните ID запроса и не допускайте бесконечных повторов. |
Кеширование промптов
Запросы Claude автоматически получают prompt cache на 5 минут. Можно задать явный брейкпоинт или выбрать TTL 1 час; каждое следующее чтение стоит 10% от цены входных токенов.
Дальше
Всё, на что ссылается эта страница, в одном месте.