API reference
Reach every model through a single HTTPS endpoint. Authenticate by sending your API key as a Bearer token; credits are topped up with crypto payments.
Authentication
Send your API key as a Bearer token in the Authorization header on every request. Keys start with the vll_ prefix and are created on the API Keys page.
Authorization: Bearer vll_...
Model catalog
GET /v1/models
The valid models, sizes and resolutions with their credit costs. Read this endpoint instead of hardcoding a price list on your side.
curl https://vellria.com/v1/models \ -H "Authorization: Bearer vll_..."
Image generation
POST /v1/generate/image
curl https://vellria.com/v1/generate/image \
-H "Authorization: Bearer vll_..." \
-H "Content-Type: application/json" \
-d '{
"model": "vellria-flash",
"prompt": "A cat asleep in space, cinematic light",
"size": "1024*1024"
}'- model: vellria-flash · size: 1024*1024 | 1536*1024 | 1024*1536 | 2048*1152 | 1152*2048 | 2048*2048 · 1 credit for every size
- model: seedream-5-pro-uncensored · size: 1536*1536 | 1776*1328 | 1328*1776 | 2048*1152 | 1152*2048 · 9 credits for every size
- model: seedream-5-pro-uncensored-edit · image to image · image_urls: 1–10 https URLs (required) · size: 1536*1536 | 1776*1328 | 1328*1776 | 2048*1152 | 1152*2048 · 9 credits for every size + 1 credit for each reference image after the first
- model: qwen-3-pro-uncensored · size: 1024*1024 | 1536*1024 | 1024*1536 | 2048*1152 | 1152*2048 | 2048*2048 · 6 credits for every size
- model: qwen-3-pro-uncensored-edit · image to image · image_urls: 1–3 https URLs (required) · size: 1024*1024 | 1280*960 | 960*1280 | 1280*720 | 720*1280 | 1440*1440 · 6 credits for every size
- model: seedream-5-lite-uncensored · size: 2048*2048 | 2304*1728 | 1728*2304 | 2496*1664 | 1664*2496 | 2848*1600 | 1600*2848 | 3136*1344 | 3072*3072 | 3456*2592 | 2592*3456 | 4096*2304 | 2304*4096 | 3744*2496 | 2496*3744 | 4704*2016 · 4 credits for every size
- model: seedream-5-lite-uncensored-edit · image to image · image_urls: 1–14 https URLs (required) · size: 2048*2048 | 2304*1728 | 1728*2304 | 2496*1664 | 1664*2496 | 2848*1600 | 1600*2848 | 3136*1344 | 3072*3072 | 3456*2592 | 2592*3456 | 4096*2304 | 2304*4096 | 3744*2496 | 2496*3744 | 4704*2016 · 4 credits for every size
Video generation
POST /v1/generate/video
curl https://vellria.com/v1/generate/video \
-H "Authorization: Bearer vll_..." \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"prompt": "Ocean waves at sunset, slow dolly forward",
"duration": 5,
"resolution": "1080p"
}'- model: seedance-2.5 · duration: 4–30 seconds · resolution: 480p | 720p | 1080p · 480p 14 · 720p 30 · 1080p 53 credits/s
- model: minimax-h3-uncensored · duration: 4–15 seconds · resolution: 480P | 768P · ratio: 21:9 | 16:9 | 4:3 | 1:1 | 3:4 | 9:16 · 6 / s
- model: minimax-h3-uncensored-image · image to video · image_urls: 1–1 https URLs (required) · duration: 4–15 seconds · resolution: 480P | 768P · 6 / s
- model: minimax-h3-uncensored-reference · reference to video · image_urls: 1–3 https URLs (required) · duration: 4–15 seconds · resolution: 480P | 768P · ratio: adaptive | 16:9 | 1:1 | 9:16 · 6 / s
- model: happyhorse-1.1-uncensored · duration: 3–15 seconds · resolution: 480p | 720p | 1080p · ratio: 21:9 | 16:9 | 5:4 | 4:3 | 1:1 | 3:4 | 4:5 | 9:16 | 9:21 · 480p 7 · 720p 14 · 1080p 18 credits/s
- model: happyhorse-1.1-uncensored-image · image to video · image_urls: 1–1 https URLs (required) · duration: 3–15 seconds · resolution: 480p | 720p | 1080p · 480p 7 · 720p 14 · 1080p 18 credits/s
- model: happyhorse-1.1-uncensored-reference · reference to video · image_urls: 1–9 https URLs (required) · duration: 3–15 seconds · resolution: 480p | 720p | 1080p · ratio: 21:9 | 16:9 | 5:4 | 4:3 | 1:1 | 3:4 | 4:5 | 9:16 | 9:21 · 480p 7 · 720p 14 · 1080p 18 credits/s
- model: wan-3.0-uncensored · duration: 2–30 seconds · resolution: 480p | 720p | 1080p · ratio: adaptive | 16:9 | 4:3 | 1:1 | 3:4 | 9:16 · 480p 5 · 720p 10 · 1080p 20 credits/s
- model: wan-3.0-uncensored-image · image to video · image_urls: 1–1 https URLs (required) · duration: 2–30 seconds · resolution: 480p | 720p | 1080p · 480p 5 · 720p 10 · 1080p 20 credits/s
- model: wan-3.0-uncensored-reference · reference to video · image_urls: 1–10 https URLs (required) · duration: 2–30 seconds · resolution: 480p | 720p | 1080p · ratio: adaptive | 16:9 | 4:3 | 1:1 | 3:4 | 9:16 · 480p 5 · 720p 10 · 1080p 20 credits/s
- model: wan-3.0-pro-uncensored · duration: 2–30 seconds · resolution: 480p | 720p | 1080p · ratio: adaptive | 16:9 | 4:3 | 1:1 | 3:4 | 9:16 · 480p 7 · 720p 14 · 1080p 28 credits/s
- model: wan-3.0-pro-uncensored-image · image to video · image_urls: 1–1 https URLs (required) · duration: 2–30 seconds · resolution: 480p | 720p | 1080p · 480p 7 · 720p 14 · 1080p 28 credits/s
- model: wan-3.0-pro-uncensored-reference · reference to video · image_urls: 1–10 https URLs (required) · duration: 2–30 seconds · resolution: 480p | 720p | 1080p · ratio: adaptive | 16:9 | 4:3 | 1:1 | 3:4 | 9:16 · 480p 7 · 720p 14 · 1080p 28 credits/s
Image upload
POST /v1/uploads
You do not have to host reference images yourself: send the file to this endpoint as a raw body, get a public URL back and use that URL in image_urls. The Content-Type header is required and must match the body; accepted types are image/jpeg, image/png, image/webp, image/bmp and image/gif, with a 20 MB limit per file. The URL carries an unguessable id and is kept for the same period as generated files; once it expires the endpoint returns HTTP 410 and content_expired.
curl https://vellria.com/v1/uploads \ -H "Authorization: Bearer vll_..." \ -H "Content-Type: image/png" \ --data-binary @reference.png
Check generation status
GET /v1/generations/{id}
Generations run asynchronously; the status moves queued → processing → completed. Credits are refunded automatically when a generation fails.
curl https://vellria.com/v1/generations/{id} \
-H "Authorization: Bearer vll_..."Adding credits
POST /v1/billing/create-payment
Credits are topped up with crypto. Read the package and bonus table from GET /v1/billing/packages, the coins enabled on the account from GET /v1/billing/currencies, and the minimum for the selected coin from GET /v1/billing/min-amount; do not hardcode these values on your side. The response carries the payment address, the payin_extra_id field on networks that require a memo, and when the address expires. Credits are added automatically once the payment confirms; you can poll the status with GET /v1/billing/payments/{id}.
curl https://vellria.com/v1/billing/create-payment \
-H "Authorization: Bearer vll_..." \
-H "Content-Type: application/json" \
-d '{
"price_amount": 19,
"pay_currency": "usdttrc20"
}'Retention
Generated files are kept for 14 days and then deleted from the server. The record stays in your billing history but the file becomes unreachable. The GET /v1/generations response carries a retention_days field and every generation carries expires_at; requesting an expired file returns HTTP 410 with the content_expired code. Download anything you need to keep for longer.
Rate limits
20 images and 10 videos per minute. Exceeding the limit returns HTTP 429; wait for the period in the Retry-After header and try again.
Content policy: Vellria allows a wide range of creative generation; that said, depiction of minors and non-consensual content involving real people are refused with zero tolerance and result in permanent account closure.
