# Лимиты

## Частота запросов

**100 запросов в минуту** на API-ключ по умолчанию (token bucket: короткие всплески допускаются, средняя — 100/мин). Лимит — **индивидуальный на каждый ключ**: текущее значение видно в [дашборде](https://dash.souz.ai) на странице ключей и в `GET /v1/credits` (`rate_limit.requests_per_minute`).

При превышении — `429 rate_limited` с заголовком `Retry-After` (секунды до следующей попытки):

```json
HTTP 429
Retry-After: 2
{ "error": { "code": "rate_limited", "message": "too many requests" } }
```

Нужно больше — напиши нам, поднимем под твою нагрузку (для интеграций поднимаем до тысяч запросов в минуту).

## Загружаемые картинки (референсы и vision)

Принимаем **PNG, JPEG, WEBP, HEIC** — сервер сам конвертирует в формат, который понимает провайдер выбранной модели (фото с iPhone работают без танцев).

| Что | Картиночные модели | Видео-модели |
|---|---|---|
| Макс. размер файла | до 50 МБ* | до 10 МБ |
| Промпт | до 32 000 символов* | до 5 000 символов |
| Кол-во референсов | по модели (до 14–16) | по модели (обычно 1–2) |

\* — точные значения зависят от модели: смотри `limits` у каждой модели в `GET /v1/models` (поля `max_prompt_chars`, `max_image_mb`, `image_formats`). Мы всегда показываем «минимальную планку» по самому строгому провайдеру модели — то, что точно пройдёт.

GIF и SVG не принимаются.

## Чат

- Тело запроса — до **25 МБ** (vision-картинки едут внутри JSON как data URL).
- Контекст и максимум токенов — по выбранной модели.

## Джобы

- Потолок генерации **картинок — 15 минут**, **видео — 90 минут** (с большим запасом от реальных времён: обычная картинка — секунды, тяжёлая — до пары минут). Если провайдер завис — джоба завершается `failed: model_unavailable` с **возвратом кредитов**, бесконечного `queued` не бывает.
- Если апстрим-провайдер не отвечает, СОЮЗ сам переключается на резервного — клиент этого не видит и получает `completed`.
- Результаты хранятся **~24 часа** — дальше `410 file_expired`. Скачивай сразу.

## Проверить лимиты модели

```bash
curl https://api.souz.ai/v1/models -H "Authorization: Bearer sk-souz-..."
```

```json
{
  "id": "souz/kling-3",
  "modality": "video",
  "limits": { "max_prompt_chars": 5000, "max_image_mb": 10, "image_formats": ["png", "jpeg", "webp", "heic"] }
}
```
