IskraGen

Генерации

Создание задач генерации и проверка статуса

Базовый адрес — https://api.iskragen.ru. Общие правила — в обзоре справочника.

GET /v1/generations/

Список генераций. Возвращает свои генерации от новых к старым с фильтрами status, modelId через запятую, q длиной 1–200 символов и from / to; курсорная пагинация принимает limit от 1 до 100, по умолчанию 20, а cursor равен ISO 8601 createdAt последнего элемента, nextCursor: null означает конец списка. Требуется API-ключ; действует общий лимит 60 запросов в минуту, превышение возвращает 429 RATE_LIMIT_ERROR с retryAfter, а отсутствие ключа — 401 AUTHENTICATION_ERROR.

Авторизация: заголовок Authorization: Bearer <ключ> — API-ключ, выданный в личном кабинете (isk_live_<prefix>_<secret>).

Параметры

ПараметрГдеТипОбязательныйОписание и ограничения
limitqueryintegerнет≥ 1; ≤ 100; по умолчанию 20
cursorquerystringнет—
statusquerystringнетзначения: PENDING, PROCESSING, SUCCEEDED, FAILED
modelIdquerystringнетОдин или несколько идентификаторов моделей через запятую — modelSlug (рекомендуется) или прежний идентификатор; длина ≤ 2000
qquerystringнетдлина ≥ 1; длина ≤ 200
mediaTypequerystringнетзначения: IMAGE, VIDEO, AUDIO
fromquerystringнетформат date-time
toquerystringнетформат date-time

Пример вызова

curl -X GET "https://api.iskragen.ru/v1/generations/" \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY"

Структура ответа 200

Поля и типы из схемы ответа, это не пример: значения зависят от запроса. Корень — object.

ПолеТипОбязательноеОписание и ограничения
itemsobject[]да—
items[].chargeStatusstring | nullда—
items[].costRubnumberда—
items[].createdAtstringда—
items[].errorCodestring | nullда—
items[].errorMessagestring | nullда—
items[].finishedAtstring | nullда—
items[].idstringда—
items[].mediaPriceRubnumber | nullда—
items[].mediaTypestringда—
items[].modelIdstringдаУстарело: внутренний идентификатор. Используйте modelSlug.
items[].modelNamestringда—
items[].modelSlugstringнетВсегда присутствует в ответе; публичный идентификатор модели
items[].outputUrlsstring[]да—
items[].promptstringда—
items[].recoveredAfterRefundbooleanнетtrue — результат получен после возврата средств, списания нет
items[].startedAtstring | nullда—
items[].statusstringда—
nextCursorstring | nullда—

Пример ответа

Пример ответа сервера; значения синтетические.

{
  "items": [
    {
      "chargeStatus": null,
      "costRub": 10,
      "createdAt": "2026-09-18T09:14:03.512Z",
      "errorCode": null,
      "errorMessage": null,
      "finishedAt": null,
      "id": "01a0b3cb-5978-7c41-9e2a-5d8f13b0a7c6",
      "mediaPriceRub": null,
      "mediaType": "IMAGE",
      "modelId": "internal-nano-banana-2",
      "modelName": "Google - Nano Banana 2",
      "modelSlug": "nano-banana-2",
      "outputUrls": [],
      "prompt": "Демонстрационный пример: бумажный кораблик на спокойной воде, акварель",
      "startedAt": "2026-09-18T09:14:04.020Z",
      "status": "PROCESSING"
    },
    {
      "chargeStatus": null,
      "costRub": 10,
      "createdAt": "2026-09-18T09:12:41.087Z",
      "errorCode": null,
      "errorMessage": null,
      "finishedAt": "2026-09-18T09:12:58.214Z",
      "id": "01a0b3ca-177f-7a93-8b5e-2c61f4d09e18",
      "mediaPriceRub": null,
      "mediaType": "IMAGE",
      "modelId": "internal-nano-banana-2",
      "modelName": "Google - Nano Banana 2",
      "modelSlug": "nano-banana-2",
      "outputUrls": [
        "https://files.example.com/generations/01a0b3ca-177f-7a93-8b5e-2c61f4d09e18/output_0.png"
      ],
      "prompt": "Демонстрационный пример: стеклянная банка с полевыми цветами на подоконнике",
      "startedAt": "2026-09-18T09:12:41.630Z",
      "status": "SUCCEEDED"
    }
  ],
  "nextCursor": "2026-09-18T09:12:41.087Z"
}

Коды ошибок

  • 401 AUTHENTICATION_ERROR — ключ отсутствует, невалиден или отозван.
  • 429 RATE_LIMIT_ERROR — превышен лимит запросов либо число одновременных генераций (по умолчанию 5).

POST /v1/generations/

Создать генерацию. Возвращает 202 и задачу с id, status, costRub, а не результат; при резервировании стоимость списывается с баланса в момент создания задачи, до постановки в очередь, при нехватке возвращается 402 INSUFFICIENT_BALANCE с required и available, а при провале генерации сумма возвращается на баланс автоматически. Результат получают опросом GET /v1/generations/{id} или вебхуком generation.completed / generation.failed; Idempotency-Key длиной 1–64 символа приоритетнее одноимённого поля тела, повтор и одновременные запросы с одним ключом возвращают ту же задачу. prompt — обычно до 10 000 символов, у отдельных моделей до 30 000; точный предел модели — в promptMaxChars каталога, допускается не более 5 одновременных задач и до 10 внешних референсов суммарно до 200 МБ; доступ: Требуется API-ключ, действует общий лимит 60 запросов в минуту, превышение возвращает 429 RATE_LIMIT_ERROR с retryAfter, а отсутствие ключа — 401 AUTHENTICATION_ERROR.

Авторизация: заголовок Authorization: Bearer <ключ> — API-ключ, выданный в личном кабинете (isk_live_<prefix>_<secret>).

Параметры

ПараметрГдеТипОбязательныйОписание и ограничения
idempotency-keyheaderstringнетдлина ≥ 1; длина ≤ 64

Тело запроса (application/json)

ПолеТипОбязательноеОписание и ограничения
durationSecintegerнет≥ 1; ≤ 600
heightintegerнет≥ 256; ≤ 4096
idempotencyKeystringнетдлина ≥ 1; длина ≤ 64
modelSlugstringдадлина ≥ 1
negativePromptstringнетдлина ≤ 2000
paramsobjectнетпроизвольные ключи
promptstringдадлина ≥ 1; длина ≤ 30000
seedintegerнет≥ 0
widthintegerнет≥ 256; ≤ 4096

Пример вызова

curl -X POST "https://api.iskragen.ru/v1/generations/" \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"modelSlug":"<modelSlug>","prompt":"<prompt>"}'

Структура ответа 202

Поля и типы из схемы ответа, это не пример: значения зависят от запроса. Корень — object.

ПолеТипОбязательноеОписание и ограничения
costRubnumberда—
idstringда—
statusstringда—

Пример ответа

Пример ответа сервера; значения синтетические.

{
  "costRub": 10,
  "id": "01a0b3cb-5978-7c41-9e2a-5d8f13b0a7c6",
  "status": "PENDING"
}

Коды ошибок

  • 401 AUTHENTICATION_ERROR — ключ отсутствует, невалиден или отозван.
  • 402 INSUFFICIENT_BALANCE — баланс ниже стоимости запроса.
  • 429 RATE_LIMIT_ERROR — превышен лимит запросов либо число одновременных генераций (по умолчанию 5).

GET /v1/generations/models

Модели из моей истории. Возвращает без пагинации модели, по которым у аккаунта есть генерации, и их счётчики для фильтра списка. Требуется API-ключ; действует общий лимит 60 запросов в минуту, превышение возвращает 429 RATE_LIMIT_ERROR с retryAfter, а отсутствие ключа — 401 AUTHENTICATION_ERROR.

Авторизация: заголовок Authorization: Bearer <ключ> — API-ключ, выданный в личном кабинете (isk_live_<prefix>_<secret>).

Пример вызова

curl -X GET "https://api.iskragen.ru/v1/generations/models" \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY"

Структура ответа 200

Поля и типы из схемы ответа, это не пример: значения зависят от запроса. Корень — object.

ПолеТипОбязательноеОписание и ограничения
modelsobject[]да—
models[].countintegerда—
models[].idstringдаУстарело: внутренний идентификатор. Используйте slug.
models[].namestringда—
models[].slugstringнетВсегда присутствует в ответе; публичный идентификатор модели

Коды ошибок

  • 401 AUTHENTICATION_ERROR — ключ отсутствует, невалиден или отозван.
  • 429 RATE_LIMIT_ERROR — превышен лимит запросов либо число одновременных генераций (по умолчанию 5).

GET /v1/generations/{id}

Получить генерацию. Возвращает генерацию для опроса статуса и параметры для повтора; возможные статусы: PENDING, PROCESSING, SUCCEEDED, FAILED, REFUNDED, CANCELLED, ENQUEUE_FAILED, а чужой id возвращает 404. Требуется API-ключ; действует общий лимит 60 запросов в минуту, превышение возвращает 429 RATE_LIMIT_ERROR с retryAfter, а отсутствие ключа — 401 AUTHENTICATION_ERROR.

Авторизация: заголовок Authorization: Bearer <ключ> — API-ключ, выданный в личном кабинете (isk_live_<prefix>_<secret>).

Параметры

ПараметрГдеТипОбязательныйОписание и ограничения
idpathstringдаформат uuid

Пример вызова

curl -X GET "https://api.iskragen.ru/v1/generations/<id>" \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY"

Структура ответа 200

Поля и типы из схемы ответа, это не пример: значения зависят от запроса. Корень — object.

ПолеТипОбязательноеОписание и ограничения
chargeStatusstring | nullда—
costRubnumberда—
createdAtstringда—
durationSecinteger | nullда—
errorCodestring | nullда—
errorMessagestring | nullда—
finishedAtstring | nullда—
heightinteger | nullда—
idstringда—
mediaPriceRubnumber | nullда—
mediaTypestringда—
modelIdstringдаУстарело: внутренний идентификатор. Используйте modelSlug.
modelNamestringда—
modelSlugstringда—
negativePromptstring | nullда—
outputUrlsstring[]да—
paramsobjectдапроизвольные ключи
promptstringда—
recoveredAfterRefundbooleanнетtrue — результат получен после возврата средств, списания нет
seedinteger | nullда—
startedAtstring | nullда—
statusstringда—
userIdstringда—
widthinteger | nullда—

Коды ошибок

  • 401 AUTHENTICATION_ERROR — ключ отсутствует, невалиден или отозван.
  • 404 — Ресурс не существует или принадлежит другому пользователю
  • 429 RATE_LIMIT_ERROR — превышен лимит запросов либо число одновременных генераций (по умолчанию 5).

GET /v1/generations/{id}/download

Скачать результат. Отдаёт файл потоком с Content-Disposition: attachment и Cache-Control: private, no-store, а не ссылку или редирект; index от 0–15 выбирает файл при нескольких результатах. Отсутствующий файл возвращает 404, недоступное хранилище — 502 OUTPUT_FETCH_FAILED. Требуется API-ключ; действует общий лимит 60 запросов в минуту, превышение возвращает 429 RATE_LIMIT_ERROR с retryAfter, а отсутствие ключа — 401 AUTHENTICATION_ERROR.

Авторизация: заголовок Authorization: Bearer <ключ> — API-ключ, выданный в личном кабинете (isk_live_<prefix>_<secret>).

Параметры

ПараметрГдеТипОбязательныйОписание и ограничения
indexqueryintegerнет≥ 0; ≤ 15; по умолчанию 0
idpathstringдаформат uuid

Пример вызова

curl -X GET "https://api.iskragen.ru/v1/generations/<id>/download" \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY"

Структура ответа 200

Схема не описывает JSON-тело ответа; что приходит в ответе — в описании метода выше.

Коды ошибок

  • 401 AUTHENTICATION_ERROR — ключ отсутствует, невалиден или отозван.
  • 404 — Ресурс не существует или принадлежит другому пользователю
  • 429 RATE_LIMIT_ERROR — превышен лимит запросов либо число одновременных генераций (по умолчанию 5).
  • 502 OUTPUT_FETCH_FAILED — файл результата не удалось получить из хранилища.
Генерации · IskraGen Docs — IskraGen