wan2.7-i2v

by Wan

wan/wan2.7-i2v

Animate a first-frame image.

Billed per
second
Price
720P (default): Price: $0.11080P: Price: $0.15
Provider
Wan
Timeout
5 min

Overview

The request waits for the accepted task. Billing uses measured output seconds at the selected resolution. Outputs include a watermark. Video continuation and supplied audio are unsupported. A timed-out accepted task must be reconciled before another generation is requested.

After COMPLETED, read run.output.video_url, run.output.task_id, run.output.duration and run.output.resolution. Download the temporary video URL promptly.

Input

These go in the input object of the run request.

FieldTypeRequiredDescription
promptstringNoScene and movement.
Maximum: 5000
imagestringYesPublic HTTPS first-frame image URL; aspect ratio follows the image. Replace IMAGE_URL in the example with your own accessible image URL.
durationintegerNoRequested output seconds.
Default: 5
Minimum: 2
Maximum: 15
resolutionstringNoOutput resolution and billing tier.
Allowed: 720P, 1080P
Default: "720P"

Requests up to 1 MB.

Example

Use your own API key and a saved idempotency key for each new job. Replace image or media placeholders with your own publicly reachable HTTPS URLs. Keep the same key and request body when recovering a timeout.

# Set IMAGE_URL to a publicly accessible first-frame image URL. Requires jq.
: "${IMAGE_URL:?Set IMAGE_URL to your first-frame image URL}"
REQUEST_BODY=$(jq --arg image "$IMAGE_URL" 'walk(if . == "IMAGE_URL" then $image else . end)' <<'JSON'
{"provider":"wan","endpoint":"wan2.7-i2v","input":{"prompt":"A blue ceramic cup on a white table","duration":2,"resolution":"720P","image":"IMAGE_URL"}}
JSON
)
# Set once per job; reuse this key and the identical body after a timeout.
: "${AGENTSKY_IDEMPOTENCY_KEY:?Set a unique, saved key for this job}"
curl --fail-with-body https://gateway.agentsky.dev/v1/run \
  -H "authorization: Bearer $AGENTSKY_API_KEY" \
  -H "content-type: application/json" \
  -H "Idempotency-Key: $AGENTSKY_IDEMPOTENCY_KEY" \
  -d "$REQUEST_BODY"
# If status is READY/RUNNING, poll GET /v1/runs/{runId} with the same API key.

Pricing

720P (default): $0.1 · 1080P: $0.15 per second using your plan when signed in. Read the final customer charge from price.amount.value after the run finishes. A RUNNING response is not the final bill.

Questions