Endpoint
/v1/generationsBearer key · generations:writeSend JSON with Content-Type: application/json. Idempotency-Key is optional in the schema and strongly recommended for every logical generation.
Request shape
{
"model": "wan-3.0",
"mode": "text_to_video",
"variant": "standard",
"parameters": {
"resolution": "720p",
"duration_seconds": 5,
"ratio": "16:9",
"audio": true,
"prompt_extend": false,
"watermark": false
},
"input": {
"prompt": "A paper boat crosses a rain puddle, macro lens"
}
}| Field | Contract |
|---|---|
| model | Required. Currently wan-3.0 |
| mode | text_to_video, image_to_video, reference_to_video, video_edit, or video_extend |
| variant | Required: standard or prime |
| parameters | Required object; individual fields have defaults |
| input | Strict mode-specific object |
Create response
Success returns HTTP 202. The response contains the generation ID, queued status, resolved public mode and variant, creation time, and a USD price hold snapshot.
{
"id": "1b90f2e6-8898-45c3-9c4a-6f4ba6af25cb",
"status": "queued",
"model": "wan-3.0",
"mode": "text_to_video",
"variant": "standard",
"price": {
"amount": "<customer hold from the live pricing rules>",
"currency": "USD"
},
"created_at": "2026-09-01T12:00:00.000Z"
}The create amount is the maximum hold, not necessarily the final capture. On successful completion, Gensta settles against authoritative provider usage and releases any difference.
Validation
Request objects are strict: unknown fields and invalid mode combinations return 400 invalid_request before a wallet hold. Prompts are trimmed and must contain 1–20,000 characters. Edit and extend require ratio: adaptive.