What's new
Amalgadon now has a public API. Whether you're building a bot, a deck-tracking overlay, a spreadsheet, or just want to automate sharing your boards, there are four endpoints to help you do it.
Full documentation is available at /developers.
Endpoints
GET /api/cards
Returns the full Battlegrounds card database — every minion, hero, trinket, and spell that the site uses. Useful as a reference or for building your own search UI.
GET /api/lookup
Resolve a card name or ID to its full details: stats, card text, and a link to the card's page on Amalgadon.
GET /api/lookup?q=Brann+Bronzebeard
GET /api/lookup?q=Murloc+Tidecaller&type=minion
POST /api/encode
The main integration endpoint. Send a board as a human-readable JSON description and get back a share permalink and embed URL — ready to link users directly into the builder.
{
"hero": "Patches the Pirate",
"slots": [
{ "name": "Murloc Tidecaller" },
{ "name": "Brann Bronzebeard", "golden": true }
],
"lesserTrinket": "Rock Buddy",
"title": "My Murloc Build"
}
POST /api/share
Exchange a full build code for a short 6-character permalink ID. Most integrations can use /api/encode directly — it calls this internally and returns the URLs for you.
No card IDs required
The API is designed to work with card names rather than internal Hearthstone IDs. Names are fuzzy-matched, so minor typos and capitalisation differences are handled automatically. The response always includes a resolved block confirming exactly which cards were matched, so you can catch unexpected results during development.
Rate limits
Write endpoints (POST /api/encode and POST /api/share) are limited to 30 requests per 60 seconds per IP. Read-only endpoints (GET /api/cards, GET /api/lookup) have no limit.
Deep links
Once you have a build code or short ID you can construct direct links:
| URL | Behaviour |
|---|---|
/?remix=<code> | Opens the builder with the board pre-loaded |
/build/<id> | Read-only permalink with voting and remix |
/embed/<id> | Minimal view for <iframe> embeds |
The Discord bot is built entirely on this same API layer — so if you're looking for a real-world integration example, the bot's source is a good reference point.