Skip to content

Errors

An error answers with a JSON body {"error": "...", "code": "..."}. Nothing is created or charged when a request is refused.

Status Code When
400 INVALID_REQUEST A field is missing or invalid; error names it.
400 AUDIO_NOT_READY The audio is not ready yet (a narration that is not completed), or is not audio.
400 AUDIO_TOO_LONG The audio is longer than 30 minutes. Make one video per part.
400 STYLE_NOT_FOUND No style has this slug or id.
401 The API key is missing, wrong, disabled or expired.
402 INSUFFICIENT_CREDITS The workspace lacks the credits for the video’s price, or a new aspect ratio’s.
403 API_PLAN_REQUIRED The workspace is not on the Creator or Pro plan.
403 QUALITY_NOT_IN_PLAN The requested quality is above the plan’s.
404 AUDIO_NOT_FOUND No narration or asset with this id in this workspace.
404 VIDEO_NOT_FOUND No such video in this workspace.
409 IDEMPOTENCY_KEY_RETRY An earlier request with this Idempotency-Key did not start a video (it was refused). Send the request again.
404 AUDIO_TRACK_NOT_FOUND No audio track with this id on the video.
409 VIDEO_NOT_READY A change (PATCH /v1/videos/{id} or POST /v1/videos/{id}/generate) to a video that is still being made.
409 VIDEO_FAILED A change to a video that failed. Retry it first.
409 VIDEO_BUSY The video is already changing (a new audio track or aspect ratio).
409 MUSIC_LOCKED The video is cut to its music, or the new audio is a soundtrack asset. Make a new video.
429 Too many requests; wait as Retry-After says.

A video that fails while it runs answers GET with "status": "failed", error saying why, errorCode naming it and retryable. See Failures and retries for every code and the retry’s own errors.