🔥 Launch sale: 30% off Pro
🔥 Launch sale: Pro for $279

DocsVidNext API

Errors

The error format and every error code — what it means and what to do.

Every error has the same shape:

{ "error": { "type": "invalid_request_error", "code": "unknown_theme_mode", "message": "…", "param": "theme.mode", "request_id": "req_…" } }

Branch on code — it's stable. message is for people and may change; param names the field at fault. Every response carries a Request-Id header: include it when you write to support. New codes may be added.

Requests

HTTPcodeWhat to do
400invalid_request, invalid_jsonFix the field named in param.
400unsupported_language, duration_out_of_range, theme_format, unknown_theme, unknown_theme_mode, level_not_supported, caption_style_not_allowed, thumbnail_style_not_usable, music_not_found, channel_not_usable, tts_language_unsupported, voice_language_mismatchPick a value from your lists — see Choose settings.
400member_pays_own_creditsThat member pays with their own credits; a team key can't make videos for them.
404preset_not_found, member_not_found, video_not_found, video_deletedCheck the ID, name or email.
409preset_ambiguousTwo presets share the name — send the ID (the matching IDs are in details).
409idempotency_key_reusedThe same Idempotency-Key with a different body — use a new key.
409video_not_cancelable, video_not_finished, video_not_readyThe video isn't in the right state yet.
422script_not_narrationYour script reads like instructions — move them to prompt, or send "script_check": "off".
422prompt_blocked, script_too_longChange the prompt, or shorten the script.

Access and account

HTTPcodeWhat to do
401missing_api_key, invalid_api_keySend a valid key in Authorization: Bearer.
402insufficient_creditsTop up — details has needed and have.
402plan_required, team_limit_reachedA plan is needed, or the team member's monthly limit is reached.
403insufficient_scopeThe key lacks the permission — edit it in Settings → VidNext API.
403api_access_disabled, account_suspended, account_limitedThe API isn't on for this account (it comes with the Studio and Enterprise plans), or the account is limited — write to support.
403theme_not_available, voice_not_usable, preset_not_usable, feature_not_availableNot available to this account (or not shared with this member).
403storage_fullDelete finished videos, or turn on auto-delete for the key.

Limits and outages

HTTPcodeWhat to do
429rate_limitedWait for the Retry-After header's seconds.
429daily_limit_reached, key_daily_limit_reachedThe day's API videos are used up; the count resets at 00:00 UTC (Retry-After).
503try_againA check couldn't run just now — retry with the same Idempotency-Key.
503secrets_not_configuredWebhooks and callback_url can't be signed just now — try again later, or check the video's status instead.
500internal_errorRetry with the same Idempotency-Key; if it repeats, write to support with the Request-Id.

A video that fails after it started reports its reason in the video's error (and in video.failed), not as an HTTP error.