Tabletop Retail Price Scraper — CoolStuffInc & Miniature Market
Pricing
Pay per event
Tabletop Retail Price Scraper — CoolStuffInc & Miniature Market
Scrape board game, miniatures, and tabletop product pricing from CoolStuffInc and Miniature Market. Extracts sale price, MSRP, stock status, SKU, publisher, and category for each listing — ideal for MAP compliance monitoring, competitive repricing, and first-party retail price research.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape board game, miniatures, and tabletop product pricing from CoolStuffInc and Miniature Market. Extracts sale price, MSRP, stock status, SKU, publisher, and category for each listing — ideal for MAP compliance monitoring, competitive repricing, and first-party retail price research.
What it scrapes
| Retailer | Categories covered | Data points |
|---|---|---|
| CoolStuffInc | Board Games (all mechanics), Spotlight Products | Sale price, stock status, SKU, UPC, image, breadcrumb category |
| Miniature Market | Board Games, Miniature Games, Tabletop RPGs, Family Games | Sale price, MSRP/list price, stock status, SKU, publisher, image, category |
Output
Each record contains:
| Field | Type | Description |
|---|---|---|
retailer | string | coolstuffinc or miniaturemarket |
product_id | string | Numeric page ID (CSI) or SKU slug (MM) |
title | string | Product title |
product_url | string | Canonical product page URL |
product_type | string | Product type — board game, minis, sealed, singles |
publisher | string | Publisher or manufacturer |
category | string | Category path from site navigation |
msrp | number | Manufacturer's suggested retail price (Miniature Market only) |
sale_price | number | Current retail price |
currency | string | Currency code (USD) |
in_stock | boolean | Whether the item is available to buy |
stock_status | string | In Stock, Out of Stock, Preorder, or Backorder |
sku | string | Retailer SKU |
upc | string | Universal Product Code if shown on product page |
image | string | Product image URL |
bgg_id | string | BoardGameGeek ID (when inferable from page links) |
scraped_at | string | ISO 8601 timestamp |
How to use
Full category crawl (default)
Leave Start URLs empty and run with default settings. The actor walks all board game and hobby categories on both retailers and collects every listed product.
{"maxItems": 100,"sources": ["coolstuffinc", "miniaturemarket"]}
Targeted product or category URLs
Provide Start URLs to scrape specific products or category pages directly, bypassing the full crawl:
{"maxItems": 10,"startUrls": ["https://www.coolstuffinc.com/p/252150","https://www.miniaturemarket.com/asminar01.html","https://www.miniaturemarket.com/board-games.html"]}
- CoolStuffInc product URLs:
https://www.coolstuffinc.com/p/<id> - CoolStuffInc listing pages:
https://www.coolstuffinc.com/page/<id> - Miniature Market product URLs:
https://www.miniaturemarket.com/<sku>.html - Miniature Market category URLs:
https://www.miniaturemarket.com/<category>.html
Single retailer
{"maxItems": 500,"sources": ["coolstuffinc"]}
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
maxItems | integer | 10 | Maximum records to scrape across both retailers. Remove limit or set high for a full crawl. |
sources | array | ["coolstuffinc","miniaturemarket"] | Which retailers to include. |
startUrls | array | — | Optional direct product or category URLs. When provided, skips the category hub crawl. |
Crawl strategy
CoolStuffInc: The actor seeds from the Board Games hub (/page/35), collects subcategory listing page links, then paginates each (?resultsperpage=25&page=N) to collect product detail URLs (/p/<id>). Pricing uses schema.org microdata (itemprop="price", itemprop="availability").
Miniature Market: The actor seeds from four top-level category pages (Board Games, Miniature Games, Tabletop RPGs, Family Games), paginates each (?p=N) to collect product URLs, then scrapes detail pages. Pricing uses Open Graph meta tags (product:price:amount, product:price:currency). MSRP comes from the list-price element (aria-label="Retail Price: $XX.XX").
Concurrency is set to 8 with a 45-second request timeout. No JavaScript rendering is required — both sites are server-rendered.
Notes
- Board game inventory on Miniature Market alone is approximately 13,000 SKUs across 369 pages. A full two-retailer crawl will produce tens of thousands of records.
- CoolStuffInc displays UPC codes on some product pages — collected when present.
- BGG ID cross-linking is included when a direct BoardGameGeek link is found on the product page.
- Proxy: datacenter (no residential required for these sites).