BigBadToyStore Scraper
Pricing
from $3.00 / 1,000 results
BigBadToyStore Scraper
Scrape BigBadToyStore.com - search collectibles by keyword, browse by department or toy line/brand, or look up product URLs directly. Get price, brand, manufacturer, pre-order status, release date, SKU, packaging variation, images, and product URLs.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Scrape BigBadToyStore.com — a specialty retailer of action figures, statues, model kits, trading cards, and pop-culture collectibles. Search by keyword, browse a department (category) or a curated toy line/brand, or look up specific product URLs directly. Get price, brand/line, manufacturer, pre-order status, estimated release date, SKU, packaging variation, images, and product URLs. No auth, no cookies, no proxy configuration required from you.
What this actor does
- Four modes:
search(keyword),byDepartment(category browse),byBrand(toy line/franchise browse),byUrl(direct lookup of specific product URLs) - Cross-cutting filters: department, brand, manufacturer/company, sort order, availability status, price range, pre-order-only — combine any of them regardless of mode
- Pre-order aware: flags pre-order items, extracts the "estimated to arrive" release window BigBadToyStore shows for them, and can filter down to pre-orders only
- Empty fields are omitted — every record only contains fields BigBadToyStore actually populated for that product
Output per product
itemNumber— BigBadToyStore's internal product IDsku— the specific packaging/variation SKU used for orderingpackagingVariation— human-readable label for that SKU's packaging/condition variant, when BigBadToyStore shows one (e.g."BBTS Mint Packaging")title,descriptionbrand— the toy line/franchise (e.g. "Transformers", "Marvel")brandId— numeric facet ID forbrand(matches thebrandIdinput enum)company— manufacturer (e.g. "Hasbro", "Takara Tomy", "Hot Toys")companyId— numeric facet ID forcompany(matches thecompanyIdinput enum)character— primary character, when BigBadToyStore tags oneseries— array of series/sub-line tags (e.g. "Studio Series", "Masterpiece")price,priceCurrencyavailability—In Stock,Pre-Order,Sold Out, orWaitlistisPreOrder— booleanestimatedReleaseDate— e.g."May 2027"(pre-order items only, when shown)itemCondition— e.g.NewimageUrlproductUrlrecordType: "product",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search / byDepartment / byBrand / byUrl |
searchQuery | string | Transformers | Keyword query (mode=search) |
departmentId | select | – | Department (required for byDepartment; optional filter elsewhere) |
brandId | select | – | Curated toy line/brand (required for byBrand unless customBrandName set; optional filter elsewhere) |
customBrandName | string | – | Free-text brand/line name, used as a keyword-search fallback for byBrand when not in the curated list |
companyId | select | – | Manufacturer/publisher filter, any mode |
productUrls | array | – | Specific BigBadToyStore product URLs to look up directly (required for byUrl) |
sortOrder | select | Relevance | Relevance / New / PriceHighToLow / PriceLowToHigh / Discount |
availabilityStatuses | array | ["InStock","PreOrder"] | Which stock states to include |
minPrice / maxPrice | number | – | USD price range |
preorderOnly | boolean | false | Keep only Pre-Order items |
maxItems | int | 15 | Hard cap (1–2000). Kept modest by default — see "How fast is this?" below |
Example: keyword search
{"mode": "search","searchQuery": "Marvel Legends","maxItems": 30}
Example: browse a department, in-stock only, cheapest first
{"mode": "byDepartment","departmentId": "45792","sortOrder": "PriceLowToHigh","availabilityStatuses": ["InStock"],"maxItems": 50}
Example: browse a toy line, scoped to one manufacturer
{"mode": "byBrand","brandId": "1971","companyId": "28","maxItems": 40}
Example: custom brand not in the curated list
{"mode": "byBrand","customBrandName": "Diaclone","maxItems": 20}
Example: pre-order items only for a toy line
{"mode": "byBrand","brandId": "1971","preorderOnly": true,"maxItems": 30}
Example: look up specific product URLs directly
{"mode": "byUrl","productUrls": ["https://www.bigbadtoystore.com/product/transformers-kuro-kara-kuri-skywarp-action-figure-192744"]}
Use cases
- Price monitoring — use
mode=byUrlto track price and stock status for specific SKUs you already know - Pre-order tracking — combine
preorderOnlywithisPreOrder+estimatedReleaseDateto build release alerts - Collector tooling — build a personal catalog/wishlist scraper for a franchise
- Market research — compare toy-line coverage and price bands across departments, using the
byBrand/byDepartmentbrowse modes - Resale/arbitrage research — pull SKU-level and packaging-variation-level pricing across multiple lines
Limitations
- Speed. BigBadToyStore fronts its site with Cloudflare, which challenges non-browser traffic from some cloud IPs. This actor auto-detects the challenge and falls back to a real anti-detect browser (no residential proxy) to get past it, which costs roughly 10-20 seconds per product on runs where the fallback engages. Budget accordingly for large
maxItemsvalues. - Curated brand/line list.
brandIdcovers the ~35 most popular toy lines/franchises (by product count, across departments). BigBadToyStore's brand facet has many more entries with internal numeric IDs we don't enumerate; usecustomBrandName(keyword-search fallback) ormode=searchfor anything not listed. - Sold Out / Waitlist availability. In the current catalog these two statuses are held almost entirely by BigBadWorkshop crowdfunding "project" pages (
/project/...), a different content type without standard product/price/SKU data. This actor intentionally scopes to retail/product/...pages, so filtering toSoldOut/Waitlistalone can return 0 results. - US market / USD only. BigBadToyStore is a single-market (US, USD) retailer with no country/locale variants, so no market/language input is exposed.
- No review or rating data. BigBadToyStore product pages don't expose structured customer reviews/ratings, so this actor doesn't emit them.
FAQ
Do I need a proxy or login? No. The actor works on the Apify free plan with zero configuration beyond the input fields above. It automatically handles BigBadToyStore's anti-bot protection internally (see "How fast is this?" below) — no residential proxy or paid add-on is used or required.
How fast is this? BigBadToyStore serves normal browsers instantly, but blocks non-browser traffic (including some cloud datacenter IPs) behind a Cloudflare challenge. This actor detects that automatically and falls back to a real anti-detect browser to get past it — which is slower than a plain HTTP fetch. Expect roughly 10-20 seconds per product on runs where the fallback engages, so maxItems is kept modest by default (15) to keep a typical run under ~3-5 minutes. Raise maxItems for larger pulls; just budget more run time (e.g. ~100 products can take 15-25 minutes).
Why isn't every field always present? Fields are only included when BigBadToyStore actually shows them for that product — e.g. estimatedReleaseDate only appears on pre-order items, and series/character only appear when the product page tags them.
What if the brand/line I want isn't in the brandId dropdown? BigBadToyStore's brand filter is an internal numeric ID; the dropdown covers the ~35 most popular lines/franchises across the catalog. For anything else, use customBrandName (falls back to a keyword search scoped to that term) or use mode=search directly.
What does packagingVariation mean? BigBadToyStore often sells the same product under multiple packaging/condition variants (e.g. "BBTS Mint Packaging") as separate SKUs. packagingVariation is the human-readable label for the specific variant that sku/productUrl point to, when BigBadToyStore shows one — useful for distinguishing which listing a given price/SKU belongs to.
How does mode=byUrl work? Give it one or more BigBadToyStore /product/... URLs in productUrls and it fetches exactly those pages — no search or department/brand filters apply. Handy for monitoring specific SKUs you've already found (e.g. via a previous search/byBrand run) without re-searching.
How does preorderOnly interact with availabilityStatuses? availabilityStatuses controls which stock states are fetched from BigBadToyStore's search results in the first place; preorderOnly is an extra post-fetch filter that additionally drops anything that isn't Pre-Order. For the most efficient pre-order-only run, set availabilityStatuses: ["PreOrder"] and preorderOnly: true together.
Why do Sold Out / Waitlist availability filters sometimes return nothing? In the current catalog, those two statuses are mostly held by BigBadWorkshop crowdfunding "project" pages (a different content type this actor intentionally excludes, since they don't carry standard product/price/SKU data). Regular retail products are almost always In Stock or Pre-Order.
How is availability determined? Directly from BigBadToyStore's own structured product data (schema.org Offer.availability), not scraped visually — so it reflects the same state shown in the buy box.
Can I combine departmentId, brandId, and companyId at once? Yes — all three are independent narrowing filters usable together in any mode (department/brand only become required in their respective byDepartment/byBrand modes).
How fresh is the data? Real-time — every run reads BigBadToyStore's live search and product pages directly.