Wan
Wan models are called through one unified, asynchronous job API. Start a task with POST /api/generate, then poll GET /api/generate/{taskId} until it finishes. This family exposes 18 endpoints.
Overview
Every endpoint shares the same envelope — only model and the input fields change. Run any from the Models Market playground.
Authentication
Create an API key at /api-keys, then send it as a Bearer token. Requests from the browser while logged in also work via the session cookie.
Authorization: Bearer <YOUR_API_KEY>Create Task
POST https://97ai.97claude.com/api/generateBody: { "model": "<slug>", "input": { … } }
Response: { "taskId": "<id>", "state": "waiting" }
Query Result
GET https://97ai.97claude.com/api/generate/<taskId>Response: { "taskId", "state": "waiting" | "success" | "fail", "resultUrls": [ … ], "creditsConsumed", "failMsg", "balance" }
state becomes success or fail. Failed tasks are not billed.Endpoints
| Model | Task | model slug |
|---|---|---|
| Wan 2.7 Image | Text to Image | wan/2-7-image |
| Wan 2.7 Image Pro | Text to Image | wan/2-7-image-pro |
| Wan 2.2 A14B | Image to Video | wan/2-2-a14b-image-to-video-turbo |
| Wan 2.2 A14B | Speech to Video | wan/2-2-a14b-speech-to-video-turbo |
| Wan 2.2 A14B | Text to Video | wan/2-2-a14b-text-to-video-turbo |
| Wan 2.2 Animate Move | Lip Sync | wan/2-2-animate-move |
| Wan 2.2 Animate Replace | Lip Sync | wan/2-2-animate-replace |
| Wan 2.6 | Image to Video | wan/2-6-image-to-video |
| Wan 2.6 | Text to Video | wan/2-6-text-to-video |
| Wan 2.6 | Video to Video | wan/2-6-video-to-video |
| Wan 2.6 Flash | Image to Video | wan/2-6-flash-image-to-video |
| Wan 2.6 Flash | Video to Video | wan/2-6-flash-video-to-video |
| Wan 2.5 | Image to Video | wan/2-5-image-to-video |
| Wan 2.5 | Text to Video | wan/2-5-text-to-video |
| Wan 2.7 | Text to Video | wan/2-7-text-to-video |
| Wan 2.7 | Image to Video | wan/2-7-image-to-video |
| Wan 2.7 Videoedit | Video Editing | wan/2-7-videoedit |
| Wan 2.7 R2V | Video to Video | wan/2-7-r2v |
Wan 2.7 Image · Text to Image
wan/2-7-imagepromptstringrequiredText prompt describing the desired output.
aspect_ratiostringoptionalOutput aspect ratio, e.g. "1:1", "16:9".
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-7-image",
"input": { "prompt": "a red panda", "aspect_ratio": "1:1" }
}'Wan 2.7 Image Pro · Text to Image
wan/2-7-image-propromptstringrequiredText prompt describing the desired output.
aspect_ratiostringoptionalOutput aspect ratio, e.g. "1:1", "16:9".
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-7-image-pro",
"input": { "prompt": "a red panda", "aspect_ratio": "1:1" }
}'Wan 2.2 A14B · Image to Video
wan/2-2-a14b-image-to-video-turbopromptstringrequiredText prompt describing the desired output.
image_urlsstring[]requiredOne or more source image URLs to condition on.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-2-a14b-image-to-video-turbo",
"input": { "prompt": "a red panda", "image_urls": ["https://example.com/in.jpg"] }
}'Wan 2.2 A14B · Speech to Video
wan/2-2-a14b-speech-to-video-turbopromptstringrequiredText prompt describing the desired output.
video_urlstringrequiredSource video URL to transform.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-2-a14b-speech-to-video-turbo",
"input": { "prompt": "make it snow", "video_url": "https://example.com/in.mp4" }
}'Wan 2.2 A14B · Text to Video
wan/2-2-a14b-text-to-video-turbopromptstringrequiredText prompt describing the desired output.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-2-a14b-text-to-video-turbo",
"input": { "prompt": "a red panda surfing" }
}'Wan 2.2 Animate Move · Lip Sync
wan/2-2-animate-movepromptstringrequiredText prompt describing the desired output.
image_urlsstring[]requiredOne or more source image URLs to condition on.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-2-animate-move",
"input": { "prompt": "a red panda", "image_urls": ["https://example.com/in.jpg"] }
}'Wan 2.2 Animate Replace · Lip Sync
wan/2-2-animate-replacepromptstringrequiredText prompt describing the desired output.
image_urlsstring[]requiredOne or more source image URLs to condition on.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-2-animate-replace",
"input": { "prompt": "a red panda", "image_urls": ["https://example.com/in.jpg"] }
}'Wan 2.6 · Image to Video
wan/2-6-image-to-videopromptstringrequiredText prompt describing the desired output.
image_urlsstring[]requiredOne or more source image URLs to condition on.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-6-image-to-video",
"input": { "prompt": "a red panda", "image_urls": ["https://example.com/in.jpg"] }
}'Wan 2.6 · Text to Video
wan/2-6-text-to-videopromptstringrequiredText prompt describing the desired output.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-6-text-to-video",
"input": { "prompt": "a red panda surfing" }
}'Wan 2.6 · Video to Video
wan/2-6-video-to-videopromptstringrequiredText prompt describing the desired output.
video_urlstringrequiredSource video URL to transform.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-6-video-to-video",
"input": { "prompt": "make it snow", "video_url": "https://example.com/in.mp4" }
}'Wan 2.6 Flash · Image to Video
wan/2-6-flash-image-to-videopromptstringrequiredText prompt describing the desired output.
image_urlsstring[]requiredOne or more source image URLs to condition on.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-6-flash-image-to-video",
"input": { "prompt": "a red panda", "image_urls": ["https://example.com/in.jpg"] }
}'Wan 2.6 Flash · Video to Video
wan/2-6-flash-video-to-videopromptstringrequiredText prompt describing the desired output.
video_urlstringrequiredSource video URL to transform.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-6-flash-video-to-video",
"input": { "prompt": "make it snow", "video_url": "https://example.com/in.mp4" }
}'Wan 2.5 · Image to Video
wan/2-5-image-to-videopromptstringrequiredText prompt describing the desired output.
image_urlsstring[]requiredOne or more source image URLs to condition on.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-5-image-to-video",
"input": { "prompt": "a red panda", "image_urls": ["https://example.com/in.jpg"] }
}'Wan 2.5 · Text to Video
wan/2-5-text-to-videopromptstringrequiredText prompt describing the desired output.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-5-text-to-video",
"input": { "prompt": "a red panda surfing" }
}'Wan 2.7 · Text to Video
wan/2-7-text-to-videopromptstringrequiredText prompt describing the desired output.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-7-text-to-video",
"input": { "prompt": "a red panda surfing" }
}'Wan 2.7 · Image to Video
wan/2-7-image-to-videopromptstringrequiredText prompt describing the desired output.
image_urlsstring[]requiredOne or more source image URLs to condition on.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-7-image-to-video",
"input": { "prompt": "a red panda", "image_urls": ["https://example.com/in.jpg"] }
}'Wan 2.7 Videoedit · Video Editing
wan/2-7-videoeditpromptstringrequiredText prompt describing the desired output.
video_urlstringrequiredSource video URL to transform.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-7-videoedit",
"input": { "prompt": "make it snow", "video_url": "https://example.com/in.mp4" }
}'Wan 2.7 R2V · Video to Video
wan/2-7-r2vpromptstringrequiredText prompt describing the desired output.
video_urlstringrequiredSource video URL to transform.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan/2-7-r2v",
"input": { "prompt": "make it snow", "video_url": "https://example.com/in.mp4" }
}'