Miniature Market APIminiaturemarket.com ↗
Access Miniature Market product listings, pricing, categories, deals, and REVIEWS.io customer reviews via 5 structured API endpoints.
What is the Miniature Market API?
The Miniature Market API exposes 5 endpoints for querying board game and tabletop product data from miniaturemarket.com, including full-text search, category browsing, per-product details, and paginated customer reviews. The get_product_details endpoint returns brand, price, description, category, and an aggregate REVIEWS.io rating in a single call, while get_product_reviews delivers individual review text, author, date, and location per page of 15.
curl -X GET 'https://api.parse.bot/scraper/26e09133-6f78-441f-8988-c59975fc3b7d/search_products?page=1&order=name-asc&query=catan' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace miniaturemarket-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Miniature Market SDK — search, browse, drill into details and reviews."""
from parse_apis.miniature_market_api import MiniatureMarket, Sort, Category, ProductNotFound
client = MiniatureMarket()
# Search for products by keyword, sorted by price ascending. limit= caps total items.
for item in client.productsummaries.search(query="catan", order=Sort.PRICE_ASC, limit=5):
print(item.name, item.price)
# Browse a category — role-playing games, cheapest first.
for item in client.productsummaries.by_category(category=Category.ROLE_PLAYING_GAMES, order=Sort.PRICE_ASC, limit=3):
print(item.name, item.price_text)
# Drill into full product details from a summary.
first_deal = client.productsummaries.deals(limit=1).first()
if first_deal:
product = first_deal.details()
print(product.name, product.brand, product.price)
# Fetch a product directly by SKU and walk its reviews sub-resource.
try:
product = client.products.get(sku_or_url="mfg73002")
print(product.name, product.category, product.description[:60] if product.description else "")
for review in product.reviews.list(limit=3):
print(review.author, review.rating, review.comment[:80] if review.comment else "")
except ProductNotFound as exc:
print(f"Product not found: {exc.sku_or_url}")
print("exercised: productsummaries.search / by_category / deals / details / products.get / reviews.list")
Full-text search across Miniature Market's product catalog. Matches product names by keyword. Returns paginated summary results ordered by the chosen sort. Each result carries a URL suitable for drilling into full details via get_product_details.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for results (1-based) |
| order | string | Sort order for results |
| queryrequired | string | Search keyword (e.g. 'catan', 'pokemon', 'dungeons dragons') |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"items": "array of product summary objects with name, url, sku, price_text, and price fields",
"query": "string, the search query echoed back"
}
}About the Miniature Market API
Search and Browse
The search_products endpoint accepts a query string — such as 'catan' or 'dungeons dragons' — and returns paginated arrays of product summary objects, each containing name, url, sku, price_text, and price. The order parameter controls sort direction. The get_category_products endpoint works similarly but filters by a category slug such as board-games, trading-card-games, role-playing-games, miniatures-games, accessories, or deals. Both endpoints echo back the original query or category for easy response validation.
Product Details and Pricing
Pass any sku or full product url to get_product_details to retrieve the complete product record: name, brand, price (USD number), category, description text, and a rating object containing average and count sourced from REVIEWS.io. The rating field is null when no reviews exist for that SKU. SKU formats vary by brand — examples include mfg73002 and ffgcn3015.
Reviews
get_product_reviews accepts a sku and optional page parameter, returning 15 reviews per page. Each review object includes author, rating, title, comment, date, human_date, and location. The response also surfaces total_reviews and average_rating as aggregate stats, making it straightforward to calculate pagination depth before fetching subsequent pages.
Deals
get_deals is a focused shortcut for the clearance and last-chance catalog. It returns the same product summary shape as get_category_products (with category always fixed to 'deals') and supports the same page parameter, useful for monitoring price drops or inventory clearance without constructing a category query.
The Miniature Market API is a managed, monitored endpoint for miniaturemarket.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when miniaturemarket.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official miniaturemarket.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track real-time price changes on board game SKUs by polling
get_product_detailsfor thepricefield. - Build a board game search index by paginating through
search_productsresults for popular titles. - Aggregate REVIEWS.io review content from
get_product_reviewsto analyze customer sentiment by product category. - Monitor the deals feed via
get_dealsto alert users when clearance items appear or change price. - Populate a product catalog for a tabletop gaming app using
get_category_productswith slugs likeminiatures-gamesortrading-card-games. - Compute average community ratings per brand by combining
get_product_detailsbrandandrating.averagefields across SKUs. - Cross-reference product
skuvalues from search results with full descriptions by chainingsearch_productsandget_product_details.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.