Custom Slime API
Create your own custom slime by choosing a color palette, equip it as your display avatar, and share it in the public gallery.
Section 01 — Authentication
API Key
All endpoints require a Bearer token. Your API key is available in the VibeMon app under Profile > Setup Guide > API Key.
# Include in every request
$ curl -H "Authorization: Bearer YOUR_API_KEY" ...Section 02 — Create
POST/api/custom-slime
Create a new custom slime by choosing a color palette. Slimes are palette-only — the shape comes from VibeMon's built-in rig, not custom sprite art.
Request Body
namestringSlime name (1-30 chars)requiredpaletteobject5 required keys "1"-"5" + 3 optional keys "6"-"8", values #RRGGBBrequireddescriptionstring?Optional description (max 200 chars)is_publicbooleanShow in public gallery (default: false)Example
curl -X POST https://sirpdtcwawcidhgtltps.supabase.co/functions/v1/api/custom-slime \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My Slime",
"palette": {
"1": "#1a1a2e",
"2": "#e94560",
"3": "#533483",
"4": "#0f3460",
"5": "#ffcc00"
},
"is_public": true
}'Response example
{
"ok": true,
"custom_slime": {
"id": "a1b2c3d4-...",
"name": { "en": "My Slime", "ko": "My Slime" },
"palette_override": { "1": "#1a1a2e", ... },
"sprites": null,
"is_public": true,
"like_count": 0,
"created_at": "2026-04-14T..."
}
}Section 03 — Palette keys
Palette Keys
Custom slimes are palette-only — the shape is VibeMon's shared rig, not per-slime pixel art. Keys "1"–"5" are required; "6"–"8" are optional (derived automatically if omitted):
"1"Outline"2"Highlight"3"Body"4"Eyes"5"Blush"6"Dark (optional)"7"Shine (optional)"8"Mouth (optional)
Default palette
{
"1": "#1a1a2e", // outline — required
"2": "#e94560", // highlight — required
"3": "#533483", // body — required
"4": "#0f3460", // eyes — required
"5": "#ffcc00", // blush — required
"6": "#0d0d1a", // dark — optional, derived if omitted
"7": "#f0f0ff", // shine — optional, derived if omitted
"8": "#1a1a2e" // mouth — optional, derived if omitted
}sprites field on older clients for compatibility, but it is validated only and never stored — every custom slime renders through the same shared rig.Section 04 — Equip & gallery
Use Your Slime
Equip as display avatar
Equipping a custom slime overrides your visual in social contexts (live feed, profile, share cards). Your garden slime continues unaffected.
curl -X POST https://sirpdtcwawcidhgtltps.supabase.co/functions/v1/api/custom-slime/SLIME_ID/equip \ -H "Authorization: Bearer YOUR_API_KEY"
Browse the gallery
Public custom slimes are available in the gallery. Cursor-based pagination.
curl "https://sirpdtcwawcidhgtltps.supabase.co/functions/v1/api/custom-slime/gallery?limit=20" \ -H "Authorization: Bearer YOUR_API_KEY"
Section 05 — Endpoints
All Endpoints
/custom-slimeCreate a custom slime
/custom-slimeList your custom slimes
/custom-slime/:idGet one by ID
/custom-slime/:idUpdate (owner only)
/custom-slime/:idDelete (owner only)
/custom-slime/:id/equipEquip as display avatar
/custom-slime/equipUnequip display avatar
/custom-slime/galleryPublic gallery (paginated)
/custom-slime/:id/likeToggle like (public only)
Base URL: https://sirpdtcwawcidhgtltps.supabase.co/functions/v1/api
Section 06 — Limits
Rules & Limits
Free Plan
- Up to 1 custom slime
- +1 more per 200 XP slot purchase
- Public gallery access
- Like other slimes
Pro Plan
- Up to 20 custom slimes
- +1 more per 200 XP slot purchase
- Public gallery access
- Like other slimes
- Sprites: not customizable — every custom slime shares VibeMon's built-in rig
- Palette: 5 required keys ("1"-"5") + 3 optional keys ("6"-"8"), hex format #RRGGBB
- Name: 1-30 characters
- Description: optional, max 200 characters
- Max payload: 50KB