Endpoints
generate-media
Was this page helpful?
Start one image or video generation using a current public model ID.
GET
/api/v1/generate-media
Describe the generation contract
Authentication: Public
curl "https://reviral.ai/api/v1/generate-media"Responses
- 200
- Human-readable field and polling summary
- 429
- Too many requests
- 503
- Models or rate limiting are temporarily unavailable
POST
/api/v1/generate-media
Start a media job
Limited to 10 requests per minute and 200 per day per key. Video also has an account cap: 10 per hour and 100 per day until the account has paid history; 200 per day after. Reference fields return 422 unsupported_field. Image credits are per image and count multiplies the charge.
Authentication: Bearer API key required
curl -X POST "https://reviral.ai/api/v1/generate-media" \
-H "Authorization: Bearer $REVIRAL_API_KEY" \
-H "Idempotency-Key: first-video" \
-H "Content-Type: application/json" \
--data '{"model":"seedance-2","prompt":"A slow camera move across a quiet lake at sunrise","durationSec":5,"resolution":"720p","aspectRatio":"16:9","maxCredits":106}'Request body
| Field | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | — |
| prompt | string | Yes | — |
| durationSec | integer (min 1) | No | — |
| resolution | string | No | — |
| aspectRatio | string | No | — |
| generateAudio | boolean | No | — |
| size | string | No | — |
| count | integer (min 1, max 4) | No | Image count; multiplies perImage credits. |
| maxCredits | integer (min 0) | No | Price lock. A different live charge returns 409 price_changed. |
| webhookUrl | string | No | — |
Responses
- 202
- Job accepted or the original job returned when the same Idempotency-Key and request body are repeated
- 400
- Body is empty or is not JSON
- 401
- Key is missing, revoked, or invalid
- 402
- Account needs more credits
- 404
- Model is not available
- 409
- Either the live charge changed (price_changed) or the Idempotency-Key was already used with a different request body (idempotency_key_reuse)
- 422
- Settings are invalid or a reference field is unsupported
- 429
- Too many requests
- 502
- Job could not be started
- 503
- Models or rate limiting are temporarily unavailable
- 504
- Start timed out. The error echoes idempotencyKey when supplied; retry with the same value.