Make your mascot move
Masko draws a new pose of your mascot and animates it into a five-second loop with a transparent background. You need a mascot first: Create your first mascot.
10 min · 11 credits · Studio or API
Do it in Studio
- Open your mascot in Studio, go to the Animations tab, press Create Animation and choose New image + animation.
- Fill in Name ("Waving hello"), Starting image ("standing, smiling, one paw raised") and Movement ("waves hello, then lowers the paw back to the start"). Or type the name and press Fill prompts.
- Keep Loop on, and under Quality keep Standard and a Duration of 5s.
- Press Generate · 11 credits. When it is ready, open it in the Animations tab for Available Formats, Export and Get Links.
Do it with the API
You need a write key from API keys in MASKO_API_KEY and your MASCOT_ID. Run these calls on your server or in a terminal, never in browser code.
1. Ask for the animation
One request draws the pose from image_prompt and animates it with animation_prompt, and loop: true makes a clip that repeats without a seam. Always set animation_model to standard: leaving it out keeps an older, pricier rate of 5 credits a second.
curl -X POST https://api.masko.ai/v1/mascots/MASCOT_ID/generate \
-H "Authorization: Bearer $MASKO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "animation",
"animation_model": "standard",
"name": "Waving hello",
"image_prompt": "standing, smiling, one paw raised",
"animation_prompt": "waves hello, then lowers the paw back to the start",
"duration": 5,
"loop": true
}'It answers 202 Accepted at once, before the work is done. Save job_id and item_id.
animation_model | Five seconds with a new pose |
|---|---|
standard | 11 credits: 1 for the pose, 2 per second |
premium | 31 credits, higher quality |
| left out | Older rate of 5 credits per second |
2. Wait for the job
A job goes pending, processing, then completed or failed. With wait=true, the server holds the request until the job finishes or the timeout passes; then ask again.
# Holds the request open until the job finishes, up to 120 seconds.
# If the timeout comes first, you get the current status: ask again.
curl "https://api.masko.ai/v1/jobs/JOB_ID?wait=true&timeout=120" \
-H "Authorization: Bearer $MASKO_API_KEY" \
-H "Masko-API-Version: 2026-09-26"In production, use a webhook: your server gets a signed POST when each job finishes. Check its Masko-Signature header on every call.
What you get
One item, "Waving hello", holds these files:
| Asset | File | Use |
|---|---|---|
image | PNG | The pose, with its background |
transparent_image | PNG | The pose, background removed |
webm | WebM, VP9 with alpha | Transparent in Chrome, Firefox, Edge |
hevc | MOV, HEVC (H.265) with alpha | Transparent in Safari, iOS, macOS |
video | MP4, H.264 | Plays everywhere, solid background |
stacked_video | MP4, color and alpha stacked | Transparent on Android, via a shader |
A page lists both transparent files and each browser plays the one it can; Put it on your website has the markup.
Other formats are free: POST /v1/assets/:id/exports, or Export in Studio, makes GIF, Lottie, dotLottie, ProRes 4444 with alpha, PNG sequences and resized versions. See image and video exports.
Using an AI agent?
Paste this into an agent connected to the Masko MCP server at https://masko.ai/api/mcp (setup for Cursor or ChatGPT), or into one with the Masko skill and an API key.
Animate my Masko mascot by following
https://masko.ai/docs/tutorials/first-animation
Use my mascot "MASCOT_NAME". Ask me which one if I have several.
Make a five-second Standard looping animation called "Waving hello":
a new pose, then a wave that ends where it started.
Use the Masko MCP tools if they are connected. Otherwise use the REST API at
https://api.masko.ai/v1 with MASKO_API_KEY from my environment. Never print the key.
Tell me the cost first and wait for my OK. It should be 11 credits.
Wait for the job without starting it again, then give me the WebM and HEVC URLs.