Skip to main content

Documentation Index

Fetch the complete documentation index at: https://apixo.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Veo 3.1 Extend continues an existing veo-3-1 video task with a new prompt. Use this page when you already have a completed Veo 3.1 taskId from APIXO and want to branch or lengthen the scene without starting from a fresh source prompt.
CapabilityValue
Model IDveo-3-1-extend
ModeVideo-to-video continuation
Source taskExisting APIXO veo-3-1 taskId
Extend modesfast, quality
Prompt length1-10000 characters
OutputVideo URL in resultJson.resultUrls

Endpoint and authentication

Base URL:
https://api.apixo.ai/api/v1
MethodEndpointPurpose
POST/generateTask/veo-3-1-extendSubmit an extend task
GET/statusTask/veo-3-1-extend?taskId={taskId}Poll task status and retrieve results
All requests require your APIXO API key:
Authorization: Bearer YOUR_API_KEY
Submit requests also require:
Content-Type: application/json

Copy-paste async quickstart

This minimal request extends a previous veo-3-1 task and returns a new extend taskId.
curl -X POST "https://api.apixo.ai/api/v1/generateTask/veo-3-1-extend" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "request_type": "async",
    "input": {
      "taskId": "task_id_from_previous_veo_3_1_generation",
      "mode": "fast",
      "prompt": "continue this scene with a smooth camera move and richer visual rhythm"
    }
  }'
Successful response:
{
  "code": 200,
  "message": "success",
  "data": {
    "taskId": "extend_task_12345678"
  }
}
Save this new taskId; use it with the status endpoint to retrieve the extended video.

Poll for result

curl -X GET "https://api.apixo.ai/api/v1/statusTask/veo-3-1-extend?taskId=extend_task_12345678" \
  -H "Authorization: Bearer YOUR_API_KEY"
Processing response:
{
  "code": 200,
  "message": "success",
  "data": {
    "taskId": "extend_task_12345678",
    "state": "processing",
    "createTime": 1767965610929
  }
}
Success response:
{
  "code": 200,
  "message": "success",
  "data": {
    "taskId": "extend_task_12345678",
    "state": "success",
    "resultJson": "{\"resultUrls\":[\"https://file.apixo.ai/xxx.mp4\"]}",
    "createTime": 1767965610929,
    "completeTime": 1767965730929,
    "costTime": 120000
  }
}
Failed response:
{
  "code": 200,
  "message": "success",
  "data": {
    "taskId": "extend_task_12345678",
    "state": "failed",
    "failCode": "CONTENT_VIOLATION",
    "failMsg": "Content does not meet safety guidelines",
    "createTime": 1767965610929,
    "completeTime": 1767965620132
  }
}
Parse resultJson after state becomes success:
const payload = JSON.parse(data.resultJson);
const videoUrls = payload.resultUrls;

Request body

Fast extend

{
  "request_type": "async",
  "input": {
    "taskId": "task_id_from_previous_veo_3_1_generation",
    "mode": "fast",
    "prompt": "continue the action into a tense chase through narrow streets"
  }
}

Quality extend

{
  "request_type": "async",
  "input": {
    "taskId": "task_id_from_previous_veo_3_1_generation",
    "mode": "quality",
    "prompt": "extend this scene into a dramatic sunset over the city skyline",
    "watermark": "BrandName",
    "seed": 1234
  }
}

Parameters

request_type
string
default:"async"
required
Result delivery mode. Use async for polling with statusTask, or callback for webhook delivery.
callback_url
string
Required when request_type is callback. Must be a public HTTPS URL that can receive the final task payload. See Webhooks.
input
object
required
Veo 3.1 Extend input parameters.
Use the data.taskId returned by /generateTask/veo-3-1. External task IDs cannot be used directly.

Response format

Submit task response

POST /generateTask/veo-3-1-extend returns a new extend task ID when the task is accepted:
code
integer
API status code. 200 means the task was accepted.
message
string
Human-readable status message.
data.taskId
string
Unique extend task identifier used with the status endpoint.

Status response fields

taskId
string
Unique extend task identifier.
state
string
Current task state: pending, processing, success, or failed.
resultJson
string
JSON string containing the extended video URLs. Present when state is success.
failCode
string
Machine-readable failure code. Present when state is failed.
failMsg
string
Human-readable failure message. Present when state is failed.
createTime
integer
Task creation timestamp in Unix milliseconds.
completeTime
integer
Task completion timestamp in Unix milliseconds. Present after completion.
costTime
integer
Processing duration in milliseconds. Present after completion.

Webhook callback mode

Use callback mode when your backend should receive the final result automatically instead of polling.
curl -X POST "https://api.apixo.ai/api/v1/generateTask/veo-3-1-extend" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "request_type": "callback",
    "callback_url": "https://your-server.com/webhooks/apixo",
    "input": {
      "taskId": "task_id_from_previous_veo_3_1_generation",
      "mode": "quality",
      "prompt": "continue the shot with calmer pacing and a wide establishing view",
      "seed": 1234
    }
  }'
See Webhooks for delivery requirements and retry behavior.

Billing

Veo 3.1 Extend is billed per extended video task.
Billing unitStarting APIXO price
Extended video$0.20 / video
For current route and market comparison pricing, see Pricing.

Latency and polling

Veo 3.1 Extend is an asynchronous video workflow. Actual latency may vary by extend mode, prompt complexity, upstream queue load, and result storage time.
WorkflowRecommended first pollPoll interval
fast30s after task creation10s
quality60s after task creation10s
For high-concurrency production workloads, use callback mode to avoid frequent polling.
Rate limits and concurrency can vary by account, API key, and route. If you receive 429, slow down requests and retry with backoff. For account-level details, see System APIs.

Errors and troubleshooting

HTTP errors

CodeMeaningWhat to do
400Invalid request body, missing required parameter, unsupported mode, or unusable source task IDFix the request before retrying
401Missing or invalid API keyCheck the Authorization header
402Insufficient balance or quotaAdd balance or switch account/key
403Key or route cannot access the modelCheck permissions and route strategy
429Rate limit or concurrency limit reachedRetry with exponential backoff
500Server errorRetry with backoff
502Upstream service errorRetry with backoff
504Upstream timeoutRetry or use callback mode for long-running jobs

Task failure codes

Fail codeMeaningWhat to do
TASKID_ERRORThe source task ID was not found, expired, or does not belong to veo-3-1Use a valid data.taskId from a previous veo-3-1 task
CONTENT_VIOLATIONThe continuation prompt failed safety checksChange the prompt
INVALID_PARAMETERA model parameter is unsupported or malformedCheck taskId, mode, prompt, watermark, and seed
INSUFFICIENT_BALANCEThe account does not have enough balance for the taskAdd balance before retrying
UPSTREAM_ERRORUpstream-side failureRetry with backoff or try another route
TIMEOUTGeneration did not finish in timeRetry, reduce prompt complexity, or use callback mode
See Error Codes for the full error reference.