Перейти к основному содержанию
GET
/
v1
/
midjourney
/
{task_id}
curl --request GET \
  --url https://api.apimart.ai/v1/midjourney/task_01KV52C0TEJSYZMCG0NCS4YWKK \
  --header 'Authorization: Bearer <token>'
{
  "id": "task_01KV52C0TEJSYZMCG0NCS4YWKK",
  "status": "SUCCESS",
  "action": "IMAGINE",
  "progress": "100%",
  "grid_image_url": "https://cdn.apimart.ai/mj_xxxx.png",
  "image_urls": [
    "https://cdn.apimart.ai/mj_xxxx_0.png",
    "https://cdn.apimart.ai/mj_xxxx_1.png",
    "https://cdn.apimart.ai/mj_xxxx_2.png",
    "https://cdn.apimart.ai/mj_xxxx_3.png"
  ],
  "buttons": [
    {"customId": "MJ::JOB::upsample::1::abc123def456", "label": "U1"},
    {"customId": "MJ::JOB::variation::1::abc123def456", "label": "V1"}
  ],
  "prompt": "a beautiful sunset over mountains"
}
curl --request GET \
  --url https://api.apimart.ai/v1/midjourney/task_01KV52C0TEJSYZMCG0NCS4YWKK \
  --header 'Authorization: Bearer <token>'
{
  "id": "task_01KV52C0TEJSYZMCG0NCS4YWKK",
  "status": "SUCCESS",
  "action": "IMAGINE",
  "progress": "100%",
  "grid_image_url": "https://cdn.apimart.ai/mj_xxxx.png",
  "image_urls": [
    "https://cdn.apimart.ai/mj_xxxx_0.png",
    "https://cdn.apimart.ai/mj_xxxx_1.png",
    "https://cdn.apimart.ai/mj_xxxx_2.png",
    "https://cdn.apimart.ai/mj_xxxx_3.png"
  ],
  "buttons": [
    {"customId": "MJ::JOB::upsample::1::abc123def456", "label": "U1"},
    {"customId": "MJ::JOB::variation::1::abc123def456", "label": "V1"}
  ],
  "prompt": "a beautiful sunset over mountains"
}
Рекомендуемый endpoint для polling:
GET /v1/tasks/{task_id}
Единые статусы — pending / processing / completed / failed; успешные результаты — в result.images[].url. Используйте MJ-стиль endpoint, когда нужен buttons[].customId для последующих действий:
GET /v1/midjourney/{task_id}

Поток статусов

SUBMITTED → IN_PROGRESS → SUCCESS
                        → FAILURE
                        → MODAL (см. Inpaint)

Пример response

{
  "id": "task_01JWXXXX",
  "status": "SUCCESS",
  "action": "IMAGINE",
  "progress": "100%",
  "grid_image_url": "https://cdn.apimart.ai/mj_xxxx.png",
  "image_urls": [
    "https://cdn.apimart.ai/mj_xxxx_0.png",
    "https://cdn.apimart.ai/mj_xxxx_1.png",
    "https://cdn.apimart.ai/mj_xxxx_2.png",
    "https://cdn.apimart.ai/mj_xxxx_3.png"
  ],
  "buttons": [
    {"customId": "MJ::JOB::upsample::1::abc123def456", "label": "U1"},
    {"customId": "MJ::JOB::variation::1::abc123def456", "label": "V1"}
  ],
  "prompt": "a beautiful sunset over mountains"
}
grid_image_url — это сетка 2x2; image_urls — четыре URL обрезанных отдельных изображений.
Различия в полях
  • /v1/tasks/{task_id} возвращает единые статусы pending / processing / completed / failed.
  • /v1/midjourney/{task_id} возвращает поля в стиле MJ: grid_image_url, image_urls, buttons.
О buttons: Для большинства последующих действий передайте index, direction или zoom_ratio — сервис подберёт нужный customId. Если авто-сопоставление не сработало, передайте custom_id напрямую.

Обзор статусов

statusЗначениеТерминальный
NOT_STARTСтрока создана, система ещё не подтвердила (временный)Нет
SUBMITTEDПринято системой, в очередиНет
IN_PROGRESSОбрабатывается системойНет
MODALОжидание параметров /modal (см. Inpaint)Нет
SUCCESSГотово
FAILUREСбой → авто-возврат (quota → 0, fail_reason содержит причину)

Замечания по запросу

  • Endpoint запроса не тарифицируется отдельно, но держите частоту разумной (рекомендуется опрос 3–5s).
  • Обычный пользователь может запрашивать только свои задачи; чужие возвращают 403.
  • Задачи хранятся 3 дня по умолчанию; после этого запросы возвращают 404, но сгенерированные URL изображений / видео остаются доступны.

Продвинутое: использование custom_id напрямую

Прочитав buttons[].customId, вы можете передать его в поле custom_id endpoints последующих действий, минуя авто-сопоставление:
{
  "task_id": "task_01JWXXXX",
  "custom_id": "MJ::JOB::upsample::1::abc123def456"
}