Документация API
Шлюз фермы v2 · OpenAI-совместимый Chat Completions API поверх пулов Sakana Chat, ChatGot, GonkaRouter, Mistral Vibe, Tooken Club и Inception Labs.
Подключение
Base URL
…
API-ключ
…
Один ключ на весь API. Передаётся заголовком Authorization: Bearer <ключ>.
Не публикуйте ключ вне своих клиентов: он даёт полный доступ к пулам. Для запросов из кабинета (песочница)
вместо ключа работает сессионная кука после входа.
Быстрый старт
curl
curl, стриминг
Python (openai SDK)
JavaScript (fetch)
Эндпоинты
| метод | путь | авторизация | описание |
|---|---|---|---|
| GET | /health | нет | Статус шлюза и размеры пулов (всего / доступно аккаунтов по провайдерам). |
| GET | /v1/models | ключ или сессия | Список моделей (54) в формате OpenAI. |
| GET | /v1/models/{id} | ключ или сессия | Одна модель; 404, если id неизвестен. Алиасы (namazu, fugu) разрешаются. |
| POST | /v1/chat/completions | ключ или сессия | Чат-комплишн: обычный и стриминговый режимы, tools, thinking. В заголовке ответа — X-Farm-Account. |
| GET | /farm/status | ключ или сессия | Живое состояние пулов: аккаунты, квоты, кулдауны. То же показывает страница «Статус» в кабинете. |
Модели
Список подгружается живьём из GET /v1/models. В шлюз выведены только модели,
проверенные реальными запросами; «витринные» слаги апстримов, которые не отвечают, сюда не попадают.
| модель | провайдер | тир | примечание |
|---|---|---|---|
| загрузка… | |||
Параметры запроса
| поле | тип | по умолчанию | описание |
|---|---|---|---|
| model | string | sakana-namazu | Id модели из списка выше или алиас (namazu, fugu). |
| messages | array | обязательно | Формат OpenAI: role system / user / assistant / tool, content — текст. |
| stream | bool | false | true — ответ чанками SSE, в конце data: [DONE]. |
| stream_options.include_usage | bool | false | В стриме последним чанком перед [DONE] придёт объект usage. |
| temperature | number | апстрим | Как в OpenAI; передаётся апстриму, где поддерживается. |
| max_tokens | number | апстрим | Лимит длины ответа. |
| tools, tool_choice | array / string | auto | Function calling. Для Sakana и Mistral эмулируется шлюзом промптом (модель возвращает вызовы текстом, шлюз собирает tool_calls в ответ); нативные инструменты интерфейсов не используются. |
| thinking, enable_thinking | bool | false | Режим размышления у моделей, которые его поддерживают (Sakana, DeepSeek R1 и др.). |
| reasoning_effort | string | — | none / low / medium / high (другое значение — 400). Sakana: у namazu это переключатель размышления (none — выкл, остальное — вкл на уровне high: у модели только два уровня); у fugu-max шкала сдвигается на его уровни: low → high, medium → xhigh, high → max, none → high (выключить нельзя). Без параметра — поведение как раньше: thinking-флаг как передан, effort high. У Inception передаётся апстриму как есть. |
Шлюз сам выбирает аккаунт пула (LRU-ротация). Если аккаунт вернул ошибку, запрос повторяется на
следующем (до 5 попыток), а сбойный аккаунт уходит в кулдаун на 10 минут. Заголовок ответа
X-Farm-Account — email аккаунта, который в итоге обслужил запрос.
Ответ и стриминг
Обычный ответ
{
"id": "chatcmpl-…",
"object": "chat.completion",
"created": 1792400900,
"model": "sakana-namazu",
"choices": [
{"index": 0,
"message": {"role": "assistant", "content": "…"},
"finish_reason": "stop"}
],
"usage": {"prompt_tokens": 11, "completion_tokens": 42, "total_tokens": 53}
}Стрим (SSE)
data: {"id": "chatcmpl-…", "object": "chat.completion.chunk", "choices": [{"index": 0, "delta": {"role": "assistant", "content": ""}, "finish_reason": null}]}
data: {"id": "chatcmpl-…", "object": "chat.completion.chunk", "choices": [{"index": 0, "delta": {"content": "При"}, "finish_reason": null}]}
data: {"id": "chatcmpl-…", "object": "chat.completion.chunk", "choices": [{"index": 0, "delta": {}, "finish_reason": "stop"}]}
data: [DONE]Поле usage — оценка шлюза по длине текста (символы / 4), а не биллинг апстрима.
Для учёта реальных квот используйте GET /farm/status.
Стрим настоящий: у провайдеров с потоковой отдачей (Sakana и др.) токены приходят по мере генерации апстрима; запросы с tools обрабатываются буферно и приходят одним ответом. Если клиент оборвал соединение на середине стрима, шлюз останавливает генерацию у апстрима (у Sakana частичный ответ сохраняется с пометкой interrupted) — отдельный stop-запрос не нужен.
Ошибки
Формат — как у OpenAI: {"error": {"message": "…", "type": "…", "code": …}}.
| код | когда |
|---|---|
| 400 | Плохой JSON, нет messages, неизвестная модель в POST, невалидный reasoning_effort (invalid_request_error). |
| 401 | Нет или неверный ключ и нет сессии кабинета. |
| 404 | GET /v1/models/{id} для несуществующей модели; неизвестный путь. |
| 503 | Пул временно не обслуживает модель: все аккаунты в кулдауне или исчерпали квоту. Повторите позже или выберите другую модель. |
Лимиты пулов
Снимок на 19.10.2026. Живые цифры — GET /farm/status.
| пул | аккаунтов | квота | в пересчёте |
|---|---|---|---|
| Sakana — Namazu | 60 | $12.50 / день на аккаунт | $750 в день на пул ≈ 100–150 млн токенов/день при обычном миксе входа/выхода (замер: вход ≈ $1.6/1M, выход ≈ $9/1M) |
| Sakana — Fugu Max | 60 | $6.25 / неделю на аккаунт | $375 в неделю на пул; выход ≈ $140/1M (оркестратор, внутри — несколько моделей). Ресурс для сложных задач, не для объёма |
| ChatGot — standard | 61 | 10 бесплатных запросов / день на аккаунт + бонусный пул chatStd | 610 запросов/день восстанавливаются; бонусный пул на 19.10.2026 — 2 339 запросов, не восстанавливается |
| ChatGot — advanced | 61 | бонусный пул chatAdv | на 19.10.2026 доступно 1 164 запроса (Sonnet 4.5, Grok 4, Gemini Pro и др.), не восстанавливается |
| GonkaRouter | 10 | 20 USDT триал-кредита на аккаунт, не восстанавливается | ≈200 USDT на пул ≈ 100.5 млрд токенов по живой цене $0.00198986/1M (все 3 модели по одной цене). Кредит тратится честным usage апстрима |
| Mistral Vibe | 2 | дневной лимит сообщений не раскрыт; Vibe Code $10/мес — только кодовый агент, в API не идёт | реверс внутреннего API чата (апстрим mistral-medium-3-5, честный usage из стрима); лимит промпта ~8 КБ — длинные диалоги шлюз урезает |
| Tooken Club | пул ключей | баланс каждого ключа = номинал промокода (1–10 млн токенов); списание = токены × коэффициент модели (0.3x–2.6x) | на 24.10.2026 пул временно исчерпан: активные ключи отвечают 402, модели остаются в списке, но запросы к ним не обслуживаются до пополнения пула. Ключи не восстанавливаются — пул расходный |
| Inception Labs | 4 | 100 млн бесплатных токенов на аккаунт, разовый грант, не восстанавливается | 400 млн токенов на пул. Диффузионные модели Mercury: очень быстрая генерация (замер ~520 ток/сек), Mercury 3 — контекст 1M, reasoning_effort. Учёт локальный: грант минус usage апстрима |
Порядок траты у ChatGot standard: сначала дневные бесплатные запросы аккаунта, затем бонусный пул. У advanced дневного тира нет — сразу бонусный пул.