Skip to content

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.