Errors

The VIDIO API uses a consistent error object format. Use this page to understand common error types, HTTP status codes, and example messages returned by the API.

API access is currently available for Studio plan and above.

Overview

When a request fails, the VIDIO API returns an error object with a type and message. Some errors may also include additional fields to help explain the failure.

Error format

json
{ "error": { "type": "invalid_request_error", "message": "Job not found" } }

Error reference

StatusTypeMessageDescription
400invalid_request_errorMissing required query params in upload URL requestReturned when required query parameters are missing from the upload URL request.
400invalid_request_errorMissing job_idReturned when the render request does not include a job ID.
400invalid_request_errorNo outputs available for this jobReturned when the job does not have any renderable outputs.
400invalid_request_errorinput_keys must be a non-empty arrayReturned when `input_keys` is missing or empty.
400invalid_request_errorinput_keys must contain at least one valid input keyReturned when all provided input keys are blank or invalid after normalization.
400input_duration_requirement_errorTotal input duration must be greater than 2 secondsReturned when the combined duration of all input media is 2 seconds or less.
400input_duration_requirement_errorTotal input duration must be less than 6 hoursReturned when the combined duration of all input media is 6 hours or more.
400input_image_count_requirement_errorNumber of input images must be no more than 4000Returned when the number of input images exceeds the maximum allowed limit of 4000.
400input_video_count_requirement_errorNumber of input videos must be no more than 400Returned when the number of input videos exceeds the maximum allowed limit of 400.
400invalid_request_errorInvalid video_category. Allowed values: podcast, ball-sports, non-ball-sports, beauty-product-demo, wedding, travel, othersReturned when `video_category` is not supported.
400invalid_request_errorInvalid aspect_ratio. Allowed values: square, portrait, landscapeReturned when `aspect_ratio` is not supported.
400invalid_request_erroroutput_length must be a positive numberReturned when `output_length` is missing, zero, or negative.
400invalid_request_errorCould not determine positive input duration from input_keys metadataReturned when the API cannot determine a valid duration for the uploaded inputs.
400invalid_request_errormusic_volume must be a number between 0 and 100Returned when `music_volume` is provided but is not a valid number between 0 and 100.
400invalid_request_errororiginal_audio_volume must be a number between 0 and 100Returned when `original_audio_volume` is provided but is not a valid number between 0 and 100.
400invalid_request_errorInvalid music_category. Allowed values: corporate, romantic, sports, kids_and_comedy, ambient_and_nature, horror_and_suspense, documentary, trending_vlogsReturned when `music_category` is provided but does not match one of the supported music categories.
401authentication_errorMissing API keyReturned when the `x-api-key` header is not provided.
401authentication_errorInvalid API keyReturned when the provided API key does not match an active key.
402insufficient_balanceYou do not have enough credits to process this jobReturned when the account does not have enough credits for processing or rendering.
403permission_errorYou do not have permission to access this jobReturned when the authenticated user does not own the requested job.
403permission_errorYou do not have permission to render this jobReturned when the authenticated user does not own the job being rendered.
404invalid_request_errorJob not foundReturned when the requested job does not exist.
404invalid_request_errorUser not foundReturned when the authenticated user record cannot be found.
429rate_limit_errorToo many requestsReturned when the client exceeds the allowed request rate for the endpoint. The current limit is 60 requests per minute. Rate limiting is primarily applied per API key using the x-api-key header, and falls back to the client IP address when an API key is not present. Clients that hit this limit should reduce request frequency and retry after the rate limit window resets.
429rate_limit_errorYou already have 10 running or queued jobs, which is the maximum allowed. Please wait for some jobs to finish before submitting another one.Returned when the user already has the maximum allowed number of in-progress jobs across both running jobs on servers and pending jobs in the queue. The current limit is 10 total running or queued jobs per user. Ownership is determined by matching each job_id on busy servers and pending queue entries back to the job's user_email. Clients that hit this limit should wait for one or more existing jobs to complete before creating or rendering another job.
500api_errorAuthentication errorReturned when API key authentication fails unexpectedly on the server.
500api_errorInternal server errorReturned for unexpected server-side failures in status, render, or highlight reel endpoints.
500server_errorFailed to generate upload URLReturned when the server fails to generate a signed upload URL.