메인 콘텐츠로 건너뛰기
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"
}
일반 폴링에는 통합 작업 API를 권장합니다.
GET /v1/tasks/{task_id}
통합 작업 상태는 pending / processing / completed / failed입니다. 성공 결과는 result.images[].url에 반환됩니다. 후속 작업용 buttons[].customId가 필요하면 MJ 형식 조회를 사용하세요.
GET /v1/midjourney/{task_id}

상태 흐름

SUBMITTED → IN_PROGRESS → SUCCESS
                        → FAILURE
                        → MODAL (추가 파라미터 필요, 「인페인트」 절 참조)

응답 예

{
  "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는 잘라낸 4장의 단일 이미지 URL입니다.
필드 차이 안내
  • /v1/tasks/{task_id}는 통합 pending / processing / completed / failed 상태를 반환합니다.
  • /v1/midjourney/{task_id}grid_image_url, image_urls, buttons 같은 MJ 형식 필드를 반환합니다.
buttons 정보: 대부분의 후속 작업은 index, direction, zoom_ratio로 해당 customId를 자동 매핑합니다. 자동 매핑이 실패하면 custom_id를 직접 전달하세요.

상태 개요

status의미종료
NOT_START행 생성됨, 시스템 미확인(일시적)아니오
SUBMITTED시스템이 수락, 대기 중아니오
IN_PROGRESS시스템 처리 중아니오
MODAL/modal 파라미터 대기(Inpaint 참조)아니오
SUCCESS완료
FAILURE실패 → 자동 환불(quota → 0, fail_reason에 원인)

조회 참고

  • 조회 엔드포인트는 별도로 과금되지 않습니다만, 빈도는 적절히(3~5s 폴링 권장).
  • 일반 사용자는 자신의 작업만 조회 가능하며, 타인 작업 조회 시 403을 반환합니다.
  • 작업은 기본 3일 보관되며 이후 조회는 404를 반환하지만, 생성된 이미지 / 동영상 URL은 계속 접근 가능합니다.

고급: custom_id 직접 전달

buttons[].customId를 읽은 뒤 후속 작업 엔드포인트의 custom_id 필드에 직접 전달하면 자동 매칭을 건너뜁니다:
{
  "task_id": "task_01JWXXXX",
  "custom_id": "MJ::JOB::upsample::1::abc123def456"
}