Generate mascots, create animations, and manage your assets programmatically. Everything you can do in the dashboard, you can do via the API.
All API requests require an API key sent via the Authorization header. Create keys in your dashboard.
Authorization: Bearer mv_live_your_api_key_hereThe base URL for all endpoints is https://mascotvibe.com/api/v1
/api/v1/generateGenerate a set of mascot variations using AI. Costs 5 credits per generation (produces 4 variations).
{
"description": "A friendly mascot for a developer tools company",
"style": "cartoon", // kawaii | cartoon | 3d | flat | pixel | hand-drawn
"websiteUrl": "https://example.com" // optional, for brand context
}{
"mascots": [
{
"id": "uuid-here",
"name": "Pixel",
"imageUrl": "https://storage.example.com/mascot.png",
"style": "cartoon"
}
]
}curl -X POST https://mascotvibe.com/api/v1/generate \
-H "Authorization: Bearer mv_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"description": "A friendly robot for a dev tools startup",
"style": "cartoon"
}'/api/v1/animateStart an animation job for a mascot. Costs 20 credits for 5s, 40 credits for 10s.
{
"mascotId": "uuid-of-your-mascot",
"animationType": "wave", // wave | celebrate | idle | think | dance | etc.
"duration": 5, // 5 or 10 (seconds)
"size": 512 // 128 | 256 | 512 | 720
}{
"animationId": "uuid-here",
"status": "processing"
}curl -X POST https://mascotvibe.com/api/v1/animate \
-H "Authorization: Bearer mv_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"mascotId": "your-mascot-id",
"animationType": "wave",
"duration": 5,
"size": 512
}'/api/v1/animations/:idCheck the status of an animation job and get download URLs when complete.
{
"id": "uuid-here",
"status": "done", // queued | processing | done | failed
"animationType": "wave",
"duration": 5,
"size": 512,
"webmUrl": "https://...", // null until done
"mp4Url": "https://...",
"apngUrl": "https://...",
"movUrl": "https://...",
"spritesheetUrl": "https://...",
"createdAt": "2026-03-11T12:00:00Z",
"completedAt": "2026-03-11T12:02:00Z"
}curl https://mascotvibe.com/api/v1/animations/your-animation-id \
-H "Authorization: Bearer mv_live_your_key"/api/v1/mascotsList your mascots with pagination. Supports limit and offset query params.
{
"mascots": [
{
"id": "uuid-here",
"name": "Pixel",
"description": "A friendly robot mascot",
"style": "cartoon",
"imageUrl": "https://...",
"sourceType": "generated",
"createdAt": "2026-03-11T12:00:00Z"
}
],
"total": 12,
"limit": 20,
"offset": 0
}curl "https://mascotvibe.com/api/v1/mascots?limit=10&offset=0" \
-H "Authorization: Bearer mv_live_your_key"/api/v1/creditsCheck your current credit balance.
{
"credits": 450
}curl https://mascotvibe.com/api/v1/credits \
-H "Authorization: Bearer mv_live_your_key"60
requests / minute
5
API keys / account
100
max mascots / request
Rate limits are applied per API key. When you exceed the limit, the API returns a429status code. Wait and retry after a short delay.
| Code | Meaning |
|---|---|
400 | Bad request. Check the request body for missing or invalid fields. |
401 | Unauthorized. API key is missing, invalid, or deactivated. |
402 | Insufficient credits. Purchase more at /pricing. |
404 | Resource not found. The mascot or animation ID does not exist. |
429 | Rate limit exceeded. Wait and retry. |
500 | Internal server error. Try again or contact support. |
503 | Service unavailable. The generation service is temporarily down. |
All error responses return JSON with an error field:
{ "error": "Insufficient credits" }