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

Logos, backgrounds and stickers

Turn your mascot into a logo or app icon, an SVG, a background or a sticker. Logos, SVGs and backgrounds return jobs to poll; a sticker can complete right away.

Rudy, the mascotGraphic app iconCut-paper markSoft-depth icon
Rudy, a puppy mascotRudy as a graphic app iconRudy as a cut-paper markRudy as a soft-depth icon

Three logos from one mascot; more styles on the mascot logo page.

A logo costs 5 credits. The references supply the identity, logo_description the composition (such as a face portrait with asymmetrical ears) and logo_style_instruction the treatment (such as flat colors or bold outlines), so you can change one without the other.

For a filled icon, name the background color and ask it to fill the canvas; the master keeps it. The transparent version, used for resized PNGs and the favicon, can lose colored backing shapes, so use the master for a filled badge. Output is raster; for vector paths, generate an SVG.

curl https://api.masko.ai/v1/mascots/MASCOT_ID/generate \
  -H "Authorization: Bearer $MASKO_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "logo",
    "name": "App icon",
    "logo_description": "A face-only icon of the character",
    "logo_style_name": "Flat",
    "logo_style_instruction": "Solid colors, simple silhouette, no gradients"
  }'

Logo presets and ideas

  • GET /v1/logo-styles: Studio's nine logo treatments with previews and full instructions (not the mascot styles at /v1/styles).
  • GET /v1/mascots/{id}/logos/suggestions: five free logo directions and three style suggestions, with optional variant_id and refresh=true. A direction's custom style has name and instruction, plus preset_id for an exact built-in match.

Send a preset as logo_style_id:

{
  "type": "logo",
  "name": "Playful portrait",
  "logo_description": "An oversized face portrait with a natural tilt",
  "logo_style_id": "graphic-app-icon"
}

The preset resolves to its full instructions; logo_style_name and logo_style_instruction override them. For several logos, use /generate-batch with one request each.

For safe retries, create the item first and send its item_id with a UUID request_id. The same ID and body return the existing job without a new charge; a new ID is a new paid attempt.

Logo imageSVG
Rudy's graphic app icon as an imageThe same icon as an SVG

POST /v1/assets/{id}/svg with a UUID request_id turns a completed logo master, image, transparent image or sticker into an SVG on the same item, for 30 credits.

curl -X POST 'https://api.masko.ai/v1/assets/ASSET_ID/svg' \
  -H "Authorization: Bearer $MASKO_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"request_id":"bba386b8-c756-4f7c-89a2-132862188bf4"}'
  • The 202 response has data.job_id, data.asset_ids.svg, data.estimated_cost and data.poll_url; the job can take several minutes.
  • Reuse the request_id after an interruption or a brief 409. A new ID is another paid generation; failures are refunded.
  • Read it with GET /v1/assets/{svg_asset_id} (file_url or cdn_url). In cdn-export, hosted logo items show it as logos.svg and image items as svg.

The source PNG stays unchanged. Paths are editable and scale cleanly, but fine details can differ from the source.

Background

A background costs 3 credits. It is an empty place in your mascot's own style, with no mascot in it: calm areas for your app's title and button, and a spot where the mascot's animation plays on top with the Masko player.

curl https://api.masko.ai/v1/mascots/MASCOT_ID/generate \
  -H "Authorization: Bearer $MASKO_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "background",
    "name": "Splash meadow",
    "purpose": "splash",
    "description": "A quiet meadow under a big sky"
  }'
  • purpose says what the background is for: splash, onboarding, signup, home, paywall, reward, empty, loading, landing or banner, or your own words such as "a quiz result page". It sets the shape and is saved with the job.
  • For five ideas of places from your mascot's world, free, call GET /v1/mascots/MASCOT_ID/backgrounds/suggestions?purpose=onboarding. Each suggestion has a title and a description to send back as description. For your own words, the answer also has the place that fits.
  • place overrides the shape and the layout: phone_screen (9:19.5, splash and onboarding), phone_header (10:9, the top of a home screen), square (1:1, cards and rewards), web_hero (16:9, the top of a landing page) or banner (21:9). Without it, the purpose decides, and phone_screen is the default.
  • description is optional. Without it, Masko picks a simple place that fits the mascot's style.
  • source_asset_id picks the mascot picture used as the style sample; otherwise its first reference is used. The mascot itself never appears in the background.
  • To change a background, send its source_image_asset_id with another place (the same place, drawn in that shape), edit_instructions such as "The same place at night.", or both. Each change costs 3 credits.
  • variant_id targets a named variant, for logos too.
  • The result is a 4K image. For an app, export a WebP at screen size with image exports.
  • In Masko Studio, six plain backgrounds are also drawn from your mascot's colours, free and instant: brand colour, soft gradient, quiet stage, sky with clouds, celebration rays and ground line. Each purpose offers the ones apps use most for it.
  • type: "scene" was replaced by type: "background" and returns 400.

Sticker

Ko with a trophyKo asleep
Ko holding a trophy, as a sticker with a white borderKo curled up asleep, as a sticker with a white border

POST /v1/assets/:id/sticker turns a completed mascot image into a transparent PNG sticker with a white border, for 1 credit, with no background-removal step. A completed result returns 201; check data.status.

From a completed animation with background removal, it makes an animated sticker in all four chat platform versions for 0 credits; poll GET /v1/assets/{sticker_id}/sticker. See animated sticker creation and the endpoint reference for source requirements.

Collect the result

Save data.job_id, follow job progress, and use the returned URLs (hosting and file formats) rather than building paths.