# Wan 2.2 A14B Image-to-Video

> Wan 2.2 A14B Image-to-Video is a paid API for AI agents from make-video.withzero.ai, paid per call via MPP, price unknown, status unknown (last checked 2026-10-11).

Animates a starting image into a video clip using Alibaba's Wan 2.2 A14B model, supporting 480p/580p/720p resolutions and 3–10 second durations.

## Facts

- Endpoint: POST https://make-video.withzero.ai/wan?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Provider: make-video.withzero.ai
- Website: https://make-video.withzero.ai
- Canonical page: https://www.zero.xyz/c/make-video-withzero-ai-wan-2-2-a14b-image-to-video-eae8c40c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_tuq3p_HAG_05FhVTeqXPb

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 make-video-withzero-ai-wan-2-2-a14b-image-to-video-eae8c40c -d '<json body>'
```

Example prompt: Take this image (https://example.com/my-photo.jpg) and animate it into a 5-second video at 720p — describe the motion as a gentle breeze rippling through the scene.

## When to prefer this

Choose this endpoint when you need to animate a specific starting image into a short video clip using the Alibaba Wan 2.2 A14B model. It is ideal when you have a concrete source image URL and want controllable resolution (480p–720p) and duration (3–10s). Prefer the sibling /hailuo endpoint for MiniMax-based image-to-video, or text-only endpoints (/kling, /sora2, /veo3) when no source image is available.

## Known failure modes

- Missing image_url — required for image-to-video models, returns validation error
- Invalid resolution or duration outside allowed range — rejected at preCheck
- Image URL not publicly accessible — fal.ai cannot fetch the starting image
- Job polling timeout — generation may take longer than estimated_seconds
- Insufficient funds for dynamic USDC charge — payment fails before job submission
- Invalid prompt length — prompt must be 1–2000 characters

## How this service works

Wan 2.2 A14B — image-to-video. Per-model alias for POST /run with model="wan". Alibaba Wan 2.2 A14B image-to-video — animate a starting image. 480p / 580p / 720p, durations 3–10s. Preview the charge via free GET /price/wan?duration=…&resolution=…; poll the job via free GET /status/:id (returned job_id).

## Output

Returns a job_id and status_url for polling, along with the resolved inputs (duration, resolution), the model used, an estimated completion time in seconds, recommended poll interval, and a price breakdown showing cost, markup, and total charge in USD.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "prompt"
 ],
 "properties": {
  "prompt": {
   "type": "string",
   "maxLength": 2000,
   "minLength": 1,
   "description": "Text description of the video to generate."
  },
  "duration": {
   "type": "integer",
   "minimum": 0,
   "description": "Clip duration in seconds. Per-model allow-list applied at preCheck.",
   "exclusiveMinimum": true
  },
  "image_url": {
   "type": "string",
   "format": "uri",
   "description": "Public http(s) URL of the starting image. Required for image-to-video models (wan, hailuo)."
  },
  "resolution": {
   "type": "string",
   "description": "Output resolution. Per-model allow-list applied at preCheck."
  },
  "aspect_ratio": {
   "type": "string",
   "description": "Output aspect ratio. Per-model allow-list applied at preCheck."
  },
  "generate_audio": {
   "type": "boolean",
   "description": "Generate native audio track. Only accepted by models that have an audio toggle (veo3)."
  },
  "negative_prompt": {
   "type": "string",
   "maxLength": 1000,
   "description": "Optional — describe what to avoid."
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "job_id",
  "status_url",
  "endpoint",
  "model",
  "model_name",
  "inputs",
  "price",
  "estimated_seconds",
  "poll_interval_seconds"
 ],
 "properties": {
  "model": {
   "type": "string",
   "description": "Underlying fal.ai model id."
  },
  "price": {
   "type": "object",
   "required": [
    "cost_usd",
    "markup_usd",
    "charge_usd",
    "breakdown"
   ],
   "properties": {
    "cost_usd": {
     "type": "number"
    },
    "breakdown": {
     "type": "string"
    },
    "charge_usd": {
     "type": "number"
    },
    "markup_usd": {
     "type": "number"
    }
   },
   "additionalProperties": false
  },
  "inputs": {
   "type": "object",
   "required": [
    "duration",
    "resolution"
   ],
   "properties": {
    "duration": {
     "type": "number"
    },
    "resolution": {
     "type": "string"
    },
    "generate_audio": {
     "type": "boolean"
    }
   },
   "description": "Echo of resolved inputs (after defaults applied).",
   "additionalProperties": false
  },
  "job_id": {
   "type": "string",
   "description": "Internal id; pass to GET /status/:job_id."
  },
  "endpoint": {
   "type": "string",
   "description": "The model slug that handled this submit."
  },
  "model_name": {
   "type": "string",
   "description": "Human-readable model name."
  },
  "status_url": {
   "type": "string",
   "format": "uri",
   "description": "Full URL to poll for completion."
  },
  "estimated_seconds": {
   "type": "number"
  },
  "poll_interval_seconds": {
   "type": "number"
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/make-video-withzero-ai-wan-2-2-a14b-image-to-video-eae8c40c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from make-video.withzero.ai](https://www.zero.xyz/host/make-video.withzero.ai/llms.txt)
