워크플로우 실행 읽기

실행을 종료 상태까지 추적하고 해당 자산을 수집합니다.

GET {base_url}/workflow-runs/{run_id}
GET {base_url}/workflow-runs/{run_id}?wait=45

runs:read 권한이 필요합니다.

wait는 응답을 최대 그만큼의 초 동안 열어 두고, 상태가 바뀌는 즉시 반환합니다 — 폴링보다 저렴하고, 완료 소식을 더 빨리 알 수 있습니다. 상한은 45초이며, 없으면 호출은 즉시 반환됩니다.

응답

{
  "run": {
    "id": "0192f3d0-6c31-7a52-b4e8-3f9d1a7c5e20",
    "status": "succeeded",
    "created_at": "2026-09-22T04:10:00Z",
    "completed_at": "2026-09-22T04:17:12Z",
    "credits_used": 1792,
    "chat_id": "0192f3c6-2e75-7b14-9a63-7c4e2d8f1b09",
    "assets": [
      {
        "id": "0192f3e1-8b52-7c03-a41d-6e2f9b7c1d44",
        "kind": "image",
        "mime_type": "image/png",
        "width": 1920,
        "height": 1080,
        "size_bytes": 2841233,
        "url": "https://storage.googleapis.com/…",
        "url_expires_at": "2026-09-22T05:17:12Z"
      }
    ],
    "error": null,
    "poll_after_seconds": 60
  }
}

상태

status의미다시 폴링할까요?
queued수락됨, 아직 시작 안 됨예
running워크플로가 실행 중입니다예
succeeded완료됨; assets에 출력이 담김아니요
failed중지됨; error 가 그 이유를 설명합니다아니요
needs_input워크플로가 질문을 했고 답변을 기다리는 중입니다아래 참조
expiredexpires_at 전에 완료되지 않음아니요

알아보지 못한 상태는 모두 비종료 상태로 간주하고 계속 폴링하세요 — 새 상태는 버전 변경 없이도 추가될 수 있습니다.

credits_used는 환불을 제외하고 실행이 지금까지 사용한 금액입니다 — 첫 청구 시점부터 존재하며, 완료된 뒤에만 나타나는 것이 아닙니다. 특정 워크플로에만 제한된 키는 다른 워크플로의 실행을 찾을 수 없음으로 읽습니다.

needs_input

일부 워크플로는 실행 중간에 질문을 합니다. 실행은 Morphic Studio의 누군가가 답변할 때까지 기다립니다; 답변하려면 chat_id를 여세요. 답변이 들어오면 실행은 자동으로 재개되며, expires_at 전에 아무도 답하지 않으면 만료됩니다.

에셋

assets에는 워크플로가 출력으로 선언한 자산만 담깁니다 — 단계들이 생성한 중간 파일 전체가 아닙니다. 여기에 들어오는 내용은 작성자가 Studio에서 내리는 결정입니다.

자산 필드의미
idMorphic에서 자산의 안정적인 ID; 저장해도 안전
kindimage, video, audio 또는 document
width, height픽셀, image 및 video에 해당
duration_secondsvideo 및 audio에 해당
url서명이 포함된, 짧게 유효한 다운로드 링크
url_expires_at해당 링크가 작동을 멈추는 시점

url은 만료됩니다. 받은 바이트를 자신의 저장소로 다운로드하세요; 나중에 필요하면 실행을 다시 읽어 새 링크를 받으세요. url을 영구적인 것처럼 저장하지 마세요.

assets 배열이 비어 있는 succeeded 실행은 워크플로가 최종 출력을 선언하지 않는다는 뜻입니다. 이는 워크플로 작성상의 공백이지 API 실패가 아닙니다 — Studio에서 작성자에게 어떤 단계의 출력이 산출물인지 표시해 달라고 요청하세요.

이 페이지의 내용