API and CDN websites might be down for a minute or two. Hosting provider went maintenance due to them patching virtualization nodes for CVE-2026-99999. We will post an update when the maintenance ends.
~ add original rarities to models if we have data on them
GET /models/:gift - list of all gift models. add ?sorted to sort by rarity
GET /backdrops/:gift - list of all gift backdrops. add ?sorted to sort by rarity
GET /symbols/:gift - list of all gift symbols. add ?sorted to sort by rarity
GET /gift/:gift - detailed info about a certain gift
GET /emoji/:gift - get customEmojiId mapping for a specific gift
Due to how Resistance Dog's rarity works, the methods listed above were updated and now contain such fields as originalRarity and originalRarityPermille if our API has data on them.
+ add everything related to crafts
GET /crafts - gifts that are craftable right now or have crafted models, with every crafted model (tier, customEmojiId) and the crafted emoji/sticker set links
+ add everything related to auctions
GET /auctions - every gift auction with recorded rounds: dates, rounds, gifts per round, gifts sold, stars spent, average price paid, finished flag. newest first
GET /auction/:gift/rounds - round-by-round history of a gift auction (gift name, auction slug or id): round times, gifts sold, min bid, clearing price, top bid, winning bids sum, bid levels, gifts left
~ add SVG generation for gift models (including originals)
GET /model/:gift/:model.svg - download the first frame of this gift model as an svg
GET /original/:id.svg - download the first frame of this gift as an svg
~ add rarity and rarityPermille to every model, backdrop and symbol
GET /models/:gift - list of all gift models. add ?sorted to sort by rarity
GET /backdrops/:gift - list of all gift backdrops. add ?sorted to sort by rarity
GET /symbols/:gift - list of all gift symbols. add ?sorted to sort by rarity
GET /gift/:gift - detailed info about a certain gift
GET /emoji/:gift - get customEmojiId mapping for a specific gift
(+ all of the /info routes)
~ add backdropId, customEmojiId fields
GET /backdrops/:gift - list of all gift backdrops. add ?sorted to sort by rarity
GET /backdrop/:gift/:backdrop/info - detailed info about a certain gift backdrop
~ return full models, backdrops and symbols
GET /gift/:gift - detailed info about a certain gift
~ fix model emojis
GET /emoji/:gift - get customEmojiId mapping for a specific gift
~ fix similar symbol names
GET /symbol/:gift/:symbol - download this gift pattern
~ errors are now JSON
GET * - { error, message, statusCode }
Rarity used to come as rarityPermille on some routes and as a percentage in rarity on others. Now every model, backdrop and symbol has both, everywhere. Crafted models are now sorted by tier (legendary → epic → rare → uncommon) and still go first. Models with the same rarity are now ordered by name.
/gift/:gift now returns the same entries as /models, /backdrops and /symbols. Backdrops now always include backdropId and customEmojiId.
/emoji/:gift had outdated rarities for some gifts (Desk Calendar, Jingle Bells, Big Year, etc.). They now match /models. Every model is listed now, even if it has no emoji (customEmojiId: null). Cookie Heart's Strawberry/Strawberry-1 and Santa Hat's Rave-1 had the wrong emoji, which is fixed now.
Symbols like Sea Horse and Seahorse used to resolve to the same symbol. Both work properly now. Some symbol lists also contained leftover raw Telegram document data, which is removed.
Errors used to be plain text and are now JSON. Status codes and messages are the same, but if you read the error body as text, you might want to update your code.
If anything looks off, please tell us in the comments. Thanks!