Skip to documentation content
Developer Docs

REST API

Responses and errors

Find HTTP status codes, error codes, and Job statuses for every API in one place.

Success responses · HTTP responses and errors · Job statuses · Job errors · Cancellation results

The HTTP status describes the request result; status in the response body describes the Job execution. A Job can be failed or canceled even when the HTTP status is 200.

Success responses

202 Accepted means the Job was accepted, not completed. 200 OK means the lookup or cancellation request was processed. Check the Job's status or the cancellation's results[].status as well. Success responses have no common top-level code field.

HTTP responses and errors

Nordy request errors contain top-level code, message, and requestId fields. Include requestId when contacting support. The same code can have different meanings depending on the HTTP status and API.

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

This table collects the response definitions from each API reference. — means no common error code is defined for that response. 304 is not an error and has no response body. Other node info responses may use status codes and bodies returned by ComfyUI.

HTTP statuscodeMeaning / what to checkAPI
304—ETag matches; no response body.Get all ComfyUI node info
304—When conditional requests are supported and the ETag matches, no response body is returned.Get one ComfyUI node info
400INVALID_JSON, INVALID_INPUTInvalid JSON, prompt, or metadata.Create a Job
400MULTIPLE_AUTH_CREDENTIALSSend only the api-key header, without login cookies.Create a Job, List Jobs, Get Job status and results, Get all ComfyUI node info, Get one ComfyUI node info
400INVALID_INPUTlimit or cursor is invalid.List Jobs
400INVALID_INPUTid is not a 24-character hexadecimal string.Get Job status and results
400INVALID_JSON, INVALID_INPUTProvide a valid job_ids array.Cancel Jobs
400MULTIPLE_AUTH_CREDENTIALSSend the API key without login cookies.Cancel Jobs, Cancel all Jobs
400INVALID_INPUTclassName is not a valid single path segment.Get one ComfyUI node info
401AUTHENTICATION_REQUIREDMissing or invalid API key.Create a Job, List Jobs, Get Job status and results, Cancel Jobs, Cancel all Jobs, Get all ComfyUI node info, Get one ComfyUI node info
402INSUFFICIENT_CREDITNot enough credit to create the Job.Create a Job
403USER_SUSPENDED, PRO_SUBSCRIPTION_REQUIRED, INVALID_INPUTYour account is suspended, does not have an active Pro subscription, or is not permitted to use the API.Create a Job, List Jobs, Get Job status and results, Get all ComfyUI node info, Get one ComfyUI node info
403USER_SUSPENDED, PRO_SUBSCRIPTION_REQUIRED, INVALID_INPUTThe account is suspended, lacks an active Pro subscription, or cannot access the API.Cancel Jobs, Cancel all Jobs
404JOB_NOT_FOUNDMissing, another user’s, or not created through the Comfy prompt API.Get Job status and results
413REQUEST_BODY_TOO_LARGEThe JSON body exceeds the 50 MiB limit.Create a Job
413REQUEST_BODY_TOO_LARGEThe JSON body exceeds 50 MiB.Cancel Jobs
415UNSUPPORTED_MEDIA_TYPEContent-Type is not application/json.Create a Job
415UNSUPPORTED_MEDIA_TYPESend Content-Type: application/json.Cancel Jobs
429DAILY_JOB_LIMIT_EXCEEDEDCreation limit reached. Try again after it resets.Create a Job
500INTERNAL_ERRORInternal server error.Create a Job, List Jobs, Get Job status and results
500INTERNAL_ERRORAn error occurred while processing the request. Check Job status before retrying.Cancel Jobs
500INTERNAL_ERRORAn error occurred while processing the request.Cancel all Jobs, Get all ComfyUI node info, Get one ComfyUI node info
502 / 504INTERNAL_ERRORThe service could not be reached or the request timed out.Get all ComfyUI node info, Get one ComfyUI node info
Other—ComfyUI may return other status codes and response bodies.Get all ComfyUI node info, Get one ComfyUI node info

Job statuses

Used in status for create and get responses, and jobs[].status for list responses.

statusMeaningNext step
queuedWaiting or preparing to execute.Poll again according to Retry-After. Jobs cannot be canceled once execution preparation begins.
processingExecution is in progress.Poll again according to Retry-After.
succeededExecution succeeded.Download files in outputs before they expire. Once all expire, outputs: [] is returned.
failedExecution failed.Check error.code and error.message.
canceledThe Job was canceled.error.code is JOB_CANCELED.

Job errors

Returned in the Job's error.code, separately from request error codes. For list responses, check jobs[].error.code. The error field is null unless the Job is failed or canceled.

statuserror.codeMeaning / what to check
failedINVALID_INPUTCheck node inputs and model names. error.details.node_errors may contain validation results for each node.
failedINSUFFICIENT_CREDITCheck your credit balance before creating a new Job.
failedEXECUTION_TIMEOUTExecution exceeded its time limit. Check the error message.
failedWORKER_UNAVAILABLEThe Job could not be executed. Check the error message and contact support if the issue persists.
failedEXECUTION_FAILEDAn error occurred during execution. Check the error message.
canceledJOB_CANCELEDThe Job was canceled.

Cancellation results

Cancel Jobs can return different results per ID with HTTP 200. Check results[].status. Cancel all Jobs returns only canceled_count.

results[].statusMeaning
canceledCanceled by this request.
already_canceledThe Job was already canceled.
not_cancelableExecution preparation has begun or the Job has already finished.
not_foundThe Job is missing, belongs to another account, or was not created with this API.

Preserve unknown error codes too. If a create request times out or loses its response, read Retries and timeouts before submitting again.