Videos
Generate Video
Create a video clip from a text prompt.
Turn a prompt into a video. The request returns a task; the clip arrives when you poll it. Video takes considerably longer than images.
Minimal request
curl -X POST https://app.piernode.com/api/v1/videos/generations \
-H "Authorization: Bearer $PIERNODE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
-d '{"prompt": "a calm sea at dawn"}'{
"id": "fu0825tesv0laouebtjx0x5w",
"status": "QUEUED",
"createdAt": "2026-01-01T12:00:00.000Z"
}Defaults give you a 5-second 720p 16:9 clip. The cost is reserved at this point.
Parameters
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | yes | — | 1–2000 characters. |
resolution | string | no | 720p | 480p, 512p, 720p, 1080p. Sets the rate. |
aspectRatio | string | no | 16:9 | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9. |
durationSeconds | int | no | 5 | 4–15. |
There is no negativePrompt on video.
A fuller example
curl -X POST https://app.piernode.com/api/v1/videos/generations \
-H "Authorization: Bearer $PIERNODE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
-d '{
"prompt": "a calm sea at dawn, slow drifting clouds",
"resolution": "1080p",
"aspectRatio": "21:9",
"durationSeconds": 8
}'Getting the result
Poll the task. On success:
{
"status": "SUCCEEDED",
"output": {
"videos": [{ "url": "https://...", "contentType": "video/mp4", "sizeBytes": 8388608 }]
}
}Videos come back under videos, images under images. Only the key that
applies is present.
Errors
Task failures carry the same error.code values as
generating an image, and release the
reservation in full.
See also
- Pricing — priced per second, so
durationSecondsmultiplies the cost. - Idempotency & retries.
- Polling — video is slow; back off rather than hammering.