BigBadToyStore Scraper avatar

BigBadToyStore Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
BigBadToyStore Scraper

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

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

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 ID
  • sku — the specific packaging/variation SKU used for ordering
  • packagingVariation — human-readable label for that SKU's packaging/condition variant, when BigBadToyStore shows one (e.g. "BBTS Mint Packaging")
  • title, description
  • brand — the toy line/franchise (e.g. "Transformers", "Marvel")
  • brandId — numeric facet ID for brand (matches the brandId input enum)
  • company — manufacturer (e.g. "Hasbro", "Takara Tomy", "Hot Toys")
  • companyId — numeric facet ID for company (matches the companyId input enum)
  • character — primary character, when BigBadToyStore tags one
  • series — array of series/sub-line tags (e.g. "Studio Series", "Masterpiece")
  • price, priceCurrency
  • availabilityIn Stock, Pre-Order, Sold Out, or Waitlist
  • isPreOrder — boolean
  • estimatedReleaseDate — e.g. "May 2027" (pre-order items only, when shown)
  • itemCondition — e.g. New
  • imageUrl
  • productUrl
  • recordType: "product", scrapedAt

Input

FieldTypeDefaultDescription
modestringsearchsearch / byDepartment / byBrand / byUrl
searchQuerystringTransformersKeyword query (mode=search)
departmentIdselectDepartment (required for byDepartment; optional filter elsewhere)
brandIdselectCurated toy line/brand (required for byBrand unless customBrandName set; optional filter elsewhere)
customBrandNamestringFree-text brand/line name, used as a keyword-search fallback for byBrand when not in the curated list
companyIdselectManufacturer/publisher filter, any mode
productUrlsarraySpecific BigBadToyStore product URLs to look up directly (required for byUrl)
sortOrderselectRelevanceRelevance / New / PriceHighToLow / PriceLowToHigh / Discount
availabilityStatusesarray["InStock","PreOrder"]Which stock states to include
minPrice / maxPricenumberUSD price range
preorderOnlybooleanfalseKeep only Pre-Order items
maxItemsint15Hard cap (1–2000). Kept modest by default — see "How fast is this?" below
{
"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=byUrl to track price and stock status for specific SKUs you already know
  • Pre-order tracking — combine preorderOnly with isPreOrder + estimatedReleaseDate to 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/byDepartment browse 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 maxItems values.
  • Curated brand/line list. brandId covers 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; use customBrandName (keyword-search fallback) or mode=search for 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 to SoldOut/Waitlist alone 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.