> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ttapi.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Формат ответов

> Единый формат JSON-ответов, HTTP-коды и типовые ошибки в TTAPI

TTAPI использует единый JSON-формат ответов во всех конечных точках, чтобы ваше приложение могло одинаково обрабатывать успешные ответы и ошибки.

## Единый формат ответа

### Успех

```json theme={null}
{
  "status": "SUCCESS",
  "message": "success",
  "data": {
    "jobId": "b8bd3ff0-4349-4b71-8938-5e13aefa64fe"
  }
}
```

### Ошибка

```json theme={null}
{
  "status": "FAILED",
  "message": "Parameter error",
  "data": null
}
```

## HTTP-коды

| HTTP-код | Значение               | Частая причина                             |
| :------- | :--------------------- | :----------------------------------------- |
| `200`    | Запрос выполнен        | Успешная отправка или получение результата |
| `400`    | Некорректный запрос    | Неверные или отсутствующие параметры       |
| `401`    | Нет доступа            | Отсутствует или неверен `TT-API-KEY`       |
| `402`    | Недостаточно баланса   | Не хватает quota                           |
| `404`    | Не найдено             | Неверный эндпоинт или отсутствующий ресурс |
| `429`    | Слишком много запросов | Превышен краткосрочный лимит               |
| `499`    | Очередь исчерпана      | Недостаточно слотов очереди для продукта   |
| `500`    | Ошибка сервера         | Внутренняя ошибка сервиса                  |
| `504`    | Таймаут                | Слишком долгий синхронный запрос           |

## Бизнес-статусы

<Callout type="info">
  Поле `status` внутри JSON-ответа показывает состояние задачи на прикладном уровне.
</Callout>

| Статус          | Значение                   |
| :-------------- | :------------------------- |
| `PENDING_QUEUE` | Ожидает в очереди          |
| `ON_QUEUE`      | Выполняется                |
| `SUCCESS`       | Успешно завершено          |
| `FAILED`        | Задача завершилась ошибкой |

## Частые примеры

### Успешная отправка

```json theme={null}
{
  "status": "SUCCESS",
  "message": "success",
  "data": {
    "jobId": "b8bd3ff0-4349-4b71-8938-5e13aefa64fe"
  }
}
```

### Успешное получение результата

```json theme={null}
{
  "status": "SUCCESS",
  "message": "",
  "jobId": "8ddd973f-b5ff-4192-b418-b37fb65c65f3",
  "data": {
    "action": "imagine",
    "jobId": "8ddd973f-b5ff-4192-b418-b37fb65c65f3",
    "progress": "100",
    "prompt": "A cute kitten",
    "quota": "2",
    "discordImage": "https://cdn.ttapi.io/midjourney/2025-11-14/20260307_024522_19cf9806e1c7438b.png",
    "cdnImage": "https://cdn.ttapi.io/midjourney/2025-11-14/20260307_024522_19cf9806e1c7438b.png",
    "width": 960,
    "height": 1200,
    "hookUrl": "https://webhook-test.com/40bb50795afa242aee8c837617cd72e9",
    "components": [
      "upsample1",
      "upsample2",
      "upsample3",
      "upsample4",
      "reroll",
      "variation1",
      "variation2",
      "variation3",
      "variation4"
    ],
    "seed": null,
    "images": [
      "https://cdn.ttapi.io/midjourney/20260307/5c7261ec-7271-495d-a0f7-4dd395652a84tl.png",
      "https://cdn.ttapi.io/midjourney/20260307/5c7261ec-7271-495d-a0f7-4dd395652a84tr.png",
      "https://cdn.ttapi.io/midjourney/20260307/5c7261ec-7271-495d-a0f7-4dd395652a84bl.png",
      "https://cdn.ttapi.io/midjourney/20260307/5c7261ec-7271-495d-a0f7-4dd395652a84br.png"
    ]
  }
}
```

### Ошибка параметров

```json theme={null}
{
  "status": "FAILED",
  "message": "[Invalid parameter] Invalid value for argument: `--v`:`8`",
  "data": null
}
```

### Неверный ключ

```json theme={null}
{
  "status": "FAILED",
  "message": "Wrong TT-API-KEY or email is not activated."
}
```

## Рекомендации

* При ответах `4xx` сначала проверьте сам запрос, а уже потом повторяйте его
* При ответах `5xx` попробуйте повторить запрос 1-2 раза, затем обратитесь в поддержку
* Сохраняйте `jobId` для опроса результата, вебхук-сопоставления и отладки
