OrbTop

Tabletop Retail Price Scraper — CoolStuffInc & Miniature Market

ECOMMERCEGAMES

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.

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).