문서 본문으로 건너뛰기
개발자 문서

REST API

응답과 오류

모든 API의 HTTP 상태 코드, 오류 코드와 Job 상태를 한곳에서 확인하세요.

성공 응답 · HTTP 응답과 오류 · Job 상태 · Job 오류 · 취소 결과

HTTP status는 요청 처리 결과이며, 응답 본문의 status는 Job 실행 상태입니다. HTTP 200이어도 Job은 failed 또는 canceled일 수 있습니다.

성공 응답

202 Accepted는 작업이 접수되었다는 뜻이며 완료를 의미하지 않습니다. 200 OK는 조회 또는 취소 요청이 처리되었다는 뜻입니다. Job의 status나 취소 결과의 results[].status를 함께 확인하세요. 성공 응답에는 공통 최상위 code 필드가 없습니다.

HTTP 응답과 오류

Nordy 요청 오류는 최상위 code, message, requestId로 반환됩니다. 문의할 때 requestId를 함께 전달하세요. 같은 code라도 HTTP status와 API에 따라 의미가 다를 수 있습니다.

JSON
{
  "statusCode": 400,
  "code": "INVALID_INPUT",
  "message": "The request is invalid.",
  "requestId": "request-id",
  "details": {
    "field": "prompt"
  }
}

아래 표는 각 API 레퍼런스의 응답 정의를 모은 것입니다. —는 공통 오류 code가 정의되지 않은 응답입니다. 304는 오류가 아니며 응답 본문이 없습니다. 노드 정보 API의 기타 응답은 ComfyUI가 반환하는 상태와 본문에 따라 달라질 수 있습니다.

HTTP statuscode의미 / 확인할 내용API
304—ETag가 일치하며 body는 없습니다.전체 ComfyUI node 정보 조회
304—조건부 요청을 지원하며 ETag가 일치하면 응답 본문 없이 반환됩니다.특정 ComfyUI node 정보 조회
400INVALID_JSON, INVALID_INPUTJSON, prompt 또는 metadata가 유효하지 않습니다.Job 생성
400MULTIPLE_AUTH_CREDENTIALS로그인 쿠키를 제외하고 api-key header만 보내세요.Job 생성, Job 목록 조회, Job 상태와 결과 조회, 전체 ComfyUI node 정보 조회, 특정 ComfyUI node 정보 조회
400INVALID_INPUTlimit 또는 cursor가 유효하지 않습니다.Job 목록 조회
400INVALID_INPUTid가 24자리 16진수 문자열 형식이 아닙니다.Job 상태와 결과 조회
400INVALID_JSON, INVALID_INPUT올바른 job_ids 배열을 전달하세요.Job 취소
400MULTIPLE_AUTH_CREDENTIALS로그인 쿠키를 제외하고 API 키만 보내세요.Job 취소, Job 전체 취소
400INVALID_INPUTclassName이 유효한 단일 path segment가 아닙니다.특정 ComfyUI node 정보 조회
401AUTHENTICATION_REQUIREDAPI key가 없거나 일치하지 않습니다.Job 생성, Job 목록 조회, Job 상태와 결과 조회, 전체 ComfyUI node 정보 조회, 특정 ComfyUI node 정보 조회
401AUTHENTICATION_REQUIREDAPI 키가 없거나 유효하지 않습니다.Job 취소, Job 전체 취소
402INSUFFICIENT_CREDITJob을 생성할 credit이 부족합니다.Job 생성
403USER_SUSPENDED, PRO_SUBSCRIPTION_REQUIRED, INVALID_INPUT계정이 정지되었거나, Pro 구독이 활성화되어 있지 않거나, API 이용이 제한된 상태입니다.Job 생성, Job 목록 조회, Job 상태와 결과 조회, 전체 ComfyUI node 정보 조회, 특정 ComfyUI node 정보 조회
403USER_SUSPENDED, PRO_SUBSCRIPTION_REQUIRED, INVALID_INPUT계정이 정지되었거나 Pro 구독이 없거나 API 이용이 제한되었습니다.Job 취소, Job 전체 취소
404JOB_NOT_FOUND존재하지 않거나 다른 사용자 소유이거나 Comfy prompt API로 생성한 Job이 아닙니다.Job 상태와 결과 조회
413REQUEST_BODY_TOO_LARGEJSON body가 최대 크기인 50 MiB를 초과했습니다.Job 생성
413REQUEST_BODY_TOO_LARGEJSON 본문이 50 MiB를 초과했습니다.Job 취소
415UNSUPPORTED_MEDIA_TYPEContent-Type이 application/json이 아닙니다.Job 생성
415UNSUPPORTED_MEDIA_TYPEContent-Type: application/json으로 요청하세요.Job 취소
429DAILY_JOB_LIMIT_EXCEEDED생성 한도에 도달했습니다. 초기화된 후 다시 시도하세요.Job 생성
500INTERNAL_ERROR서버 내부 오류입니다.Job 생성, Job 목록 조회, Job 상태와 결과 조회
500INTERNAL_ERROR요청 처리 중 오류가 발생했습니다. 작업 상태를 확인한 뒤 다시 시도하세요.Job 취소
500INTERNAL_ERROR요청 처리 중 서버 오류가 발생했습니다.Job 전체 취소, 전체 ComfyUI node 정보 조회, 특정 ComfyUI node 정보 조회
502 / 504INTERNAL_ERROR서비스에 연결하지 못했거나 응답 대기 시간이 초과되었습니다.전체 ComfyUI node 정보 조회, 특정 ComfyUI node 정보 조회
Other—ComfyUI에서 반환하는 다른 상태 코드와 응답 본문이 포함될 수 있습니다.전체 ComfyUI node 정보 조회, 특정 ComfyUI node 정보 조회

Job 상태

생성·단건 조회 응답의 status, 목록 조회의 jobs[].status에 사용됩니다.

status의미다음 단계
queued대기 중이거나 실행을 준비하고 있습니다.Retry-After를 따라 다시 조회하세요. 실행 준비가 시작되면 취소할 수 없습니다.
processing작업이 실행 중입니다.Retry-After를 따라 다시 조회하세요.
succeeded작업이 성공했습니다.outputs의 파일을 만료 전에 내려받으세요. 모든 결과가 만료되면 outputs: []입니다.
failed작업이 실패했습니다.error.code와 error.message를 확인하세요.
canceled작업이 취소되었습니다.error.code는 JOB_CANCELED입니다.

Job 오류

요청 자체의 오류 code와 별개로, Job의 error.code에 반환됩니다. 목록 조회에서는 jobs[].error.code를 확인하세요. failed·canceled 외 상태의 error는 null입니다.

statuserror.code의미 / 확인할 내용
failedINVALID_INPUT노드 입력값과 모델 이름을 확인하세요. error.details.node_errors에 노드별 유효성 검사 결과가 포함될 수 있습니다.
failedINSUFFICIENT_CREDIT크레딧 잔액을 확인한 뒤 새 작업을 만드세요.
failedEXECUTION_TIMEOUT작업 실행 시간이 초과되었습니다. 오류 메시지를 확인하세요.
failedWORKER_UNAVAILABLE작업을 실행할 수 없는 상태입니다. 오류 메시지를 확인하고 계속 발생하면 고객 지원에 문의하세요.
failedEXECUTION_FAILED작업 실행 중 오류가 발생했습니다. 오류 메시지를 확인하세요.
canceledJOB_CANCELED작업이 취소되었습니다.

취소 결과

Job 취소는 HTTP 200이어도 ID별 결과가 다를 수 있습니다. results[].status를 확인하세요. Job 전체 취소는 canceled_count만 반환합니다.

results[].status의미
canceled이번 요청으로 취소되었습니다.
already_canceled이미 취소된 작업입니다.
not_cancelable실행 준비가 시작되었거나 이미 종료된 작업입니다.
not_found작업이 없거나, 다른 계정 소유이거나, 이 API로 생성한 작업이 아닙니다.

알려지지 않은 오류 코드도 보존하세요. 생성 요청이 시간 초과되거나 응답이 끊기면 다시 제출하기 전에 재시도와 시간 초과를 확인하세요.