Skip to content
maskostudioDocs

All pages

  • Overview/docs/use-cases
  • Mobile app/docs/use-cases#mobile
  • Website/docs/use-cases#website
  • Desktop/docs/use-cases#desktop
  • AI agents/docs/use-cases#agents
  • Videos/docs/use-cases#videos
  • Brand/docs/use-cases#brand
  • Start building/docs/ai-agents
  • Set up once/docs/ai-agents#set-up-once
  • Ask in plain words/docs/ai-agents#ask-in-plain-words
  • What your agent does/docs/ai-agents#what-your-agent-does
  • MCP server/docs/mcp
  • Masko for Cursor/docs/ai-tools/cursor
  • Masko in ChatGPT/docs/ai-tools/chatgpt
  • Start here/docs/tutorials#start-here
  • All tutorials/docs/tutorials
  • Create your first mascot/docs/tutorials/first-mascot
  • Create an animated character/docs/tutorials/first-animation
  • Make a character talk/docs/tutorials/make-it-talk
  • Put your mascot on your website/docs/tutorials/mascot-on-your-website
  • Guide onboarding with a talking mascot/docs/tutorials/web-onboarding-mascot
  • Add a mascot that celebrates progress and welcomes users back/docs/tutorials/web-progress-companion
  • Add a talking support mascot in the bottom right/docs/tutorials/web-support-mascot
  • Show a mascot while your AI thinks/docs/tutorials/ai-loading-mascot
  • Give your AI agent a face/docs/tutorials/ai-agent-face
  • Animate the mascot you already have/docs/tutorials/animate-your-mascot
  • How to make Telegram stickers/docs/tutorials/telegram-stickers
  • How to make Discord stickers/docs/tutorials/discord-stickers
  • Quickstart: your first animation/docs/quickstart
  • Terminal quickstart/docs/terminal
  • API keys and workspaces/docs/authentication
  • CLI browser login/docs/authentication/cli
  • How mascots work/docs/how-mascots-work
  • Credits and costs/docs/credits
  • From text/docs/create/from-text
  • From an image/docs/create/from-image
  • From a website/docs/create/from-website
  • From a brand book/docs/create/from-brand-book
  • Reference images/docs/manage/references
  • What you can generate/docs/generation
  • Pose-to-animation walkthrough/docs/generate/workflow
  • Images and poses/docs/generate/images
  • Animations/docs/generate/animations
  • Talking animations/docs/generate/talking
  • Logos, backgrounds and stickers/docs/generate/design-assets
  • Cursor follower/docs/generate/cursor-follower
  • Batch generation/docs/generate/batch
  • Image and video exports/docs/manage/media-exports
  • Canvases and releases/docs/canvas
  • Build a canvas/docs/canvas/build
  • Canvas templates/docs/canvas/templates
  • Generate canvas assets/docs/canvas/generate-all
  • Export a canvas/docs/canvas/export
  • Overview and demo/docs/player
  • Play one animation/docs/player/one-animation
  • Play a canvas/docs/player/canvas
  • Hosting and file formats/docs/generate/cdn
  • File sizes/docs/generate/file-sizes
  • Float a mascot on your Mac/docs/integrations/desktop
  • Jobs and polling/docs/manage/jobs
  • Webhooks/docs/manage/webhooks
  • Manage mascots and assets/docs/manage/collections
  • All endpoints/docs/reference
  • Requests and responses/docs/reference/conventions
  • Errors and recovery/docs/reference/errors
  • Command line reference/docs/terminal/commands
  • TypeScript SDK/docs/sdk/typescript
  • Changelog/docs/reference/changelog
  • Migrate to mascots and canvases/docs/manage/studio-migration
Get an API key
Documentation

Migrate to mascots and canvases

API version 2026-09-26 (deployed September 27, 2026) renamed collections to mascots and moved canvases to /v1/canvases. Existing IDs, API keys and application credentials keep working; new integrations start at the quickstart.

Routes and fields

BeforeNow
/v1/collections/:id/.../v1/mascots/:id/...
/v1/collections/:id/canvases/:canvasId/v1/canvases/:canvasId
collection_id, collection_idsmascot_id, mascot_ids
collection_namemascot_name
source_collection_id, parent_collection_idsource_mascot_id, parent_mascot_id

A canvas now belongs to a project. Create it with POST /v1/canvases (project_id, mascot_id, name; no template_id, see canvas templates) and list with GET /v1/canvases?project_id=PROJECT_ID. Updates require expected_graph_hash, and generation, validation, history and export live under /v1/canvases/CANVAS_ID; see the canvas guide.

Shared routes need the version

/v1/jobs, /v1/assets and /v1/canvas-templates serve both versions. Send Masko-API-Version: 2026-09-26, ?api_version=2026-09-26 or a mascot_id query filter to get current field names; otherwise the old names are kept. The Masko-API-Version response header states the version used, and poll_url from /v1/mascots routes already carries api_version.

Old collection routes

/v1/collections URLs always use the older payloads but call the same services; they are adapters, not redirects. The current version rejects collection_id, and mixing old and new identifier names returns 400 even when the values match.

OpenAPI marks the old operations deprecated. They will be removed only after an announced cutoff, once no non-test calls have been seen for 30 consecutive days; none is announced yet. See the changelog.

Stored records keep their format

Graph documents, user metadata, frozen generation receipts and signed runtime delivery keep their stored format; only REST field names changed. Where an old record holds both an authoring collection ID and an older runtime mascot ID, the API now names them mascot_id and runtime_binding_id.

Set the animation price explicitly

Without animation_model, an animation bills the older rate of 5 credits per second, 4 to 10 seconds. Send "animation_model": "standard" (2 credits per second, 2 to 15 seconds) or "premium" (6 credits per second, 4 to 30 seconds); see credits and costs.