GPT IMAGE 2.5 | WAN 3.0 | SEEDANCE 2.5 IS NOW LIVE!

GENERATE YOUR VIDEOS WITH UNLIMITED SEEDANCE 2.5 TODAY.

NO EXTRA SUBSCRIPTION
REVIRAL
Get API key
Browse API docs

Get started

Reference inputs

Was this page helpful?

Upload photos, videos, and audio, then use their ordered URLs within each model's published limits.

Follow the selected model

Read each model's references block first. A zero means that kind is unavailable. Counts, byte limits, video duration, and the audio visual requirement come from the same model registry used by Cinema. Direct, signed, and verification calls share one limit of 10 uploads per minute and 500 per day per API key.

Upload a photo, then generate with @image1

Uploads belong to the API-key account. A signed PUT remains a staging object until verification; only the URL returned by verify can be used as a reference. Verify replaces any PUT Content-Type with the detected file type. Preserve array order: the first URL is @image1, the first video is @video1, and the first audio file is @audio1.

SIGNED=$(curl -X POST "https://reviral.ai/api/v1/uploads/sign" \
  -H "Authorization: Bearer $REVIRAL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{"kind":"video","contentType":"video/mp4","bytes":8000000,"filename":"clip.mp4"}')
UPLOAD_ID=$(printf '%s' "$SIGNED" | jq -r '.data.id')
UPLOAD_URL=$(printf '%s' "$SIGNED" | jq -r '.data.uploadUrl')

curl -X PUT "$UPLOAD_URL" --data-binary @clip.mp4
VIDEO_URL=$(curl -X POST "https://reviral.ai/api/v1/uploads/verify" \
  -H "Authorization: Bearer $REVIRAL_API_KEY" -H "Content-Type: application/json" \
  --data '{"id":"'"$UPLOAD_ID"'"}' | jq -r '.data.url')

PHOTO_URL=$(curl -X POST "https://reviral.ai/api/v1/uploads" \
  -H "Authorization: Bearer $REVIRAL_API_KEY" \
  -F "kind=image" -F "file=@product.jpg" | jq -r '.data.url')

curl -X POST "https://reviral.ai/api/v1/generate-media" \
  -H "Authorization: Bearer $REVIRAL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{"model":"seedance-2","prompt":"Reveal @image1 and @video1","referenceImageUrls":["'"$PHOTO_URL"'"],"referenceVideoUrls":["'"$VIDEO_URL"'"]}'