Animate the mascot you already have
Upload your own character, logo or drawing, and Masko animates that exact image with no redraw. The upload also becomes the mascot's reference, so later poses and animations keep its look.
10 min · 10 credits · Studio or API
Do it in Studio
- Open Create a mascot and choose the Upload yours tab.
- Press Choose an image (PNG, JPG, WebP or SVG), name it and press Create mascot.
- In the Animations tab, press Create Animation and choose Animate an image.
- Press Upload image and pick the same file (PNG, JPEG or WebP, up to 10 MB), or Choose existing.
- Describe the motion in Movement (optional), such as "Wave gently, keeping the feet planted." Keep Loop on, Standard and 5s, and press Generate · 10 credits.
Do it with the API
You need a write key from API keys in MASKO_API_KEY and a PROJECT_ID (create a project). Run these calls on your server or in a terminal, never in browser code.
1. Upload your image
Send the file as a multipart form, or the URL of a public image. Uploads are free. URL imports take PNG, JPEG, WebP, GIF and SVG up to 10 MB, and SVG becomes PNG.
curl -X POST https://api.masko.ai/v1/upload \
-H "Authorization: Bearer $MASKO_API_KEY" \
-F "file=@my-mascot.png"Save data.asset_id as UPLOADED_IMAGE_ID.
2. Create the mascot and animate it in one request
create_mascot makes a new mascot whose first reference is your upload, used as it is, and starts the animation. Leave out create_mascot.name and Masko picks a name from the image.
curl -X POST https://api.masko.ai/v1/animations \
-H "Authorization: Bearer $MASKO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: first-wave-001" \
-d '{
"source_image_asset_id": "UPLOADED_IMAGE_ID",
"create_mascot": { "project_id": "PROJECT_ID" },
"name": "Wave",
"animation_prompt": "Wave gently, keeping the feet planted.",
"animation_model": "standard",
"duration": 5
}'The 202 answer carries mascot_id, mascot_name, job_id, item_id, asset_ids, estimated_cost and poll_url. Defaults are Standard, 5 seconds and looping, for 10 credits; creating the mascot, naming and cropping are free.
A retry with the same Idempotency-Key and body is never charged twice. If the animation fails after the mascot was created, error.details.mascot_id gives its ID: reuse it with a new key.
3. Wait for the job
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"The server holds the request until the job is completed or failed; if the timeout passes first, ask again. Never resend the animation request to check progress. In production, use a webhook.
4. Make more animations of the same character
Send the returned mascot_id instead of create_mascot: each create_mascot request makes a separate mascot.
{
"mascot_id": "RETURNED_MASCOT_ID",
"source_image_asset_id": "UPLOADED_IMAGE_ID",
"name": "Bounce",
"animation_prompt": "Bounce gently in place."
}Or create the mascot first, for free: POST /v1/mascots with "reference_asset_ids": ["UPLOADED_IMAGE_ID"]. Then animate with POST /v1/mascots/MASCOT_ID/generate, type: "animation" and source_image_asset_id, for the same 10 credits.
Keep its identity
- Square, clean image. Use a white or transparent background, at 1024 × 1024 or larger. A wide or tall image is center-cropped to a separate square source, and
source_image_crop(x,y,width,heightin pixels) picks the square yourself (image framing). - Describe motion, not looks. Say what moves and what stays still, such as "keeping the feet planted".
- Write down the rules.
PATCH /v1/mascots/MASCOT_IDwith acontextsuch as "always wears the red hat" saves them as hints for later generations. - Add more angles. Up to 6 references; three or four views in the same style give steadier poses.
POST /v1/mascots/MASCOT_ID/referenceswith anasset_idfrom/v1/upload.
Video models can still change small details, so check the result before you ship. A new take is paid again.
What you get
- An animation in every format: transparent WebM and HEVC
.mov, a stacked MP4 for Android and a plain MP4. - Hosted links when hosting is on, ready for your website. Exports to GIF, Lottie, ProRes and more are free.
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 the mascot I already have with Masko, following
https://masko.ai/docs/tutorials/animate-your-mascot
My character image: <public HTTPS URL, or the path in this project>.
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.
If you cannot upload a local file, ask me to upload it in Masko Studio first.
Never send my image anywhere else.
Animate it as it is, without drawing a new image: a five-second Standard loop
where it waves gently and keeps its feet planted.
Tell me the cost first and wait for my OK. It should be 10 credits.
Wait for the job, then give me the mascot ID and the WebM and HEVC links.