Dark amber editorial cover with the MODELLIX wordmark, the two-line title PixVerse Video Extend API / Integration, Pricing & Code, and a top-right spec capsule showing the extend endpoint

The short answer: PixVerse extends video through one endpoint

The PixVerse video extend API is a single asynchronous endpoint: POST /openapi/v2/video/extend/generate. You send it a video — either a video_id produced earlier by a PixVerse generation call, or a file you upload to PixVerse’s media storage — plus a prompt describing how the story should continue, and the API returns a new video_id you poll until it reaches status 1. It is the same submit–poll–retrieve loop PixVerse already uses for text-to-video and image-to-video, with one extra input step.

So the answers to the two questions this query usually starts with are: yes, PixVerse can extend video, and yes, you can do it without the web app. The endpoint and its parameters are documented in the official Extend guide and the Extend generation API reference. Everything in this guide was read from those pages and the official pricing page on August 5, 2026 — PixVerse iterates on parameters and prices quickly, so treat anything model- or price-specific as current as of that date.

What you need before you call it

The prerequisites are the same as for any PixVerse generation endpoint:

  • A valid API key. Create it in the PixVerse Platform, and send it in the API-KEY header.
  • A unique Ai-Trace-Id per request. The official docs flag reusing the same trace id across requests as the most common cause of tasks stuck in “Generating”.
  • An active subscription with API credits. The API does not run on the web app’s free trial; it bills against your Platform credit balance.
  • An input video, in one of two forms (mutually exclusive):
    • source_video_id — the video_id from a video you already generated through the PixVerse API;
    • video_media_id — an uploaded file. Upload via POST /openapi/v2/media/upload with a file or file_url form field. For the extend feature the official limits are mp4 or mov, up to 1920px, up to 50MB, up to 30 seconds (the upload documentation lists the per-feature limits table).

The two input modes matter for your pipeline design: extending your own generation output is a zero-upload call (you already have the video_id), while extending external footage means adding an upload step and storing the returned media_id (with media_type: "video").

Calling the PixVerse video extend API: parameters and code

The request goes to https://app-api.pixverse.ai/openapi/v2/video/extend/generate with API-KEY and Ai-Trace-Id headers and a JSON body. The official parameter set:

Parameter Required Notes
source_video_id / video_media_id one of the two Mutually exclusive; never send both
model Yes v3.5, v4, or v4.5 per the Extend guide; the pricing page also lists extend rates for V5, V5.5, and V5.6 (see the pricing section)
prompt Yes ≤ 2048 characters; describes how the video continues
negative_prompt Optional ≤ 2048 characters
duration Yes 5 or 8 seconds per the guide, which notes 1080p does not support 8 (the pricing page lists 8-second 1080p rates for V5/V5.5/V5.6 — the two pages diverge)
quality Yes 360p (Turbo), 540p, 720p, 1080p
motion_mode Optional normal (default) or fast; fast only allows 5-second duration and no 1080p
style Optional anime, 3d_animation, day, cyberpunk, comic
seed Optional int32, 0–2147483647
img_id Optional For image-to-video generation, per the docs (marked required for that variant)

A minimal curl call, following the official example structure:

1
2
3
4
5
6
7
8
9
10
11
12
curl --location 'https://app-api.pixverse.ai/openapi/v2/video/extend/generate' \
--header 'Ai-Trace-Id: '"$(uuidgen)" \
--header 'API-KEY: YOUR_PIXVERSE_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"source_video_id": 123456789,
"prompt": "The drone keeps flying over the canyon, camera slowly rising as the sun sets",
"quality": "720p",
"duration": 5,
"model": "v4.5",
"motion_mode": "normal"
}'

The equivalent in Python with the standard library:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import json
import uuid
import urllib.request

def extend_video(source_video_id, prompt, api_key, quality="720p", duration=5, model="v4.5"):
body = json.dumps({
"source_video_id": source_video_id,
"prompt": prompt,
"quality": quality,
"duration": duration,
"model": model,
"motion_mode": "normal",
}).encode()
req = urllib.request.Request(
"https://app-api.pixverse.ai/openapi/v2/video/extend/generate",
data=body,
headers={
"API-KEY": api_key,
"Ai-Trace-Id": str(uuid.uuid4()),
"Content-Type": "application/json",
},
)
with urllib.request.urlopen(req) as resp:
return json.load(resp) # {"ErrCode": 0, "Resp": {"video_id": ...}}

Both examples assume the video already exists as a source_video_id. For external footage, replace source_video_id with video_media_id from the upload step. The response contains the new task’s video_id — generation is asynchronous, so no video exists yet at this point.

PixVerse video extend API workflow showing the upload or source_video_id input, the extend/generate request, video_id response, status polling, and final download

Figure 1: The PixVerse video extend flow — pick an input (uploaded media or a PixVerse video_id), call extend/generate, poll status until it reaches 1, then download. Diagram generated from the official Extend documentation on August 5, 2026.

If you are new to the loop itself — key, trace id, and the general poll pattern — our PixVerse API integration guide walks through authentication and polling end to end, and the how-to-use-PixVerse tutorial covers the same submit–poll–retrieve flow with the web app side included.

Polling for the result and handling failures

Query the video status endpoint with the returned video_id until it leaves processing:

Status Meaning
5 Waiting for generation — poll at 3–5 second intervals rather than hammering the endpoint
1 Generation successful — the response contains the url of the finished video
7 Failed content moderation — adjust parameters and retry; official docs state credits for filtered videos are refunded automatically
8 Generation failed — check the official error-code list for the specific cause

The official Get Video Generation Status guide documents the response shape, and the FAQ is the first place to check for stuck tasks. The failure cases that cost people the most time:

  • Video stuck in “Generating”. The docs’ own troubleshooting points at a reused Ai-Trace-Id as the most common cause. If you batch multiple requests, generate a fresh trace id per call.
  • 400013 Invalid binding request — wrong parameter type or value. 400017 Invalid parameter — an out-of-range value, for example duration 8 at 1080p.
  • “Couldn’t find a matching source_video_id / video_media_id” — the ID does not exist or the media type is not a video resource; re-upload and retry.
  • 500044 Reached the limit for concurrent generations — your account has a concurrency cap; queue tasks instead of firing them all at once.

Status 7 is the one that surprises API users: billing happens at submission, so a moderation failure can look like a charge for nothing. Per the official docs the refund is automatic — verify it in your balance history before contacting support.

What the PixVerse video extend API costs

Extend is billed in PixVerse Platform credits, and the pricing page splits it across four per-clip model families (V5.6, V5.5, V5, and V4.5/V4/V3.5) plus the per-second V6 family — this is where most cost estimates go wrong. The per-clip no-audio rates, read from the official pricing page on August 5, 2026:

Model family Quality 5s 8s
V5.6 360p 35 70
V5.6 540p 35 70
V5.6 720p 45 90
V5.6 1080p 75 150
V5.5 360p 45 90
V5.5 540p 45 90
V5.5 720p 60 120
V5.5 1080p 120 240
V5 360p (Turbo) 45 90
V5 540p 45 90
V5 720p 60 120
V5 1080p 120 240
V4.5 / V4 / V3.5 360p (Turbo) 45 90
V4.5 / V4 / V3.5 540p 45 90
V4.5 / V4 / V3.5 720p 60 120
V4.5 / V4 / V3.5 1080p 120

Credits are per extend task (per clip), no audio. The pricing page’s audio columns add a separate surcharge that varies by family and quality — roughly +10 credits on the V5.5 rows, more on V5.6 — so quote with-audio budgets from the exact row. V5.5/V5.6 also list 10-second rows (77–172 credits), V4.5/V4/V3.5 lists a fast motion mode (5s at 90–120 credits), and no 1080p 8-second row exists for V4.5/V4/V3.5. The two official pages are not fully in sync: the Extend guide’s parameter table accepts model values v3.5/v4/v4.5 and says 1080p does not support 8-second duration, while the pricing page also lists extend rates for V5, V5.5, and V5.6 — including 8-second 1080p rows for V5/V5.5/V5.6. Use the guide for accepted request values, the pricing page for rates, and recheck both before committing budget.

  • V6 — the pricing page groups Extend with text-to-video / image-to-video at 5–23 credits per second (360p 5, 540p 7, 720p 9, 1080p 18 without audio; 7/9/12/23 with audio), and the V6 model overview lists extend durations of 1–15 seconds. So a 5-second 720p V6 extend is 45 credits — cheaper than the V4.5-family per-clip rate for the same length.

Worked example, with the assumptions stated: a 5-second 720p extend on V4.5/V4/V3.5 costs 60 credits. The pricing page’s own reference line is “$1 = 5 videos (v6, 720p, 5s, no audio, with Starter pack)” — that implies roughly 225 credits per dollar at the Starter-pack rate, which would put 60 credits around $0.27. That conversion is package- and promotion-dependent; do not treat it as a universal exchange rate. The correct calculation for your budget is: divide the price of the credit package you actually buy by its credit count, then multiply by the per-task credits in the table above. And check the balance endpoint before long batch runs.

For a full walkthrough of how the credit system and per-second rates fit together, our PixVerse pricing breakdown covers the official tables and the subscription plans side by side.

Direct API vs an aggregator route

The PixVerse video extend API is available directly, and it is also resold by aggregators — fal, useapi, kie, wavespeed, and others rank for this query with model cards for a PixVerse extend route. Before comparing any two numbers, line up the billing units: direct PixVerse bills in credits (per clip for the older model families — V5.6, V5.5, V5, and V4.5/V4/V3.5 — and per second for V6), while aggregators bill in USD per second with their own model routing. A credit price and a dollar price are not the same unit, and “the cheapest” changes with the credit package you would have bought anyway.

Modellix is an API aggregator and has a commercial interest in this comparison. We carry a PixVerse extend route, pixverse/v6-video-extend, behind our unified API; its model page showed the following per-second prices on August 5, 2026:

Quality Modellix price
360p $0.0575/sec
540p $0.0805/sec
720p $0.1035/sec
1080p $0.2070/sec

Two differences matter more than the price number. First, the integration surface: the Modellix route takes a public video URL plus a prompt and duration (1–15 seconds), instead of PixVerse’s source_video_id / upload workflow — if your footage is already behind a URL, that is one less upload-and-store step. Second, billing: USD per second is predictable without a credit package, but you give up PixVerse’s per-clip pricing on the older model family, which can be cheaper for short clips. The honest comparison is: price a representative task in both units using your actual credit package, then add the operational cost of the integration path. For the current catalog of PixVerse routes we carry, the PixVerse provider page lists everything with live prices.

Frequently Asked Questions

Can PixVerse extend video? Yes. The web app has an extend effect, and the API exposes the same capability through POST /openapi/v2/video/extend/generate. You provide an existing video (a source_video_id from a previous generation, or an uploaded video_media_id) plus a prompt, and the API returns a continuation.

How long can a video be on PixVerse? For the extend input, the official limit is 30 seconds per uploaded video. Each extend call adds a fixed chunk — 5 or 8 seconds on the V4.5/V4/V3.5 family (1080p caps at 5), or 1–15 seconds on V6. The docs describe chaining calls to keep a story going (“infinitely expand”), but each call re-enters the queue and bills separately.

How do I extend my AI video? Call the extend endpoint with the original video’s video_id as source_video_id, a continuation prompt, duration, quality, and model; poll the returned video_id until status 1; download the result from the url field. The code in the “Parameters and code” section above is copy-paste ready.

Is there a free way to use the PixVerse video extend API? Not on the API side — it requires an API key and an active subscription with credits. The web app’s free trial applies to the consumer app, not the API. The one automatic refund is for moderation failures (status 7), per the official docs.

Why is my extend request stuck in “Generating”? The official troubleshooting names the most common cause: reusing the same Ai-Trace-Id across requests. Generate a fresh trace id per call. Otherwise check the concurrency cap (500044), the account balance, and the request parameters in that order.


All PixVerse facts, parameter tables, and credit prices above were read from the official Extend guide, Extend API reference, upload documentation, pricing page, and V6 model overview on August 5, 2026; the price table for the Modellix route was read from the v6-video-extend model page the same day. Pricing and parameters change frequently — validate against the live pages before committing budget. Access image and video models from 12 providers, including PixVerse, through a single API key at modellix.ai.

Cover image: illustrative Modellix artwork; it is not a PixVerse product screenshot or source evidence.