Board Game Geek API

Beginner's Pick Games & Comics / No Auth Required Beginner HTTPS
Free to Use Varies (check documentation)

Overview

BoardGameGeek's XML API 2 lets you access a massive database of over 100,000 board games, RPGs, and video games including ratings, reviews, and user collections. It returns XML responses, so you'll need a parser like xml2js in Node.js or Python's xml.etree. This API is great for building board game lookup tools, collection trackers, or recommendation systems.

Beginner Tip

BGG throttles rapid requests — add a short delay (500ms) between calls and always cache responses locally to avoid being blocked.

Available Data

Use case: Integrate board games, rpg and videogames data into web and mobile applications
Board Game Geek data via REST API

Example Response

JSON Response
{
  "id": 1,
  "name": "Board Game Geek",
  "data": "Board games, RPG and videogames",
  "source": "Board Game Geek"
}

Field Reference

item.@id Unique BoardGameGeek item ID used in all API calls.
item.name Array of name objects; the primary name has sortindex='1'.
item.statistics.ratings.average.@value Community average rating out of 10.
item.statistics.ratings.numvoters.@value Total number of community ratings submitted.
item.minplayers.@value Minimum number of players recommended for the game.
item.playingtime.@value Average playing time in minutes.

Implementation Example

Request
const url = "https://boardgamegeek.com/wiki/page/BGG_XML_API2";
const response = await fetch(url);
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

202 Accepted with empty body BGG queues requests for large datasets; the server is still processing.
Wait 5–10 seconds and retry the same URL — BGG will return data once processing is complete.
Receiving XML instead of JSON BGG's API only returns XML, not JSON.
Use an XML parsing library (xml2js for Node.js, xml.etree.ElementTree for Python) to convert the response.
429 Too Many Requests You are sending requests too quickly.
Add at least a 500ms delay between requests and cache results to avoid repeated identical calls.

Metadata Score Breakdown

Estimated from metadata — endpoint not independently tested

This score is estimated from observable metadata — HTTPS support, authentication model, declared CORS, and documentation reachability — because the API requires authentication or exposes no publicly testable endpoint. The five-signal breakdown is only shown for live-tested APIs.

Metadata estimate · endpoint not independently tested

Technical Specifications

Auth No Auth
HTTPS REQUIRED
CORS NO
Category Games & Comics
Difficulty Beginner
Verified: 2026-04-04

Similar APIs

View All →