Обзор TundraLabs API 🔥
Облачный API-шлюз к Claude, GPT и десяткам моделей. Один ключ — Anthropic и OpenAI совместимость. Запросы идут в формате, который вы уже знаете — без VPN и сложных настроек.
Что такое TundraLabs API #
Шлюз принимает запросы в нативном Anthropic-формате (/v1/messages) или OpenAI-формате (/v1/chat/completions) и проксирует их к провайдеру, списывая токены с баланса вашего ключа. Вы получаете один ключ и работаете из любого совместимого клиента.
Базовые адреса #
Используйте Anthropic Base URL для Claude Code, anthropic SDK и Goose. OpenAI Base URL — для Cursor, Cline, openai SDK и LangChain.
| Формат | Base URL | Клиенты |
|---|---|---|
| Anthropic | https://api.tundralabs.ru | Claude Code, anthropic SDK, Goose |
| OpenAI | https://api.tundralabs.ru/v1 | Cursor, Cline, openai SDK, LangChain |
Авторизация #
Ключ передаётся в заголовке x-api-key или Authorization: Bearer — оба варианта работают на обоих эндпоинтах.
# Anthropic-стиль x-api-key: sk_tundra_ВАШ_КЛЮЧ # OpenAI-стиль Authorization: Bearer sk_tundra_ВАШ_КЛЮЧ
Какую модель выбрать #
Быстрый выбор по сценариям. Полный каталог с описанием — в разделе Модели.
| Сценарий | Модель | Почему |
|---|---|---|
| Код и агентные задачи | claude-sonnet-5 | универсальная, баланс цена/качество |
| Тяжёлые миграции, длинные документы | claude-fable-5 | максимум reasoning, 200K контекст |
| Экономия и массовые запросы | claude-haiku-4-5 | дёшево, очень быстро |
| Универсальный продакшн | gpt-5.4 | дёшево, стабильно, без сюрпризов |
TUNDRA Autopilot — не выбирать модель вручную #
Вместо конкретной модели укажите tundra-auto — шлюз сам определит сложность запроса по его форме
(длина, есть ли код, вызовы инструментов, просьба «подумай») и отправит в подходящую по силе модель: простое уйдёт
в дешёвую, сложное — в сильную. Пакет расходуется медленнее, счёт остаётся честным — списывается ровно то, что
реально стоила выбранная модель.
curl https://api.tundralabs.ru/v1/chat/completions \ -H "Authorization: Bearer sk_tundra_ВАШ_КЛЮЧ" \ -H "content-type: application/json" \ -d '{"model":"tundra-auto", "messages":[{"role":"user","content":"Привет!"}]}'
Ответ приходит с заголовками прозрачности — видно, что реально отработало:
| Заголовок | Значение |
|---|---|
| X-Tundra-Autopilot-Model | какая модель реально ответила |
| X-Tundra-Autopilot-Tier | класс задачи: light / standard / code / heavy |
| X-Tundra-Autopilot-Failover-From | есть только если первая модель отказала и запрос ушёл в резервную |
tundra-auto. Если у ключа задан список разрешённых моделей, выбор идёт строго внутри него. Экономию по своему ключу видно в кабинете (панель «TUNDRA Autopilot»).TUNDRA Shield — запрос не падает из-за поставщика #
Модели живут не у нас, а у провайдера, и любая из них может лечь на час-другой: отвечать таймаутом, отдавать 502 или 524. Обычный шлюз в этот момент возвращает ошибку — агент в Claude Code или Cursor обрывает сессию посреди работы. Shield включён по умолчанию для всех ключей и работает так:
- Ошибка поставщика (5xx, таймаут, перегруз) — запрос повторяется той же моделью один раз.
- Если модель всё ещё не отвечает — запрос уходит в ближайшую живую модель того же класса.
- В стриме подмена происходит до первого байта: обрывков и склеенных ответов не бывает.
Ответ приходит с заголовками, по которым видно, что произошло:
| Заголовок | Значение |
|---|---|
| X-Tundra-Shield | 1 — запрос был спасён (при обычном ответе заголовка нет) |
| X-Tundra-Shield-Model | модель, которая реально ответила |
| X-Tundra-Shield-Failover-From | исходная модель, если была подмена |
| X-Tundra-Shield-Retried | 1, если помог повтор той же моделью |
Если вам нужно строго одну модель и никаких подмен — отправьте заголовок
X-Tundra-Shield: off, и запрос пойдёт ровно в неё, а ошибка поставщика придёт как есть.
curl https://api.tundralabs.ru/v1/chat/completions \ -H "Authorization: Bearer sk_tundra_ВАШ_КЛЮЧ" \ -H "X-Tundra-Shield: off" \ -H "content-type: application/json" \ -d '{"model":"claude-sonnet-5", "messages":[{"role":"user","content":"Привет!"}]}'
Возврат за неиспользованный ключ #
Если ключ не подошёл и вы им ни разу не воспользовались — напишите в чат заказа на FunPay
команду /refund. Бот покажет условия и сумму, а после вашего подтверждения
(/refund yes) запустит проверку.
- Ключ сразу замораживается — чтобы во время проверки по нему не прошло ни одного запроса.
- Система дожидается завершения уже начатых запросов и запускает внеочередную сверку с поставщиком.
- Если подтверждено, что расхода не было, — деньги возвращаются через FunPay, а ключ отключается навсегда.
/operator.
Команда работает только в чате того заказа, который вы оплатили, и только по токеновым пакетам. Повторный запрос по тому же заказу ничего не дублирует: возврат по заказу может произойти один раз.
Быстрый старт
Вставьте ключ, выберите ОС и программу — получите готовый файл или одну команду с уже подставленным ключом. То же самое доступно в кабинете на /start (там ключ подставляется автоматически, если вы уже вошли).
Ручной способ через curl (для опытных)
- Проверьте ключ. Запросите баланс — убедитесь, что ключ валидный и на нём есть токены.
key/infocURL
curl https://api.tundralabs.ru/v1/key/info -H "x-api-key: sk_tundra_ВАШ_КЛЮЧ"В ответе — JSON с балансом, расходом и лимитом.
401— ключ неверный или отозван, см. Ошибки. - Сделайте первый запрос. Один вызов
/v1/messages:messagesAnthropiccurl https://api.tundralabs.ru/v1/messages \ -H "x-api-key: sk_tundra_ВАШ_КЛЮЧ" \ -H "content-type: application/json" \ -d '{"model":"claude-opus-4-8","max_tokens":256, "messages":[{"role":"user","content":"Привет!"}]}'
- Подключите клиент. Готовые конфиги под вашу среду:
str is not valid UTF-8 выполните chcp 65001 перед запросом — переключит консоль на UTF-8.API-эндпоинты
Шлюз выставляет три совместимых формата: Anthropic Messages, OpenAI Chat Completions и современный OpenAI Responses для Codex CLI. Все эндпоинты — на https://api.tundralabs.ru.
Список #
| Метод | Путь | Описание |
|---|---|---|
| POST | /v1/messages | Anthropic-формат, поддерживает stream:true |
| POST | /v1/chat/completions | OpenAI-совместимый слой, поддерживает stream:true |
| POST | /v1/responses | OpenAI Responses для Codex CLI: stream и function tool calls |
| GET | /v1/models | Список доступных моделей (нужен ключ) |
| GET | /v1/key/info | Баланс и расход текущего ключа |
| GET | /v1/key/usage | Расход в «наших» токенах + статус |
Аутентификация #
Ключ sk_tundra_… передаётся в одном из двух заголовков — оба работают везде.
x-api-key: sk_tundra_ВАШ_КЛЮЧ # Anthropic-стиль Authorization: Bearer sk_tundra_ВАШ_КЛЮЧ # OpenAI-стиль
Стриминг #
Передайте "stream": true в теле запроса — получите Server-Sent Events выбранного протокола. Anthropic отдаёт message_start/content_block_delta, Chat Completions — data: choices, Responses — response.output_text.delta и response.completed.
curl https://api.tundralabs.ru/v1/messages \ -H "x-api-key: sk_tundra_ВАШ_КЛЮЧ" \ -H "content-type: application/json" \ -d '{"model":"claude-sonnet-5","max_tokens":512,"stream":true, "messages":[{"role":"user","content":"Объясни рекурсию"}]}'
Коды ответов #
| Код | Причина | Действие |
|---|---|---|
| 200 | OK | — |
| 401 | Ключ отсутствует, неверный или отозван | ошибка 401 |
| 402 | Баланс токенов исчерпан | ошибка 402 |
| 403 | Ключ отключён | Написать в поддержку |
| 429 | Превышен лимит 60 запросов/минуту | ошибка 429 |
| 500 | Временная ошибка шлюза | ошибка 500 |
Модели
В поле model указывайте один из идентификаторов ниже. Модели сгруппированы по сценариям, у каждой — для чего подходит, скорость, расход и кнопка копировать ID. Состояние справа у каждой карточки приходит из /api/models/state — того же источника, что у сайта, кабинета, AI Hub и админки.
Полный список model ID #
Все доступные модели — одной сеткой. У каждой: провайдер, назначение, скорость/расход и кнопка скопировать ID.
/api/models/state: один источник на все интерфейсы TundraLabs. Модель, помеченную как недоступную, шлюз не примет для нового запроса — так вы не потратите токены впустую.Cursor AID / ma-алиасы #
Если клиент просит именно Cursor AID, можно указать ma-алиасы из каталога:
Image модели #
Генерация изображений — отдельный тип тарификации (не токенами). Скоро будут доступны через API.
Video модели #
Генерация видео — отдельный тип тарификации. Скоро будут доступны через API.
Пример генерации изображения #
Когда image-модели будут включены, запрос будет выглядеть так:
curl -X POST https://api.tundralabs.ru/v1/images/generations \
-H "Authorization: Bearer sk_tundra_ВАШ_КЛЮЧ" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2","prompt":"Cozy product photo","size":"1024x1024","quality":"low","n":1}'Рассуждения
Современные модели (claude-fable-5, claude-opus-4-8, gpt-5.5) умеют «думать» перед ответом. Глубину задаёте вы — параметром reasoning_effort прямо в теле запроса.
Уровни #
| Значение | Поведение | Когда использовать |
|---|---|---|
| minimal | почти без размышлений | самый быстрый и дешёвый |
| low | лёгкие рассуждения | короткие ответы |
| medium | сбалансированно | по умолчанию |
| high | глубоко | оптимум цена/качество для сложных задач |
| xhigh | очень глубоко | архитектура, большие миграции |
| max | максимальная глубина | наибольший расход токенов |
Пример #
curl https://api.tundralabs.ru/v1/messages \ -H "x-api-key: sk_tundra_ВАШ_КЛЮЧ" \ -H "content-type: application/json" \ -d '{"model":"claude-fable-5","max_tokens":1024, "reasoning_effort":"high", "messages":[{"role":"user","content":"Реши: 17*23"}]}'
В OpenAI-формате (/v1/chat/completions, Cursor / SDK) параметр называется так же — добавьте "reasoning_effort":"high" в тело.
max расход заметно выше — для баланса цена/качество берите high. Ставьте max_tokens с запасом.Claude Code
claude-code — терминал-агент от Anthropic. Работает с любым Anthropic-совместимым эндпоинтом через переменные окружения. Наш шлюз выступает этим эндпоинтом.
/login) над ANTHROPIC_API_KEY. Чтобы форсить работу через наш ключ — задайте CLAUDE_CODE_SIMPLE=1.Установка #
npm install -g @anthropic-ai/claude-code
Настройка — settings.json (рекомендуется) #
Откройте %USERPROFILE%\.claude\settings.json (или ~/.claude/settings.json) и добавьте блок env:
{
"env": {
"CLAUDE_CODE_SIMPLE": "1",
"ANTHROPIC_BASE_URL": "https://api.tundralabs.ru",
"ANTHROPIC_API_KEY": "sk_tundra_ВАШ_КЛЮЧ",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-8",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
}
}Альтернатива — переменные окружения (cmd) #
set CLAUDE_CODE_SIMPLE=1 set ANTHROPIC_BASE_URL=https://api.tundralabs.ru set ANTHROPIC_API_KEY=sk_tundra_ВАШ_КЛЮЧ claude
Какие модели указывать #
Чаще всего достаточно Sonnet 5. Для тяжёлой задачи — Opus или Fable, для экономии — Haiku.
Codex CLI
Codex CLI подключается через пользовательского model provider. TundraLabs поддерживает требуемый /v1/responses, включая streaming и function tool calls.
Установка #
npm install -g @openai/codex
Конфигурация #
Добавьте провайдера в %USERPROFILE%\.codex\config.toml (Windows) или ~/.codex/config.toml (macOS/Linux):
model = "claude-sonnet-5" model_provider = "tundralabs" [model_providers.tundralabs] name = "TundraLabs API" base_url = "https://api.tundralabs.ru/v1" env_key = "TUNDRA_API_KEY" wire_api = "responses"
Перед запуском задайте ключ только в текущем терминале:
$env:TUNDRA_API_KEY="sk_tundra_ВАШ_КЛЮЧ"
codexconfig.toml: env_key безопаснее и позволяет менять ключ без правки конфигурации.Cursor
Cursor — IDE со встроенным AI-чатом. Принимает любой OpenAI-совместимый эндпоинт.
Настройка #
- Откройте Settings → Models.
- В разделе OpenAI API Key включите Custom API Endpoint / Override Base URL.
- Заполните поля ниже и нажмите Verify.
API Key: sk_tundra_ВАШ_КЛЮЧ Base URL: https://api.tundralabs.ru/v1 Model: claude-sonnet-5
Зелёная галка на Verify — настройка готова.
Какие модели указывать #
Cline / OpenClaw
Cline — плагин для VS Code с AI-агентом, умеющим читать/писать файлы и выполнять команды. OpenClaw и другие форки Claude Code настраиваются так же. Работает через OpenAI-совместимый API.
Настройка #
- Откройте Cline → настройки провайдера (шестерёнка).
- API Provider: OpenAI Compatible.
- Заполните поля и нажмите Save.
Base URL: https://api.tundralabs.ru/v1 API Key: sk_tundra_ВАШ_КЛЮЧ Model ID: claude-sonnet-5
Сменить модель — впишите другую в Model ID.
Какие модели указывать #
OpenCode
OpenCode — открытый AI-агент для терминала (аналог Claude Code). Подключается к TUNDRA как к OpenAI-совместимому провайдеру через конфиг.
Настройка через конфиг #
- Установите OpenCode (инструкция на opencode.ai).
- Откройте или создайте конфиг opencode.json — глобальный (~/.config/opencode/opencode.json) или в корне проекта.
- Добавьте TUNDRA как провайдера и сохраните.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"tundra": {
"npm": "@ai-sdk/openai-compatible",
"name": "TundraLabs API",
"options": {
"baseURL": "https://api.tundralabs.ru/v1",
"apiKey": "sk_tundra_ВАШ_КЛЮЧ"
},
"models": {
"claude-sonnet-5": { "name": "Claude Sonnet 5" },
"claude-fable-5": { "name": "Claude Fable 5" },
"gpt-5.5": { "name": "GPT-5.5" }
}
}
}
}Запустите opencode, откройте выбор модели (/models) и выберите модель из провайдера TundraLabs API.
models можно добавить любую модель каталога — идентификаторы смотрите в разделе «Модели» или через GET /v1/models.Какие модели указывать #
Python SDK
Если у вас уже есть код на OpenAI или Anthropic SDK — достаточно подменить base_url и api_key. Остальное не меняется.
Через Anthropic SDK #
from anthropic import Anthropic client = Anthropic(base_url="https://api.tundralabs.ru", api_key="sk_tundra_ВАШ_КЛЮЧ") msg = client.messages.create( model="claude-opus-4-8", max_tokens=256, messages=[{"role":"user","content":"Привет!"}], ) print(msg.content[0].text)
Через OpenAI SDK #
from openai import OpenAI client = OpenAI(base_url="https://api.tundralabs.ru/v1", api_key="sk_tundra_ВАШ_КЛЮЧ") r = client.chat.completions.create( model="claude-sonnet-5", messages=[{"role":"user","content":"Привет!"}], ) print(r.choices[0].message.content)
stream=True в create() — получите итератор чанков, формат идентичен оригинальному SDK.Node.js SDK
Через Anthropic SDK #
import Anthropic from "@anthropic-ai/sdk"; const client = new Anthropic({ baseURL: "https://api.tundralabs.ru", apiKey: "sk_tundra_ВАШ_КЛЮЧ", }); const r = await client.messages.create({ model: "claude-opus-4-8", max_tokens: 256, messages: [{ role: "user", content: "Привет" }], }); console.log(r.content[0].type === "text" ? r.content[0].text : "");
Через OpenAI SDK #
import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://api.tundralabs.ru/v1", apiKey: "sk_tundra_ВАШ_КЛЮЧ", });
cURL
POST /v1/messages (Anthropic) #
curl https://api.tundralabs.ru/v1/messages \ -H "x-api-key: sk_tundra_ВАШ_КЛЮЧ" \ -H "content-type: application/json" \ -d '{"model":"claude-opus-4-8","max_tokens":256,"messages":[{"role":"user","content":"Hi"}]}'
POST /v1/chat/completions (OpenAI) #
curl https://api.tundralabs.ru/v1/chat/completions \ -H "Authorization: Bearer sk_tundra_ВАШ_КЛЮЧ" \ -H "content-type: application/json" \ -d '{"model":"gpt-5.5","messages":[{"role":"user","content":"Hi"}]}'
cp866. Перед запросом с русским текстом выполните chcp 65001.Другие клиенты
Шлюз совместим с любым инструментом, который умеет Anthropic- или OpenAI-формат и позволяет задать свой Base URL.
| Инструмент | Формат | Base URL |
|---|---|---|
| Codex CLI | OpenAI Responses | https://api.tundralabs.ru/v1 |
| OpenClaude / OpenClaw / ClawCode (форки Claude Code) | Anthropic | https://api.tundralabs.ru |
| OpenCode (терминальный агент) | OpenAI | https://api.tundralabs.ru/v1 |
| Goose (desktop-агент) | Anthropic (API Host) | https://api.tundralabs.ru |
| LangChain / LlamaIndex | OpenAI | https://api.tundralabs.ru/v1 |
| Своё приложение | любой | https://api.tundralabs.ru |
sk_tundra_… в x-api-key или Authorization: Bearer, Base URL — https://api.tundralabs.ru для Anthropic-клиентов и https://api.tundralabs.ru/v1 для OpenAI-клиентов.Ошибки и что делать
Каждая ошибка — что значит, почему произошла, что проверить и что написать в поддержку. Большинство вопросов закрывается через этот раздел.
API не принял ключ. Чаще всего — опечатка при копировании, лишний пробел или ключ был отозван.
- Ключ начинается с
sk_tundra_и скопирован целиком - В заголовке
x-api-keyилиAuthorization: Bearer— без пробелов и кавычек - Ключ актуальный (старый после перевыдачи не работает)
/v1/key/info с ключомcurl https://api.tundralabs.ru/v1/key/info -H "x-api-key: sk_tundra_ВАШ_КЛЮЧ"Токены на ключе закончились, либо выбранная модель временно отключена администратором.
- Остаток в кабинете или через
/v1/key/info - Если баланс есть, а 402 на одной модели — она недоступна, попробуйте другую из каталога
Continuity: проверенным повторным покупателям, у кого баланс кончился прямо во время работы, мы иногда автоматически даём небольшой бесплатный запас, чтобы Claude Code/Cursor не оборвались посреди сессии — придёт сообщение в чат FunPay. Это не гарантия на каждый случай (ограничено по сумме и частоте), а не замена пополнения.
Превышен лимит 60 запросов/минуту на ключ. Это мягкий лимит — через минуту сбрасывается.
- Нет ли цикла с retry без backoff
- Cursor/Cline иногда шлют пачки запросов при автодополнении — снизьте агрессивность
Внутренняя ошибка шлюза или провайдера. Обычно проходит за несколько секунд.
- Повторите запрос через 5 секунд
- Если повторяется >2 минут — проверьте страницу статуса
Тоннель до сервера временно недоступен. Сервис на нашей стороне жив, но запрос не доходит. Обычно чинится автоматически за 30–60 секунд.
- Подождите 1 минуту и повторите
- Если не прошло — проверьте страницу статуса, мы уже знаем
- Клиент (Cursor/Claude Code) обычно сам ретраит — можно просто подождать
Специфичные ошибки клиентов
Claude Code игнорирует
ANTHROPIC_API_KEY и идёт в OAuth Max-подписку. Решение — CLAUDE_CODE_SIMPLE=1 в env или settings.json (см. Claude Code).Windows-консоль в
cp866 отправляет кириллицу битыми байтами. Перед запросом выполните chcp 65001.AI-помощник в чате FunPay
После подтверждённой оплаты разрешённого токенового лота AI-помощник выдаёт ключ при первой покупке, пополняет его при следующих покупках, помогает подключиться и проверяет факт первого успешного запроса.
Команды покупателя
/help /get /order /setup /setup opencode /setup claude /setup cursor /setup vscode /models /balance /limits /status /test /error ТЕКСТ_ОШИБКИ /reissue /docs /support /operator /refund
Можно писать и по-русски: «помощь», «получить ключ», «мой заказ», «настрой Cursor», «модели», «баланс», «лимиты», «ошибка …», «оператор» или «возврат».
Что происходит безопасно
/getповторно отправляет уже созданный доступ в чат этого же заказа — без второго начисления./balance,/limitsи/statusиспользуют живое состояние вашего ключа./setupдаёт точную инструкцию для выбранной программы;/errorпомогает с известными 401/403/404/429 и timeout.- Первая покупка создаёт API-ключ; следующие оплаченные заказы того же подтверждённого покупателя пополняют этот ключ ровно на объём пакета.
Когда подключается владелец
/refund не возвращает деньги автоматически. Команды /refund, /reissue, /operator, спорные платежи и неизвестные ошибки создают обращение владельцу. Финансовое или необратимое действие выполняется только после проверки.
FAQ
Короткие ответы на частые вопросы. Если вашего вопроса нет — напишите в чат заказа на FunPay.
Что значит «баланс исчерпан» (402)?
Это лимит вашего конкретного ключа. Остаток виден в кабинете. Чтобы продолжить — купите новый пакет: после подтверждения заказа токены добавятся в существующий ключ.
Что будет, если токены закончатся посреди задачи в Claude Code?
Ключ проверенного повторного покупателя может автоматически получить небольшой бесплатный запас прямо в момент запроса — чтобы агент не оборвался посреди рефакторинга. Мы напишем об этом в чат заказа на FunPay. Это ограниченная по сумме и частоте подстраховка, а не безлимит — для стабильной работы держите баланс с запасом.
Claude называет себя «Sonnet 3.5» — это баг?
Нет. Модели иногда ошибаются в самоидентификации — так они обучены. Реальная модель приходит в поле model в ответе API, ей и доверяйте.
Какие модели доступны?
Полный каталог — в разделе Модели. Кратко: Sonnet 5 для большинства задач, Fable 5 / Opus 4.8 для тяжёлых, Haiku 4.5 для экономии, GPT-5.4/5.5 для быстрого продакшна.
Можно ли пользоваться ключом в нескольких клиентах?
Да, ключ один — баланс общий. Расход складывается по всем клиентам. Можно одновременно сидеть в Claude Code, Cursor и Cline.
Расход у Opus выше — почему?
Более мощные модели стоят дороже за токен, поэтому баланс на Fable и Opus тратится быстрее, чем на Sonnet/Haiku. Коэффициенты видны в карточках моделей.
Можно ли вернуть токены за неудачный запрос?
За неуспешные запросы (5xx, timeouts провайдера) токены не списываются. Если списание всё же прошло — напишите в поддержку, вернём.
Политика конфиденциальности
Документ описывает, какие персональные данные обрабатывает сервис TundraLabs API (далее — «сервис»), с какими целями, на каком правовом основании и сколько они хранятся. Мы собираем только данные, необходимые для работы, безопасности и учёта сервиса. Там, где требуется согласие, сервис запрашивает его отдельным действием.
Оператор
Оператор обработки персональных данных — владелец сервиса TundraLabs API (домен tundralabs.ru). По любым вопросам о ваших данных, а также для реализации ваших прав — напишите в чат поддержки на сайте или в личных сообщениях на FunPay.
Какие данные мы обрабатываем
- API-ключи (
sk_tundra_*) — чтобы сопоставить запрос с балансом и лимитами. - Метаданные запросов — время, модель, HTTP-статус, число входных/выходных токенов, хэш IP и User-Agent. Они нужны для учёта расхода, показа баланса и защиты от злоупотреблений. Текст обычного API-запроса в журнал не записывается.
- Веб-кабинет (Hub). Если вы пользуетесь чатом в кабинете, ваши переписки, вложения и настройки сохраняются в вашем аккаунте — чтобы вы могли к ним вернуться. Это ваша история: любой чат и все данные можно удалить.
- Генерация изображений. Текст запроса (промпт) сохраняется в вашей истории генераций.
- Аналитика сайта — хэш IP, User-Agent, открытые страницы, источник перехода, размер экрана. Обезличенно, для статистики и безопасности. Сторонних рекламных трекеров и внешних систем аналитики нет.
- Поддержка. Переписка с поддержкой сохраняется, чтобы решить ваш вопрос. Персональные данные в тексте (почта, телефон, номера карт, ключи) автоматически обезличиваются перед сохранением, переписка хранится не дольше 30 дней.
Что мы НЕ храним
- Содержимое обычных API-запросов. Тело
/v1/messagesи/v1/chat/completionsпроходит транзитом к провайдеру и обратно; на нашей стороне не записывается — остаются только метаданные из списка выше. - Пароли и платёжные данные. Оплата идёт через FunPay — мы не видим и не храним реквизиты карт.
Цели и правовые основания
- Предоставление доступа к API и учёт токенов — исполнение договора (ст. 6 ч. 1 п. 5 152-ФЗ).
- Учёт расчётов и обязательные записи по сделкам.
- Безопасность сервиса и защита от злоупотреблений — законный интерес оператора.
Согласие в AI Hub
Перед первым входом AI Hub отдельно просит принять эту политику и подтвердить сохранение истории и передачу содержимого запроса провайдеру модели. Факт принятия фиксируется вместе с версией политики и временем. Согласие можно отозвать: удалить данные в настройках Hub и прекратить использование кабинета либо обратиться в поддержку.
Трансграничная передача
Чтобы выполнить запрос, его содержимое передаётся провайдеру моделей, серверы которого могут находиться за пределами РФ — без этого ответ модели невозможен. В поддержке персональные данные перед такой передачей обезличиваются. Для обычных API-запросов содержимым управляете вы: не отправляйте в модель персональные данные без законного основания и не передавайте лишние сведения.
Передача третьим сторонам
Кроме провайдера моделей (для исполнения запроса) и FunPay (оплата), мы никому ваши данные не передаём, не продаём и не отдаём рекламным сетям.
Сроки хранения
- Детальные данные веб-аналитики — не более 90 дней.
- Хэши IP и User-Agent в техническом журнале запросов — не более 90 дней; после этого обезличиваются, а расчётные итоги сохраняются для учёта.
- Чаты, сохранённые промпты, генерации и файлы в кабинете — до удаления пользователем, но не более 365 дней.
- Переписка с поддержкой — до 30 дней.
- Записи о согласии и расчётные документы могут храниться дольше в пределах срока, необходимого для подтверждения законности обработки и исполнения требований законодательства.
Ваши права
- Узнать, какие данные привязаны к вашему ключу.
- Исправить или удалить их: чаты и файлы — прямо в кабинете; остальное — по запросу в поддержку.
- Отозвать согласие и ключ в любой момент. Если закон или действующий договор не требуют продолжить хранение, данные удаляются в срок не более 30 дней.
Защита данных
Доступ к административной части ограничен аутентификацией и защищён от межсайтовых запросов; сессии передаются в защищённых HttpOnly-cookie. API-ключи не публикуются, загружаемые файлы проверяются по типу и принадлежат только их владельцу. Резервные копии имеют ограниченный доступ.
Условия использования
Используя TundraLabs API, вы соглашаетесь с этими условиями. Если что-то не подходит — не используйте сервис.
Что такое TundraLabs API
Облачный API-шлюз к моделям Claude и GPT. Мы принимаем запросы в формате Anthropic или OpenAI и проксируем их к провайдеру, списывая токены с вашего баланса. Сервис независим и не аффилирован с Anthropic или OpenAI; названия моделей принадлежат их правообладателям.
Аккаунт и ключи
- Ваш ключ
sk_tundra_*— идентификатор доступа. Храните в секрете; при компрометации сразу сообщите, мы отзовём и выдадим новый. - Все действия, совершённые с использованием вашего ключа, считаются совершёнными вами — до момента, когда вы сообщите о компрометации и мы отзовём ключ.
- Один ключ — для вас. Не перепродавайте доступ третьим лицам от своего имени без согласования.
- Мы вправе отозвать ключ при злоупотреблении, атаках или нарушении этих условий.
Допустимое использование
Запрещено использовать сервис для:
- генерации незаконного контента (экстремизм, CSAM, подстрекательство к насилию и т.п.);
- автоматизированных атак (bruteforce, DDoS, парсинг чужих данных в обход ToS);
- попыток получить доступ к чужим ключам или данным;
- действий, нарушающих политику допустимого использования провайдера моделей — все запросы в итоге идут туда, их правила распространяются и на вас.
Ответственность и гарантии
- Мы выступаем технологическим посредником (прокси) к моделям сторонних провайдеров и не гарантируем их бесперебойную работу — за перебои, изменения или прекращение работы конкретной модели на стороне провайдера мы ответственности не несём. Актуальный статус доступности — на странице статуса.
- Мы не несём ответственности за содержание ответов, сгенерированных ИИ-моделями, а также за решения, которые вы принимаете на основе такого содержания.
Оплата и баланс
- Заказы и оплата — через FunPay. Баланс ключа — количество доступных токенов; запрос списывает токены по факту.
- При нулевом балансе API возвращает
402. Чтобы продолжить — докупите пакет. - Перед покупкой убедитесь, что сервис вам подходит: сделайте тестовый запрос и проверьте совместимость клиента.
Продавец и контакты
- Сервис TundraLabs API, домен
tundralabs.ru. Продажа доступа (пакетов токенов) ведётся через площадку FunPay. - Поддержка и связь по заказам — чат на сайте или личные сообщения на FunPay.
Возврат средств
- Товар цифровой — токены для доступа к API. За неуспешные запросы (ошибки
5xx, таймауты провайдера) токены не списываются; если списание всё же прошло — напишите в поддержку, вернём токены. - Если пакет не активировался или доступ не работает по нашей вине — вернём токены либо оплату через FunPay.
- Возврат за уже израсходованные токены не производится — услуга по ним оказана.
- Спорные ситуации по оплате решаются в том числе через арбитраж FunPay.
Безопасность
Шифрование канала
- Все публичные эндпоинты доступны только по HTTPS, с актуальным TLS-сертификатом. HTTP принудительно редиректится на HTTPS.
- Запросы к провайдеру идут по защищённому каналу с серверной авторизацией. Учётные данные доступа не покидают нашу инфраструктуру.
Хранение ключей
- Ваши ключи
sk_tundra_*лежат в закрытой БД, недоступной извне. - Служебные креды доступа к провайдеру хранятся отдельно и наружу не отдаются.
Изоляция запросов
- Данные каждого ключа изолированы — через один ключ нельзя увидеть или повлиять на трафик другого.
- Лимиты применяются индивидуально по ключу: злоупотребление одного клиента не влияет на других.
Что делать при компрометации
- Сразу напишите в поддержку — отзовём скомпрометированный ключ.
- Выдадим новый ключ — обновите его в своих клиентах.