BazaarDB APIbazaardb.gg ↗
Access The Bazaar card database via API: search items, skills, monsters, heroes, and patch notes with full tier data, tooltips, enchantments, and diffs.
What is the BazaarDB API?
The BazaarDB.gg API exposes 7 endpoints covering The Bazaar's full card catalog — items, skills, merchants, trainers, monsters, and events — with per-tier attributes, tooltip text, enchantments, drop sources, and hero tagging. Use search_cards to filter by hero, category, or free-text query and receive paginated results with art URLs and tag arrays, or call get_card by exact name to retrieve a single card's complete tier breakdown and transform data.
curl -X GET 'https://api.parse.bot/scraper/49e1e7c5-ab05-423d-9afa-ac05d9f04241/search_cards?limit=5&category=all&page=0&order=ascending&query=sword&sort_by=Auto&show_unobtainable=False' \ -H 'X-API-Key: $PARSE_API_KEY'
Search and list cards with optional text search, category filtering, hero filtering, and pagination. Returns rich card data including all tiers, base attributes, tooltips, enchantments, tags, heroes, and art URLs. Paginates via page number (0-indexed); each page maps to one site listing page of 10 cards, trimmed to limit. The monsters category is listed by the site on a single page, so for it the page and limit inputs slice that full list locally (page*limit offset). total is the site's count of matching cards. The optional hero input restricts results to cards tagged with that hero (one of the names returned by list_heroes); monsters carry no hero tag, so a hero filter on that category yields an empty list. Each Card includes full detail: tiers, enchantments, tooltips, drop sources.
| Param | Type | Description |
|---|---|---|
| hero | string | Hero name to filter by, case-insensitive (e.g. 'Vanessa', 'The Dragons'); use a name from list_heroes.heroes[*].name. Omitted means no hero filter. |
| page | integer | Page number (0-indexed) |
| limit | integer | Maximum number of cards to return per page |
| order | string | Sort order |
| query | string | Text search query (e.g. 'sword', 'poison') |
| sort_by | string | Sort field |
| category | string | Card category filter |
| show_unobtainable | boolean | Include unobtainable cards in results |
{
"type": "object",
"fields": {
"page": "integer current page number",
"cards": "array of card objects with full details",
"count": "integer number of cards returned in this response",
"limit": "integer requested limit",
"total": "integer total number of matching cards"
},
"sample": {
"data": {
"page": 0,
"cards": [
{
"id": "e5af5b7c-2e8f-4135-8e14-8d1ea71908de",
"art": "https://s.bazaardb.gg/v1/z15.0/[email protected]?v=6",
"uri": "/card/160zpnfd7sbn7y77326jz1zl77j/Sword-of-Swords",
"name": "Sword of Swords",
"size": "Medium",
"tags": [
"Item",
"Medium",
"Weapon"
],
"type": "Item",
"tiers": {
"Diamond": {
"active_tooltips": [
0,
1
],
"override_attributes": {}
},
"Legendary": {
"active_tooltips": [
0,
1
],
"override_attributes": {}
}
},
"heroes": [
"Common"
],
"quests": null,
"tooltips": [
{
"text": "Deal {ability.0} Damage",
"type": "Active",
"condition": null
}
],
"art_large": "https://s.bazaardb.gg/v1/z15.0/[email protected]",
"base_tier": "Legendary",
"transform": null,
"dropped_by": [
{
"day": 10,
"tier": "Legendary",
"title": "Morguloth",
"available": "Day 10"
}
],
"hidden_tags": [
"Damage"
],
"display_tags": [
"Weapon",
"Relic"
],
"enchantments": {
"Golden": {
"tags": [],
"tooltips": [
"This has double value"
]
}
},
"base_attributes": {
"BuyPrice": 64,
"Multicast": 1,
"SellPrice": 32,
"CooldownMax": 5000,
"DamageAmount": 150
},
"tooltip_replacements": {
"{ability.0}": {
"Fixed": 150
}
}
}
],
"count": 5,
"limit": 5,
"total": 7
},
"status": "success"
}
}About the BazaarDB API
Card Search and Lookup
search_cards accepts up to seven optional parameters: query for free-text search, category to restrict to a card type (Item, Skill, Merchant, Trainer, Monster, Event), hero to filter by a specific hero's pool, sort_by and order for ordering, page (0-indexed) and limit for pagination. Each card object in the cards array includes the card's id, name, size (Small, Medium, or Large), type, tags, heroes, art URL, and a tiers object mapping tier names to their override_attributes and active_tooltips. The total field tells you the full match count across all pages. get_card performs a case-insensitive exact name match and returns the same fields plus quests data and uri; an unknown name returns input_not_found.
Hero Vocabulary and Card Pool Sizes
list_heroes returns every hero the site recognizes — including the shared Common pool — with each hero's display name and URL slug. Those names are the values accepted by the hero filter in search_cards and by get_hero. Calling get_hero with a hero name returns item_count, skill_count, and total_cards for that hero's tagged card pool, letting you quickly gauge how large each hero's catalog is without paginating through the full search results.
Patch Notes and Change Tracking
list_patches returns all generated patch-note entries newest-first, each with a slug, display title, ISO 8601 date, and a change-size label (XS through XL, or No change). Pass any slug to get_patch to get the full diff for that patch: changed cards are grouped into sections by hero (e.g. Vanessa Items, Other Items), and each changed card lists field-level diffs with a label (such as Tooltip or Cooldown) and before/after values. The canonical boolean indicates whether the data derives from game files, and previous_slug identifies the baseline version the diff is computed against.
Raw String Export
export_card_strings provides a compact paginated export of source English strings for the card catalog. Each record in records carries the card's id, display name, category (Item, Skill, EventEncounter, or CombatEncounter), and a tooltips array of verbatim base tooltip strings including placeholders. This is useful for building search indexes, tooltip parsers, or localization tooling. The has_more boolean makes iteration straightforward; page_size goes up to 100 records per request.
The BazaarDB API is a managed, monitored endpoint for bazaardb.gg — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bazaardb.gg changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official bazaardb.gg API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a deck-builder tool that filters cards by hero using
search_cardswith theheroparameter and displays art from theartURL field. - Track balance changes across patches by iterating
list_patchesand callingget_patchto collect field-level diffs for every changed card. - Generate a hero comparison table using
get_heroto show item_count and skill_count for each entry fromlist_heroes. - Index the full card catalog for autocomplete by paginating
export_card_stringsand storing each card'snameandtooltipsarray. - Detect when a specific card's tier attributes changed by monitoring
get_patchsections for the card's name across consecutive patch slugs. - Render a card detail page for a fan site by calling
get_cardand consuming thetiersobject to display per-tier stats andactive_tooltips. - Categorize the card pool by type and size using
search_cardswithcategoryfiltering and reading thesizeandtagsfields on each result.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does BazaarDB.gg have an official developer API?+
What does `get_patch` return, and how does it differ from `list_patches`?+
list_patches returns a summary list of all patches with their slug, title, date, and size label. get_patch takes a single slug and returns the full diff for that patch: card changes grouped into hero sections, with field-level diffs showing the label (e.g. Cooldown, Tooltip) and before/after values. The canonical boolean and previous_slug field are only present on get_patch responses.Does the API expose player win rates, matchup statistics, or community deck data?+
Are unobtainable or unreleased cards included in search results?+
search_cards results. Set the show_unobtainable parameter to true to include them. The export_card_strings endpoint does not have an equivalent filter, so its records may include cards across all availability states.Does the API return card localization strings in languages other than English?+
export_card_strings in the tooltips array and name field. Localized strings for other languages are not part of the current endpoints. You can fork this API on Parse and revise it to add a localized-strings endpoint if the site surfaces translations.