For developers
The mssgs sticker API
Every sticker as JSON: packs, search by word or tag, and whole packs as ZIP. Free, with a key you make below. The sticker files are plain URLs that need no key, so an app can hotlink them.
Quick start
- Create a key with the form. It is shown once, so keep it somewhere safe.
- Send it with every call as
Authorization: Bearer mst_…(orX-API-Key, or?api_key=). - Credit mssgs-stickers.com in your app or site. Every answer carries the line to use in
credit.
curl "https://mssgs-stickers.com/api/v1/stickers?q=thanks&limit=5" \
-H "Authorization: Bearer mst_…"
Endpoints
| Call | Answers with |
|---|---|
GET /api/v1/packs | Every pack: slug, name, series, description, count, cover thumbnail, page and ZIP URL. |
GET /api/v1/packs/{slug} | One pack with all of its stickers. |
GET /api/v1/packs/{slug}/download | The pack as a ZIP: each sticker's APNG, its WebP poster, and a CREDITS.txt. 60 an hour. |
GET /api/v1/stickers | Stickers, filtered and paged: q (words), pack (slug), tag, limit (1–200, default 50), offset. The answer has total and a next URL. |
GET /api/v1/stickers/{id} | One sticker. |
GET /api/v1/tags | Every tag with its count, most used first. |
GET /api/v1/me | Your key: its project, when it was made, how many calls it has made. |
A sticker
{
"id": "funny-drama-cat-popcorn",
"name": "Popcorn Witness",
"pack": "drama-cat",
"tags": ["drama", "popcorn", "watching", "gossip", "interested"],
"description": "The cat eats popcorn while watching increasingly dramatic gossip.",
"width": 320, "height": 320,
"animated": true, "frames": 16, "fps": 16, "duration_ms": 3000,
"animation": {
"url": "https://mssgs-stickers.com/files/sticker-funny-drama-cat-popcorn-v5.apng",
"type": "image/apng", "bytes": 304540, "sha256": "c41bc0b91f17dbd124d6ca5e07632123eda7b6bc6f7b47ea768f399d290f75aa"
},
"poster": { "url": "https://mssgs-stickers.com/files/sticker-funny-drama-cat-popcorn-v5.webp", "type": "image/webp", … },
"thumbnail": { "url": "https://mssgs-stickers.com/thumbs/sticker-funny-drama-cat-popcorn-v5.webp", "type": "image/webp", "width": 160, "height": 160 },
"page": "https://mssgs-stickers.com/stickers/funny-drama-cat-popcorn",
"credit": "Stickers by mssgs-stickers.com"
}
The animation is an animated PNG with a transparent background; every browser plays it in a plain <img>, and anything that does not know APNG shows its first frame. The poster is a still WebP for reduced motion and previews.
Limits and caching
- 120 API calls a minute per key. Every answer says how many are left in
X-RateLimit-Remaining; past the limit you get429withRetry-After. - The file URLs have no key and no limit, and are cached for a year: a sticker that changes gets a new file name, so cache them as long as you like.
- The API answers any origin (CORS), so it works from a browser. A key in browser code is visible to your visitors; that is fine for this API, which only reads public stickers.
Errors
401 {"error": {"code": "missing_key" | "invalid_key", "message": "…"}}
404 {"error": {"code": "pack_not_found" | "sticker_not_found" | "not_found", …}}
429 {"error": {"code": "rate_limited", …}}
A key that is misused can be revoked; make a new one if yours stops working.