Get one task by video_id, or up to 20 at once with video_ids (comma-separated). Status is queued, creating, created, or failed; poll every 5-10 seconds. Failed tasks carry an error object and cost_credit=0 (credits auto-refunded).
Beta: available to allowlisted API keys; standard per-key rate limits apply.
Headers
X-API-KeystringrequiredYour VisionStory API key (sk-vs-...), kept server-side. Create or manage keys in API keys (Pro plan and up).
Query parameters
video_idstring | nullId of a single task to fetch, as returned by POST /api/v1/ai_video. Provide either video_id or video_ids.
video_idsstring | nullComma-separated task ids for a batch fetch (up to 20), e.g. 101,102,103. Provide either video_ids or video_id.
Responses
200Successful Response
application/json
dataGetAiVideoResponse | GetAiVideosBatchResponse | nullrequirednullableThe endpoint payload. Its shape is specific to each endpoint (see that endpoint's response schema); null for operations that return no body, such as delete.
aspect_ratiostringOutput aspect ratio of the generated video (e.g. 16:9, 9:16); empty until known.
cost_creditintegerCredits charged for this task; 0 when it failed (the charge is auto-refunded).
cover_urlstring | nullnullableURL of the video's cover/thumbnail image when available.
created_atintegerUnix timestamp (seconds) when the task was created.
duration_secnumberLength of the generated video in seconds; 0 until known.
errorAiVideoErrorDto | nullnullableFailure detail; present only when status is failed.
codeintegerrequiredNumeric code identifying why generation failed.
messagestringrequiredHuman-readable explanation of the failure.
model_idstringrequiredModel used to generate this video; see GET /api/v1/ai_video/models.
resolutionstringOutput resolution of the generated video (e.g. 720p, 1080p); empty until known.
statusstringrequiredCurrent task status: queued (waiting), creating (rendering), created (ready), or failed.
video_idstringrequiredUnique identifier of the video task.
video_urlstring | nullnullableDownload URL of the generated video; present once status is created.
messagestringHuman-readable status message; "success" on a successful call.
server_timestring · date-timerequiredServer-side timestamp when the response was produced, in ISO 8601 format (UTC).
defaultError response. All failures share one envelope: an error object with a numeric code, a human-readable message, an optional details string, and an optional hint giving an actionable next step (useful for AI agents).
application/json
errorErrorDetailrequiredcodeintegerrequiredMachine-readable error code. Mirrors the HTTP status for transport-level failures (e.g. 401, 404, 422, 500) and may carry a business-specific code otherwise.
detailsstring | nullnullableOptional structured detail about the failure, e.g. a JSON string of per-field validation errors on a 422. Absent when there is nothing extra to report.
hintstring | nullnullableActionable next step for resolving the error, written for both humans and AI agents (e.g. how to fix the request, or where to obtain an API key). May be absent.
messagestringrequiredHuman-readable explanation of what went wrong. Safe to log or surface to end users; not localized.