OrbTop

Chewy.com Product Scraper

ECOMMERCE

Chewy.com Product Scraper

Scrape product listings from Chewy.com — America's largest online pet retailer. Extract product name, price, autoship price, brand, rating, review count, stock status, and more from millions of pet products across every category.

What data does it extract?

Each record includes:

Field Description
product_id Chewy internal product ID (numeric, from /dp/NNNNN URL)
product_url Canonical product page URL
product_name Full product title / display name
brand Brand or manufacturer name
category Breadcrumb category path (e.g. Dog Supplies > Dog Food > Dry Dog Food)
price Regular price in USD
autoship_price Autoship / subscribe & save price in USD
original_price Original / compare-at price (when on sale)
in_stock Stock availability (true/false)
rating Average customer rating (0–5)
review_count Total number of customer reviews
image_url Primary product image URL
scraped_at ISO 8601 timestamp

How to use it

  1. Set maxItems — how many products to scrape (default: 10; keep low for test runs).
  2. Set categoryFilter (optional) — a keyword that matches against product URL slugs. Examples:
    • dog-food — dry food, wet food, food containers (all slugs containing "dog-food")
    • cat-toys — cat toy products
    • Leave empty to scrape from the full product catalog.
  3. Run the actor. Each product appears as one record in the dataset.

Input example

{
  "maxItems": 50,
  "categoryFilter": "dog-food"
}

Technical notes

Chewy.com uses Kasada bot protection on all product pages. This scraper uses Bright Data Web Unlocker (IceBreaker) to resolve the protection server-side — no browser is launched in your run. Product data is extracted from the Next.js Apollo GraphQL cache embedded in the page, giving clean structured data without DOM fragility.

Discovery is sitemap-driven: the scraper walks Chewy's public PDP sitemap to discover product URLs, then fetches each via Web Unlocker.

Performance

  • Memory: 512 MB
  • Timeout: 4 hours
  • Concurrency: up to 50 parallel Web Unlocker fetches
  • Each product page = 1 billed Bright Data request