BoardGameGeek Reviews Scraper
Pricing
from $2.49 / 1,000 results
BoardGameGeek Reviews Scraper
Search BoardGameGeek by game name and extract public user reviews as clean, flat dataset rows. Choose the first best match or scrape all matching games, then collect recent or highest-rated reviews with an optional minimum rating filter.
Pricing
from $2.49 / 1,000 results
Rating
0.0
(0)
Developer
Inus Grobler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
BoardGameGeek Reviews Scraper lets you search BoardGameGeek by game name and collect public user reviews as clean, structured dataset rows.
This Actor is designed for simple review collection:
- search by game name
- choose the first best match or all matches
- get one review per row
- keep output flat and easy to analyze
- collect recent or highest-rated reviews
What It Does
Use this Actor when you want BoardGameGeek review data for research, analysis, monitoring, or enrichment.
You provide one or more game names, and the Actor returns public reviews for the matched BoardGameGeek titles.
Why It Is Useful
- No BoardGameGeek IDs required
- Each review is returned as a separate row
- Good for sentiment analysis, review analysis, and market research
- Works well when you want review text for multiple games in one run
Example Input
{"gameNames": ["Gloomhaven"],"matchMode": "first","maxReviewsPerGame": 50,"sortBy": "recent","minRating": 7}
Input Fields
gameNames: List of board game names to search on BoardGameGeek.matchMode:firstorall.maxReviewsPerGame: Maximum number of reviews to return for each matched game.sortBy:recentorhighest.minRating: Optional minimum rating filter from0to10.
Match Mode
first: Returns reviews for the single best BoardGameGeek match for each input name.all: Returns reviews for every matching BoardGameGeek title found for each input name.
Example:
- searching for
Catanwithfirstusually returnsCatan - searching for
Catanwithallmay also return related titles such asCatan Card GameorThe Rivals for Catan
Output
Each review is returned as its own dataset row.
Example review row:
{"type": "review","source": "boardgamegeek","scrapedAt": "2026-05-10T17:14:45.693Z","gameId": 174430,"gameName": "Gloomhaven","gameUrl": "https://boardgamegeek.com/boardgame/174430/gloomhaven","reviewId": "145330938","reviewUrl": null,"reviewerUsername": "Cdw165","reviewerUrl": "https://boardgamegeek.com/user/Cdw165","rating": 10,"ratingText": "10/10","reviewTitle": null,"reviewText": "The game that got me interested in playing more board games. The strategy. The cooperation. This game is a masterpiece. Now if only I could finish the campaign!","reviewDate": "2026-05-09","language": null,"commentCount": null,"thumbsUp": null,"status": "ok","errorMessage": null}
Example error row:
{"type": "error","source": "boardgamegeek","scrapedAt": "2026-05-10T17:14:45.693Z","gameId": null,"gameName": "Unknown Game Name","gameUrl": null,"status": "failed","errorMessage": "No BoardGameGeek matches were found for \"Unknown Game Name\"."}
Good To Know
sortBy: "recent"follows BoardGameGeek's recent review order.sortBy: "highest"follows BoardGameGeek's highest-rated review order.matchMode: "all"can return many matched games for broad search terms.- Reviews without a visible rating are still returned unless you set
minRating. - Some fields such as
reviewTitle,reviewUrl,commentCount,thumbsUp, andlanguagemay benullwhen they are not publicly available.
Run With Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"gameNames": ["Gloomhaven", "Catan"],"matchMode": "all","maxReviewsPerGame": 10,"sortBy": "recent","minRating": 7,}run = client.actor("thescrapelab/boardgamegeek-reviews-scraper").call(run_input=run_input)items = client.dataset(run["defaultDatasetId"]).list_items().itemsfor item in items[:10]:print(item["type"], item.get("gameName"), item.get("reviewerUsername"))print(item.get("reviewText", "")[:200])print("---")
Install the client first:
$pip install apify-client
Compliance
- Scrapes only publicly available review data
- Does not access private content
- Does not require login
- Does not attempt to bypass restrictions
Limitations
- BoardGameGeek may rate-limit or block some runs
- Broad names with
matchMode: "all"can produce many matched games - Public review quality varies from short opinions to long-form writeups