Quickstart
Your first video in three HTTP calls. Every V5 and V7 model uses the same request shape.
Generate your first video in three HTTP calls. Every model on the V5 and V7 routes uses the same request shape, so the code below works for all of them.
Create an API key
API access is by approval: apply under Dashboard → API → Access, then open API Keys. A key is shown once — keep it on your server.
API access is by approval: apply under Dashboard → API → Access. Once approved, open Dashboard → API Keys and create a key. It starts with usz_ and is shown once — keep it on your server, never in browser code.
Submit a job
POST with a model alias and a unique Idempotency-Key. You get 202 and a job id.
POST to /v1/videos (or /v1/images) with a model alias and a unique Idempotency-Key. The call returns 202 with a job id within milliseconds; generation continues in the background.
curl -X POST $API/v1/videos \
-H "X-API-Key: $KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"model":"seedance-2.5-v5",
"prompt":"calm lake at dawn",
"resolution":"720p", "duration":10}'curl -X POST https://api.userize.site/v1/videos \
-H "X-API-Key: usz_your_api_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 6f9c1e2a-4b7d-4c2e-9a1f" \
-d '{
"model": "seedance-2.5-v5",
"prompt": "a calm mountain lake at dawn",
"resolution": "720p",
"duration": 10,
"aspect": "16:9"
}'{
"job_id": "0f149db4-ecea-4104-ae41-5eb63a5bdd17",
"status": "queued"
}Poll for the result
GET the job until status is succeeded, then download result.urls.
GET the job every few seconds. When status is succeeded, result.urls holds time-limited links to your media — download them promptly.
curl $API/v1/jobs/0f149db4 \
-H "X-API-Key: $KEY"curl https://api.userize.site/v1/jobs/0f149db4-ecea-4104-ae41-5eb63a5bdd17 \
-H "X-API-Key: usz_your_api_key"{
"job_id": "0f149db4-ecea-4104-ae41-5eb63a5bdd17",
"model": "seedance-2.5-v5",
"kind": "video",
"status": "succeeded",
"result": { "urls": ["https://cdn.userize.site/v/0f149db4.mp4"] },
"error_code": null,
"created_at": "2026-09-30T09:00:00Z"
}A 202 is not a success yet
Jobs can still fail. Failed jobs are refunded automatically.
A 202 is not a success yet
Jobs can still fail with content_rejected, provider_unavailable or worker_lost. Failed jobs are refunded automatically.