AIVeed Developers Get your API key

Uploads

Generation inputs (first/last frames, image-edit sources, lipsync portraits and audio, reference media) must be public URLs. POST /v1/uploads turns a local file into a CDN URL you can pass to any generate request.

bash
curl -X POST "https://api.aiveed.io/v1/uploads" \
  -H "X-API-Key: $AIVEED_API_KEY" \
  -F "file=@portrait.png" -F "kind=image"

# → { "url": "https://...", "kind": "image", ... }

# Use it as a first frame:
curl -X POST "https://api.aiveed.io/v1/generate/video" \
  -H "X-API-Key: $AIVEED_API_KEY" -H "Content-Type: application/json" \
  -d '{"model": "seedance-2-fast", "prompt": "The portrait comes to life and smiles",
       "resolution": "480p", "duration": "6", "first_frame_url": "PASTE_URL_HERE"}'

Limits

kindMax sizeAllowed extensions
image10 MB.jpg .jpeg .png .webp .avif
audio5 MB.mp3 .wav .aac .m4a .mp4 .ogg
video50 MB.mp4 .mov .avi .webm .mpg .mpeg

Oversized files → 413 PAYLOAD_TOO_LARGE; disallowed types → 415 UNSUPPORTED_MEDIA_TYPE. Uploads are free (0 credits), require the generate scope, and image uploads pass the same content screen as generation.

Retention

Image and audio uploads are stored durably — the returned URL does not expire and is safe to keep and reuse in later requests. Video uploads are transient (roughly 90 days): use the URL as a generation input promptly and re-upload if you need it again later.