Documentation
Reference for the Artlio API. Endpoints and fields may change before general availability.
Demo console. The Artlio API isn't live yet. Keys created here are demo keys and the numbers come from your activity in the studio. Request early access
Base URL https://api.artlio.ai/v1
Authentication
Every request sends your key as a bearer token. Keys belong to an account and draw from its balance. Call the API from your server only, never from a browser or mobile app.
Authorization: Bearer $ARTLIO_API_KEYGenerate video
POST /{vendor}/{model}/text-to-video or image-to-video. Common fields: prompt, duration (seconds), resolution, aspect_ratio, generate_audio, start_image_url, end_image_url and camera_preset. Models ignore fields they don't support.
curl https://api.artlio.ai/v1/bytedance/seedance-2-5/text-to-video \
-H "Authorization: Bearer $ARTLIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"A cinematic tracking shot along a sunlit coastal road","duration":5,"resolution":"720p","aspect_ratio":"16:9","generate_audio":true}'Generate image
Same shape for images: send prompt, aspect_ratio, resolution (1K, 2K, 4K), num_images (1–4) and optional reference_image_urls.
curl https://api.artlio.ai/v1/google/nano-banana-pro/text-to-image \
-H "Authorization: Bearer $ARTLIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"Blue glass flask on a mirror, neon reflections","aspect_ratio":"3:4","resolution":"2K","num_images":2}'Speech
Text to speech takes text, voice_id and optional speed, pitch and output_format. Voice change and dubbing take a video_url plus a voice_id or target_language.
curl https://api.artlio.ai/v1/elevenlabs/elevenlabs-v4/text-to-speech \
-H "Authorization: Bearer $ARTLIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Welcome back to the channel.","voice_id":"rowan","speed":1.0,"output_format":"mp3"}'Generations & webhooks
Requests are asynchronous and return { id, status }. Poll GET /generations/{id} or add webhook_url to be called with the finished generation. Statuses: queued, running, succeeded, failed.
curl https://api.artlio.ai/v1/generations/gen_8f2k1x \
-H "Authorization: Bearer $ARTLIO_API_KEY"
{
"id": "gen_8f2k1x",
"status": "succeeded",
"outputs": [{ "url": "https://cdn.artlio.ai/gen_8f2k1x.mp4" }]
}Errors
Errors return JSON with a code and a readable message. 401 invalid key, 402 not enough balance, 422 invalid input for the model, 429 rate limited, 5xx provider trouble. Failed generations are never charged.
{ "error": { "code": "insufficient_balance", "message": "This request needs €0.42; your balance is €0.10." } }Rate limits
Early access starts at 10 concurrent generations and 120 requests per minute per key. Responses include x-ratelimit-remaining and x-ratelimit-reset headers.
MCP server
Agents can use Artlio over the Model Context Protocol. Tools: generate_video, generate_image, edit_image, upscale, get_generation and list_models.
https://mcp.artlio.ai/mcp