/APIXO Docs

Veo 3.1

High-quality video generation with text-to-video, first/last frame, and reference image modes

Endpoints

MethodEndpointDescription
POST/api/v1/generateTask/veo-3-1Create generation task
GET/api/v1/statusTask/veo-3-1Query task status

Authentication

All requests require an API Key in the header:

Authorization: Bearer YOUR_API_KEY

Request Body

{
  "request_type": "async",
  "callback_url": "https://...",
  "provider": "auto",
  "input": {
    "mode": "quality",
    "prompt": "...",
    "generationType": "TEXT_2_VIDEO",
    "aspect_ratio": "16:9",
    "image_urls": ["..."],
    "watermark": "",
    "seed": 1234
  }
}

Parameters

Parameter
Required
Default
Description
request_typestring
async
async (polling) or callback (webhook)
callback_urlstring
Callback URL, required when request_type=callback
providerstring
auto
Routing strategy: auto, value, or official
inputobject
Model input parameters

Generation Types:

  • TEXT_2_VIDEO — Pure text-to-video
  • FIRST_AND_LAST_FRAMES_2_VIDEO — First/last frame to video, requires image_urls (max 2)
  • REFERENCE_2_VIDEO — Reference image to video, requires fast mode, image_urls (max 3), aspect_ratio must be 16:9

Mode Options:

  • quality — High quality mode
  • fast — Fast generation mode

Example

Text-to-Video (TEXT_2_VIDEO)

curl -X POST "https://api.apixo.ai/api/v1/generateTask/veo-3-1" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "request_type": "async",
    "input": {
      "mode": "quality",
      "prompt": "a cinematic flyover of a futuristic city at sunrise",
      "generationType": "TEXT_2_VIDEO",
      "aspect_ratio": "16:9"
    }
  }'

First/Last Frame to Video (FIRST_AND_LAST_FRAMES_2_VIDEO)

curl -X POST "https://api.apixo.ai/api/v1/generateTask/veo-3-1" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "request_type": "callback",
    "callback_url": "https://your-server.com/callback",
    "input": {
      "mode": "quality",
      "prompt": "a calm ocean turning into a storm",
      "generationType": "FIRST_AND_LAST_FRAMES_2_VIDEO",
      "image_urls": [
        "https://example.com/frame_start.jpg",
        "https://example.com/frame_end.jpg"
      ],
      "aspect_ratio": "9:16"
    }
  }'

Reference Image to Video (REFERENCE_2_VIDEO)

curl -X POST "https://api.apixo.ai/api/v1/generateTask/veo-3-1" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "request_type": "async",
    "input": {
      "mode": "fast",
      "prompt": "turn this sequence into a dynamic action shot",
      "generationType": "REFERENCE_2_VIDEO",
      "image_urls": [
        "https://example.com/ref1.jpg",
        "https://example.com/ref2.jpg"
      ],
      "aspect_ratio": "16:9"
    }
  }'

Response

POST /api/v1/generateTask/veo-3-1

Returns taskId on success for subsequent status queries.

Success:

{
  "code": 200,
  "message": "success",
  "data": {
    "taskId": "task_12345678"
  }
}

Error:

{
  "code": 400,
  "message": "Insufficient credits",
  "data": null
}

GET /api/v1/statusTask/veo-3-1

Query task execution status and results via taskId.

curl -X GET "https://api.apixo.ai/api/v1/statusTask/veo-3-1?taskId=task_12345678" \
  -H "Authorization: Bearer YOUR_API_KEY"

Success:

{
  "code": 200,
  "message": "success",
  "data": {
    "taskId": "task_12345678",
    "state": "success",
    "resultJson": "{\"resultUrls\":[\"https://r2.apixo.ai/video.mp4\"]}",
    "createTime": 1767965610929,
    "completeTime": 1767965730929,
    "costTime": 120000
  }
}

Failed:

{
  "code": 200,
  "message": "success",
  "data": {
    "taskId": "task_12345678",
    "state": "failed",
    "failCode": "CONTENT_VIOLATION",
    "failMsg": "Content does not meet safety guidelines"
  }
}

Status Response Fields

FieldTypeDescription
taskIdstringUnique task identifier
statestringpending processing success failed
resultJsonstringJSON containing resultUrls array (on success)
failCodestringError code (on failure)
failMsgstringError message (on failure)
createTimeintegerTask creation timestamp (ms)
completeTimeintegerTask completion timestamp (ms)
costTimeintegerProcessing duration (ms)

Error Codes

CodeDescription
400Invalid parameters or request error
401Invalid or missing API Key
429Rate limit exceeded
Fail CodeDescription
CONTENT_VIOLATIONContent violates safety guidelines
INVALID_IMAGE_URLCannot access provided image URL

Rate Limits

LimitValue
Requests10000 / minute
Concurrent tasks1000

Exceeding limits returns 429 error. Wait and retry.


Tips

  • Generation time: Average ~2 minutes. Submit task, wait 90 seconds, then poll every 5 seconds.
  • Callback mode: Video generation takes time, strongly recommend using callback mode.
  • Video expiration: Result URLs are valid for 15 days. Download promptly.
  • Content moderation: Prompts must comply with content safety guidelines.
  • REFERENCE_2_VIDEO constraints: This type only supports fast mode and aspect_ratio must be 16:9.
  • Image formats: image_urls supports JPG, PNG, WebP, max 10MB per image.

On this page