Board Games API

Board Game Data API

175,000+ titles · ranks · mechanics · ratings · marketplace pricing. A clean REST + JSON board game database API — the BoardGameGeek alternative built for developers, with the pricing data nobody else exposes.

BGG API Alternative

Why the BoardGameGeek API isn't enough

The board game API space is fragmented. The official BGG XML2 API is queue-and-poll with severe rate limits. GitHub JSON wrappers are scrappy, unmaintained, and don't cover pricing. Nobody else offers a board game pricing API.

 BGG XML2 APIGitHub JSON wrappersTCGAPIs Board Games
FormatXMLJSON (scrappy, unmaintained)JSON (versioned, REST)
Rate limitsSevere + opaque (queued stats)None / undefinedDocumented, per-tier
Pricing dataNoneNoneYes — current + historical
Uptime SLANoneNoneYes
Auth modelIP throttlingVaries / noneAPI key (x-api-key)
7 Endpoints

Board Game Data API Endpoints

Authenticated via x-api-key. Every catalog field keyed by BGG ID for drop-in compatibility with existing BGG-keyed data.

GET/api/v2/boardgames/games
Public

List of supported board game catalogs and sources. Discovery endpoint — no auth required.

GET/api/v2/boardgames/titles
Hobby+

Paginated title list. Filter by ?categoryId, ?mechanicId, ?minPlayers, ?maxPlayers, ?yearPublished, ?minWeight, ?maxWeight. Pagination via ?limit and ?offset.

GET/api/v2/boardgames/title/:bggId
Hobby+

Single title lookup by BGG ID. Returns name, year, designers, publishers, mechanics, categories, min/max players, playing time, weight, average rating, and BGG rank.

GET/api/v2/boardgames/mechanics
Hobby+

Full taxonomy of game mechanics with stable mechanic IDs — feed straight into a filter dropdown.

GET/api/v2/boardgames/categories
Hobby+

Full taxonomy of categories with stable category IDs.

GET/api/v2/boardgames/prices/:bggId
Business+

Current marketplace pricing across providers for a board game title, keyed by BGG ID.

GET/api/v2/boardgames/prices/:bggId/history
Business+

Historical price time-series for a board game title. Filterable by date range.

Chainable Workflow

Titles → Detail → Prices

Three steps. Each carries the BGG ID forward, so you never have to reconcile keyspaces.

1

List Titles

/api/v2/boardgames/titles

Paginated list of board game titles. Filter by mechanic, category, player count, year, weight.

2

Title Detail

/api/v2/boardgames/title/:bggId

Use the BGG ID to fetch the full title record — designers, mechanics, ratings, BGG rank.

3

Marketplace Prices

/api/v2/boardgames/prices/:bggId

Use the BGG ID to fetch current marketplace pricing. The piece BGG itself does not expose.

Example Response

A real title: Brass: Birmingham. Catalog data and current marketplace pricing in one record.

GET /api/v2/boardgames/title/224517
{
  "success": true,
  "data": {
    "bggId": 224517,
    "name": "Brass: Birmingham",
    "yearPublished": 2018,
    "designers": ["Gavin Birnell", "Matt Tolman", "Martin Wallace"],
    "publishers": ["Roxley", "Maldito Games", "Funforge"],
    "mechanics": [
      "Hand Management",
      "Income",
      "Loans",
      "Network and Route Building",
      "Variable Set-up"
    ],
    "categories": ["Economic", "Industry / Manufacturing", "Post-Napoleonic", "Transportation"],
    "minPlayers": 2,
    "maxPlayers": 4,
    "playingTime": 120,
    "minAge": 14,
    "weight": 3.85,
    "rating": {
      "average": 8.6,
      "bayesAverage": 8.41,
      "usersRated": 58420
    },
    "rank": {
      "boardgame": 1,
      "strategygames": 1
    },
    "imageUrl": "https://cf.geekdo-images.com/x3zxjr-Vw5iU4yDPg70Jgw__original/...",
    "prices": {
      "currency": "USD",
      "low": 64.99,
      "avg": 78.50,
      "providers": [
        { "name": "miniaturemarket", "price": 64.99, "url": "..." },
        { "name": "amazon",          "price": 79.99, "url": "..." },
        { "name": "coolstuffinc",    "price": 84.99, "url": "..." }
      ],
      "lastUpdated": "2026-05-06T04:00:01.677Z"
    }
  }
}

What you can build

The catalog dimensions you expect from BGG, plus the marketplace pricing layer that unlocks new product categories.

Collection apps

Build "what do I own?" trackers without scraping BGG. Search by name, fetch by BGG ID, and surface ratings, mechanics and complexity weight for every title in a user's collection.

BGG dashboard alternatives

Render top-N leaderboards, mechanic explorers and designer pages — the same charts BGG shows, but in your own UI, fetched in a single JSON call instead of a queue-and-poll XML round-trip.

Buying-aid extensions

Browser extensions that compare retailer prices across marketplaces while showing BGG rank and rating inline. The marketplace pricing endpoints are the unique unlock here.

Retailer pricing tools

Game stores can pull historic price series to set their own shelf prices, spot trending titles, and surface "best price drop this week" widgets — keyed by BGG ID so it bridges to any existing inventory system.

Frequently Asked Questions

Is this a BoardGameGeek API alternative?

Yes. We index 175,000+ titles with the same catalog dimensions you get from BoardGameGeek — ranks, mechanics, categories, designers, publishers, year published, player counts, playing time, and community ratings — but expose them as clean JSON over REST instead of XML, with published rate limits and an SLA. Each title is keyed by its BGG ID, so existing BGG-keyed data ports across without any remapping.

Do you return JSON or XML?

JSON only. Every endpoint returns standard application/json with consistent envelopes. No XML, no HTML scraping, no per-game stat refresh polling — just request a title and get its full record back synchronously.

Does the API include board game pricing?

Yes. /api/v2/boardgames/prices/:bggId returns current marketplace pricing across providers, and /api/v2/boardgames/prices/:bggId/history returns the time-series. Pricing is the dimension nobody else in the board game API space covers — BoardGameGeek itself does not expose marketplace prices via API.

What are the rate limits?

Limits are tied to your subscription tier. Hobby includes 10,000 calls/month, Business 50,000 calls/month, and Unlimited removes the cap entirely. Limits are documented, predictable, and enforced per API key — not by IP throttling.

How does this differ from /catalog-api on the TCG side?

The /catalog-api endpoints cover trading card games (Magic, Pokemon, Yu-Gi-Oh, etc.) — singles, expansions, sets, with TCGPlayer/Cardmarket cross-references. The /boardgames-api endpoints cover board games and expansions — titles, mechanics, designers, BGG ranks, ratings — keyed by BGG ID. Two separate corpora, same auth and same response envelope shape.

What plan do I need?

The /games endpoint listing supported sources is public. Catalog endpoints (titles, title lookup, mechanics, categories) are Hobby+. Pricing endpoints are Business+. Same tier model as the rest of the TCGAPIs platform.

Stop fighting the BGG XML API

175,000+ titles. JSON over REST. Pricing data nobody else exposes. One x-api-key for the whole platform.