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.