Text to video
Generate a video from a text prompt.
Generate a video from a prompt. Like every PierNode generation, this is asynchronous: you start a task and poll it until it reaches a terminal state.
POST /api/v1/videos/generations
curl -X POST https://app.piernode.com/api/v1/videos/generations \
-H "Authorization: Bearer $PIERNODE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "a calm sea at dawn",
"resolution": "720p",
"aspectRatio": "16:9",
"durationSeconds": 5
}'Request
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
prompt | string | yes | — | 1–2000 characters. |
resolution | string | no | 720p | 480p, 512p, 720p, 1080p. |
aspectRatio | string | no | 16:9 | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9. |
durationSeconds | int | no | 5 | 4–15. |
Request bodies are limited to 64 KB. Any field not listed above is ignored.
Response
Returns as soon as the task is accepted — not when the video is ready.
{
"id": "01JD8Z9K2M4N6P8Q0R2S4T6V8W",
"status": "QUEUED",
"createdAt": "2026-01-01T12:00:00.000Z"
}Poll GET /api/v1/tasks/\{taskId\} until status is SUCCEEDED or FAILED.
Result
{
"status": "SUCCEEDED",
"output": {
"videos": [{ "url": "https://...", "contentType": "video/mp4", "sizeBytes": 8388608 }]
}
}Result links are valid for one hour. Re-poll the task for a fresh one.
Pricing
Charged per second, at a rate that depends on the resolution. A 10-second 720p clip costs ten times the 720p per-second rate. Aspect ratio does not affect the price. Current rates are shown on your dashboard.
Nothing is reserved unless the task is accepted, and a failed generation is refunded in full.
Cancelling
POST /api/v1/tasks/\{taskId\}/cancel refunds a task that has not started yet.
Once processing has begun it returns 409.