Лимиты, очередь и цены
Лимиты запросов
Лимиты считаются скользящим окном в 60 секунд.
| Что ограничено | Лимит |
|---|---|
| Все запросы с одного IP | 120 в минуту |
| Все запросы по ключу | 60 в минуту |
| Создание задач (включая dry_run) | 20 в минуту |
| Загрузка файлов | 20 в минуту, до 200 МБ в минуту |
В каждом ответе есть заголовки X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset (секунд до сброса). При превышении — код 429 rate_limited и заголовок Retry-After: подождите указанное число секунд и повторите.
Очередь аккаунта
Сколько задач выполняется одновременно, определяет ваш тариф. Лимит общий для студии и API: если в студии идёт генерация, API использует оставшиеся слоты. Задачи сверх лимита не отклоняются, а ждут в очереди аккаунта со статусом pending и запускаются автоматически по мере освобождения слотов, в порядке создания.
| Параметр | Значение |
|---|---|
| Одновременных задач | По тарифу (см. GET /v1/account → plan.concurrency_limit) |
| Максимум задач в очереди аккаунта | 50 (ожидающие и выполняющиеся) |
| Максимальное ожидание в очереди | 1440 мин. — затем задача отменяется с полным возвратом |
Для тяжёлых моделей (видео, собственные модели Нейроново) действует общий пул задач API на всю платформу. Если пул занят, задача тоже подождёт в статусе pending — это защищает скорость работы студии.
Цены и списание
- Стоимость в Мыслях совпадает со студией. Актуальные цены — в
GET /v1/modelsи на страницах моделей. - Мысли списываются при создании задачи. Поэтому в очередь нельзя поставить больше, чем позволяет баланс.
- При ошибке генерации Мысли возвращаются автоматически по правилам возвратов сервиса. При отмене задачи из очереди возврат полный.
- У ключа может быть дневной лимит трат — задачи сверх него получат
402 daily_limit_exceeded.
Идемпотентность
Передавайте заголовок Idempotency-Key (8–128 символов, например UUID) в запросах на создание задач. Если соединение оборвалось и вы повторили запрос с тем же ключом, API вернёт ту же задачу, а не создаст новую и не спишет Мысли дважды. Ключ действует 24 часа. Повтор с тем же ключом, но другим телом получит 409 idempotency_conflict.
Проверка без списания (dry_run)
Добавьте в тело "dry_run": true. API проверит параметры, наличие файлов, баланс, дневной лимит и очередь, вернёт стоимость и остаток баланса, но задачу не создаст и Мысли не спишет.
{
"object": "dry_run",
"valid": true,
"type": "image",
"model": "nanobanana-pro",
"cost": { "credits": 20 },
"balance": { "credits": 480, "after": 460 },
"daily_limit": { "limit": 1000, "spent": 120, "remaining": 860 },
"queue": { "pending": 0, "active": 1, "max": 50 },
"input": { "resolution": "2K", "aspect_ratio": "16:9", "images": 0 }
}