VidMage

VidMage is an AI video and image creation platform for creators. Turn your ideas and images into videos and fresh visuals.

Open the creator tools
Explore APIs
AI Video APIsAI Image APIsAI Audio APIsAI 3D APIsAI Face Swap APIsAI Effects APIs
Build with VidMage
QuickstartAPI keysVidMage MCPError reference
Your account
Developer consoleAbout VidMagePlans and creditsAPI billingContact support
© 2026 VidMage. All rights reserved.
Privacy PolicyTerms of ServiceReport Abuse
Skip to content
VidMage/Developers
Overview
APIs
All APIsAI Video APIsAI Image APIsAI Audio APIsAI 3D APIsAI Face Swap APIsAI Effects APIs
DocumentationVidMage MCPOpen console
Developers/AI Video Extender API for Clip Continuations

AI Video Extender API for Clip Continuations

Add video extension to your editing workflow. Submit a source clip and a prompt describing the continuation, configure duration and resolution, and retrieve the generated video for your app.

Get API keyView API docs
Abstract illustration for AI Video Extender API for Clip Continuations
PlaygroundAPIPricingGuideFAQs

AI Video Extender API Playground

Use your existing API key and subscription. Submitting a generation uses credits; uploading and preparing a request does not start a generation.

API access is available to subscribers only. Your subscription credits are shared across the website and the API.

View plans

Parameter

4 parameters

Source-video fileUrl returned by upload_files; maximum 20 seconds.

Text description of how to continue the video.

Extension duration in seconds.(Optional)

Default: 5

Output resolution.(Optional)

Default: 720p

Request code

#!/usr/bin/env bash
set -euo pipefail
# Set this once per intended task; preserve it and the body for transport retries.
: "${VIDMAGE_IDEMPOTENCY_KEY:?Set a unique key for this task}"

SUBMIT_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/video-extender/submit" \
  -H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
  -H "Idempotency-Key: ${VIDMAGE_IDEMPOTENCY_KEY}" \
  -H "Content-Type: application/json" \
  --data-raw '{
  "videoUrl": "https://vidmage.ai/assets/models/hailuo-ai-video-generator/skincare-ad.mp4",
  "prompt": "Continue the forward camera movement as the road curves toward a glowing city skyline at dusk",
  "duration": "5",
  "resolution": "720p"
}')"
TASK_ID="$(printf '%s' "$SUBMIT_RESPONSE" | jq -er '.["taskId"]')"

while true; do
  QUERY_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/video-extender/query" \
    -H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
    -H "Content-Type: application/json" \
    --data-raw "{\"taskId\":\"${TASK_ID}\"}")"
  STATUS="$(printf '%s' "$QUERY_RESPONSE" | jq -r '(.status // .data.status // "") | ascii_downcase')"
  case "$STATUS" in
    success|succeeded|completed)
      RESULT="$(printf '%s' "$QUERY_RESPONSE" | jq -r '(.result // .["videoUrl"] // .data["videoUrl"] // empty)')"
      if [ -z "$RESULT" ]; then
        printf '%s' "Result missing; preserve task $TASK_ID and query the same task again. Do not resubmit." >&2
        exit 2
      fi
      printf '%s\n' "$RESULT"
      break
      ;;
    needs_input)
      printf '%s' "Face selection required; preserve task $TASK_ID" >&2
      exit 2
      ;;
    failed|error)
      printf '%s' "$QUERY_RESPONSE" | jq -r '(.message // .error // .data.error // "Task failed")' >&2
      exit 1
      ;;
  esac
  sleep 5
done

Response data

Submit the task to see the API response here.
PlaygroundCapabilities

API documentation

Submit a request, track the task, and retrieve your result.

Required inputs
videoUrl prompt
Output
Video·videoUrl
Request setup & limitsHeaders, input options and media limits

Request headers

Authorization
Bearer YOUR_API_KEY

Keep your API key on your server.

Content-Type
application/json
Idempotency-Key
YOUR_UNIQUE_KEY

Use a new key per task. Reuse it only when retrying the same submission.

Input options & limits

Request controls follow each task's parameter rules; they do not guarantee output properties.

Video Extender

RequiredvideoUrl prompt
Media limits by mode
  • video input0–20 seconds per file.
Request controls
  • duration: 12 accepted values; see parameter rules
  • resolution: "480p", "720p", "1080p", "2k", "4k"

Input retention and output-link lifetime depend on the API contract. Confirm API-specific retention terms before making promises to your users. Upload guide ↗

Video Extender

POST /api/v1/video-extender/submit

Full API documentation ↗

videoUrl is required and prompt is required.

Required inputs

videoUrlstring
Source-video fileUrl returned by upload_files; maximum 20 seconds.
promptstring
Text description of how to continue the video.

Edit the sample inputs for your own task before submitting.

Video Extender request
# Set VIDMAGE_IDEMPOTENCY_KEY to a unique value for this task; preserve it for transport retries.
curl -X POST "https://vidmage.ai/api/v1/video-extender/submit" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: ${VIDMAGE_IDEMPOTENCY_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"videoUrl":"https://vidmage.ai/assets/models/hailuo-ai-video-generator/skincare-ad.mp4","prompt":"Continue the forward camera movement as the road curves toward a glowing city skyline at dusk","duration":"5","resolution":"720p"}'
# -> { "success": true, "taskId": "...", "creditsConsumed": ... }
Parameters and input rules4 fields
FieldTypeRequiredDefaultMeaning and limits
videoUrlstringYesNot specifiedSource-video fileUrl returned by upload_files; maximum 20 seconds. No additional field constraint listed.
promptstringYesNot specifiedText description of how to continue the video. No additional field constraint listed.
durationstringNo"5"Extension duration in seconds. Values: "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15" · Default: "5"
resolutionstringNo"720p"Output resolution. Values: "480p", "720p", "1080p", "2k", "4k" · Default: "720p"

Retrieve the result

Save taskId from the accepted submission and send it to this endpoint:

POST /api/v1/video-extender/query

Use the same Bearer API key. On completion, read the videoUrl result field.

Task states and recovery ↗
Video Extender query
curl -X POST "https://vidmage.ai/api/v1/video-extender/query" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "taskId": "TASK_ID_FROM_SUBMIT" }'
# -> { "success": true, "data": { "status": "...", "videoUrl": "https://..." } }

Pricing

See what one image, video, or generation costs in credits. Your API and website activity share the same credit balance.

API credit rates and calculated example request costs
API / workflowExample requestPrice (credits)
Video Extendervideo API5-second video: 100 creditsresolution: 720p
How this is calculated
  • 480p: 10 credits / second
  • 720p: 20 credits / second
  • 1080p: 25 credits / second
  • 2k: 30 credits / second
  • 4k: 35 credits / second

Charge = duration × the selected resolution rate.

Estimate your own request ↗
10–35 credits / secondBase rate varies by settings or workflow
Billed in credits. Shared with the website.Active subscription required. Unit rates and examples follow current API credit rules.Billing details⌄

Examples show the charge for the inputs listed above. Resolution, duration, audio, output count and reference media can change the total. Minimum charges and rounding follow the selected API.

Use the Playground to estimate your request before submitting it. Estimates do not start a generation. Subscription and credit-pack prices are listed on the plans page.

Your task’s recorded usage is the source of truth for the final charge.

View plans ↗Billing guide ↗

About AI Video Extender API

The next story beat can begin where an existing clip ends. VidMage's AI Video Extender API takes that footage and a prompt describing the following action, with duration and resolution settings for the continuation. In a short drama workflow, it helps an editor explore what follows a character's gesture or a scene ending before joining the selected footage. To explore a continuation of your clip without writing code, use VidMage's Video Extender.

AI Video Extender API capabilities

Source-based continuation
Use an existing video as the starting point for a generated continuation of the scene or action.
Written next-scene direction
Describe the next gesture, camera move, or story beat in the prompt supplied with the source clip.
Duration and resolution settings
Set the documented duration and resolution options when requesting the generated continuation for your editing workflow.

What you can build

Continuing short drama scenes

A scene stops with a character reaching for a door. Describe the next beat to explore a continuation from that clip. The editor can inspect the join and choose how the new material belongs in the episode.

Longer product reveals

If a reveal ends before the viewer has time to take in the product, request a continuation of the camera move or a pause around the item. The added footage can give an editor more room before the end card.

Extended establishing shots

Carry a landscape or location shot further with a prompt describing the ongoing camera movement. This creates more scene material to work with under narration, with the transition from the source checked as part of the edit.

How to use AI Video Extender API

  1. Get an API key

    Create a key in the Developer Console and store it on your server. Use it in the Authorization: Bearer header.

  2. Prepare and submit your inputs

    Set up your inputs in the Playground, then copy the matching API request. Send it from your server with a unique Idempotency-Key.

  3. Track the task

    Save the returned taskId and query the same operation until it completes. Keep that identifier if your app stops waiting.

  4. Retrieve the result

    Read videoUrl from the completed task. Preview the result in your app and save a copy to your own storage for later use.

Input tips
Write the next action
Focus the prompt on what should happen after the source clip. The request accepts videoUrl and prompt, without an ending image or image-reference array. Treat duration as a generation setting, not a measurement of the uploaded clip.
Inspect before joining clips
The reference does not clarify whether the result includes the source segment. Check the returned duration and transition before placing it after the original.

Input requirementsUpload local files

Task fields and results

Keep the task identifier with its original request and Idempotency-Key. Query the same capability until it completes, then read the documented result field.

Task identifier
taskId
Query route
POST /api/v1/video-extender/query
Completed result
videoUrl
Task states and response structure ↗
Errors, retries and limits

Retry transport failures with the same idempotency key only when the original submission may not have reached the server. For a confirmed task, keep querying the original task instead of submitting a duplicate.

Read error recovery guidance ↗

FAQs

Is video extension the same as slowing down a clip?

No playback-speed or frame-interpolation setting is published here. Use video-to-video for restyling footage; this endpoint generates what happens next.

Are failed or timed-out requests charged?

A client timeout is not a confirmed task failure. Confirmed failures are automatically refunded only when the refund outcome is certain. Unknown charges or refunds remain pending reconciliation.

Failure and refund handling ↗
How long should my app wait for a result?

The checked contract does not establish a fixed completion time. Choose a local wait budget for your app; it is not an API completion deadline.

Polling and wait budgets ↗
What are the rate and concurrency limits?

Request-rate limits control how often you can call the API; concurrency limits control simultaneous work. The documentation ties both to the stable API key but does not publish numeric limits for this operation. Confirm account limits before planning parallel jobs.

Rate-limit recovery ↗
Can I receive results through a webhook?

The checked request contract documents status queries and does not list a webhook or callback field for these routes. Check the current authenticated OpenAPI contract before making a callback part of your integration.

Query task results ↗Check the current contract ↗

Explore more APIs on VidMage

  • AI Video to Video API for Style Transformations↗
  • AI Video Upscaler API for 2x and 4x Requests↗
  • AI Video Background Remover API for Clips↗
  • AI Subtitle Generator API for Video Captions↗
  • AI Video Watermark Remover API for Two Inputs↗
  • Wan Video API↗
  • Vidu API↗
  • AI Head Swap API for Photos and Videos↗