# Venice AI Video Generation Queue

> Venice AI Video Generation Queue is a paid API for AI agents from api.venice.ai, paid per call via x402, $10/call, status unknown (last checked 2026-10-11).

Queues a new AI video generation request, returning a queue ID for tracking the async result.

## Facts

- Endpoint: POST https://api.venice.ai/api/v1/video/queue?utm_source=zero.xyz
- Price: $10/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/venice-ai-video-generation-queue-0d849ebc
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_CPz-FRn4FHkKqTj3K7az9

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability venice-ai-video-generation-queue-0d849ebc -d '<json body>'
```

Example prompt: Generate a 5-second AI video of 'a canal gondola gliding through Venice, Italy at golden hour' using the seedance-2-0-text-to-video model, with audio enabled.

## When to prefer this

Use this endpoint when you need to generate AI video from text prompts or reference images/videos via the Venice AI platform, especially when you want async queue-based processing (poll for results separately), need model flexibility (Seedance, Kling, etc.), or are paying per-call via x402 wallet-based micropayments. Prefer over alternatives when the user needs configurable duration, audio input, or multi-element character references.

## Known failure modes

- 402 Payment Required — insufficient USDC balance, includes top-up instructions
- 400 Bad Request — missing required fields (model, prompt, duration) or invalid enum value for duration
- 400 Bad Request — prompt exceeds maximum length for chosen model
- 422 Unprocessable Entity — invalid image_url or video_url format (must be http/https or data URL)
- 401 Unauthorized — missing or invalid Bearer token or X-Sign-In-With-X header
- 429 Too Many Requests — rate limit exceeded

## How this service works

Queue video generation.

## Output

Returns a JSON object with the model ID used, a queue_id UUID for polling the job status, and optionally a pre-signed download_url (valid 24 hours) for VPS-backed models where the video can be fetched once status is COMPLETED.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "model",
  "prompt",
  "duration"
 ],
 "properties": {
  "audio": {
   "type": "boolean",
   "default": true,
   "example": true,
   "description": "For models which support audio generation and configuration. Defaults to true."
  },
  "model": {
   "type": "string",
   "example": "seedance-2-0-text-to-video",
   "description": "The model to use for video generation."
  },
  "prompt": {
   "type": "string",
   "example": "Commerce being conducted in the city of Venice, Italy.",
   "maxLength": 10000,
   "minLength": 1,
   "description": "The prompt to use for video generation. Required for most models. The maximum length varies by model (default 2500 characters, up to 10000 for some models such as Seedance 2.0)."
  },
  "duration": {
   "enum": [
    "2s",
    "3s",
    "4s",
    "5s",
    "6s",
    "7s",
    "8s",
    "9s",
    "10s",
    "11s",
    "12s",
    "13s",
    "14s",
    "15s",
    "16s",
    "18s",
    "20s",
    "25s",
    "30s",
    "1 gen",
    "Auto"
   ],
   "type": "string",
   "example": "5s",
   "description": "The duration of the video to generate. Available options vary by model."
  },
  "elements": {
   "type": "array",
   "items": {
    "type": "object",
    "properties": {
     "video_url": {
      "type": "string"
     },
     "frontal_image_url": {
      "type": "string"
     },
     "reference_image_urls": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "maxItems": 3
     }
    }
   },
   "example": [
    {
     "frontal_image_url": "data:image/png;base64,iVBORw0K...",
     "reference_image_urls": [
      "data:image/png;base64,iVBORw0K..."
     ]
    }
   ],
   "maxItems": 4,
   "description": "For models with advanced element support (e.g., Kling O3 R2V). Up to 4 elements defining characters/objects. Reference in prompt as @Element1, @Element2, etc."
  },
  "audio_url": {
   "type": "string",
   "example": "data:audio/mpeg;base64,SUQzBAA...",
   "description": "For models that support audio input, background music. Must be a URL or data URL. Supported: WAV, MP3. Max: 30s, 15MB."
  },
  "image_url": {
   "type": "string",
   "example": "data:image/png;base64,iVBORw0K...",
   "description": "For image-to-video models, the reference image. Must be a URL (http/https) or a data URL (data:image/...)."
  },
  "video_url": {
   "type": "string",
   "example": "data:video/mp4;base64,AAAAFGZ0eXA...",
   "description": "For models that support video input (video-to-v
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "model",
  "queue_id"
 ],
 "properties": {
  "model": {
   "type": "string",
   "example": "video-model-123",
   "description": "The ID of the model used for video generation."
  },
  "queue_id": {
   "type": "string",
   "example": "123e4567-e89b-12d3-a456-426614174000",
   "description": "The ID of the video generation request."
  },
  "download_url": {
   "type": "string",
   "description": "Pre-signed URL to download the completed video. Only present for VPS-backed models. When provided, the retrieve endpoint returns JSON status only (no video stream). Fetch this URL after status is COMPLETED to get the video/mp4 file. Valid for 24 hours."
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/venice-ai-video-generation-queue-0d849ebc/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.venice.ai](https://www.zero.xyz/host/api.venice.ai/llms.txt)
