Chewy Scraper [$1.90/1K💰] | Pet Prices | Reviews & Q&A avatar

Chewy Scraper [$1.90/1K💰] | Pet Prices | Reviews & Q&A

Pricing

from $1.70 / 1,000 products

Go to Apify Store
Chewy Scraper [$1.90/1K💰] | Pet Prices | Reviews & Q&A

Chewy Scraper [$1.90/1K💰] | Pet Prices | Reviews & Q&A

Scrape Chewy.com pet products by URL or category and export brand, price, rating, review count, every size variant with per-variant prices, plus reviews and Q&A as clean JSON. Uses Chewy's own JSON APIs, no browser.

Pricing

from $1.70 / 1,000 products

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Chewy Scraper — Pet Product Prices, Reviews & Q&A API

Extract product name, brand, price, rating, review count, every size variant, individual reviews and Q&A from Chewy.com product pages (chewy.com/.../dp/{id}) and category pages (chewy.com/b/{category}/). Built for pet brands, MAP / price-monitoring teams, e-commerce resellers and review aggregators — at $1.90 / 1,000 products.

Main use cases

  • Price monitoring and MAP enforcement — track advertised prices and every size variant to catch MAP violations.
  • Amazon and marketplace price comparison — compare Chewy prices against Amazon, Petco and PetSmart.
  • Pet product data / catalog building — assemble a structured catalog with brand, GTIN, variants and stock status.
  • Review and Q&A analysis — export customer reviews and questions for sentiment analysis and product feedback.
  • E-commerce market research — analyse assortment, pricing and ratings across pet categories.

How it works

Chewy's www HTML is guarded by Akamai Bot Manager + Kasada, so this actor never touches page HTML. Instead it talks directly to the two internal JSON surfaces the Chewy storefront itself uses — both answer clean JSON with no cookies, no auth, plain HTTP:

#SurfaceEndpointUsed for
1PLP search proxy (same-origin API the category pages query)GET https://www.chewy.com/plp/api/search?groupId={id}&from={offset}&count={n}Category enumeration: name, brand, price, rating, review count, /dp/{id} links, paged with from/count
2PDP GraphQL gatewayPOST https://www.chewy.com/api/pdp-graphql/graphqlProduct detail (item(id:)), paginated reviews, paginated Q&A

groupId is the trailing number in a /b/{slug}-{groupId} category URL. The actor is a lightweight CheerioCrawler used purely as an HTTP/JSON client (256 MB) — no browser, no rendering.

Two sibling endpoints were probed and rejected: https://api.chewy.com/ returns 403 Access Denied (Akamai) without special headers, and https://www.chewy.com/api/api-router/graphql exposes a different GraphQL schema that does not serve PDP data.

Extract Pet Product Prices And Variants For Price Monitoring

Every product row includes the advertised price of the scraped variant plus a variants[] array with every size/pack variant, each with its own price, GTIN and stock flags — ideal for MAP monitoring. ratingDistribution[] gives the per-star breakdown, and inStock / availabilityStatus / isDiscontinued / isPrescription capture availability, so you can track prices and assortment across a category over time.

Build A Pet Product Database Without The Chewy API

Chewy has no public product API, and its HTML is bot-walled from datacenter IPs. This actor uses Chewy's own GraphQL + PLP search APIs, which return everything needed — including rating distributions, all size variants with per-variant prices, and cursor-paged reviews and Q&A — at a fraction of the cost of rendering pages. Category pages enumerate products through the PLP proxy and auto-paginate until maxProducts is reached; product pages fetch detail, reviews and Q&A from the GraphQL gateway.

Reviews and Q&A are always stored in their own datasets — reviews (one row per review) and questions (one row per question) — each row carrying itemId, url, partNumber, productName and brand for joining back to the product. As a safety net, if a dataset write is ever denied, rows fall back to the default dataset with a recordType field (review / question), so no data is lost. The actor provides these datasets via storages.datasets aliases and surfaces them on the run page through the output schema (Products, Reviews, Questions).

Input Parameters

FieldTypeRequiredDefaultNotes
startUrlsarray (requestListSources)Yesproduct + category prefillsProduct pages (/dp/{id}) and/or category pages (/b/{category}/).
maxProductsintegerNo50Max products returned; category pages page until this cap (max 5000).
includeReviewsbooleanNotrueFetch individual customer reviews per product.
maxReviewsPerProductintegerNo30Reviews per product (0 disables review fetching).
reviewSortstring (enum)NoMOST_RELEVANTMOST_RELEVANT, MOST_HELPFUL, NEWEST, HIGHEST_RATED, LOWEST_RATED. Falls back to MOST_RELEVANT if rejected.
includeQuestionsbooleanNotrueFetch customer questions and answers per product.
maxQuestionsPerProductintegerNo20Q&A entries per product (0 disables Q&A fetching).
maxRequestsPerCrawlintegerNo2000Safety cap; one product costs ~1 request + ~1 per 25 reviews/questions.
maxConcurrencyintegerNo16Parallel HTTP requests; raise to 25–30 if your plan allows.
proxyobject (proxy)NouseApifyProxy: falseStandard Apify proxy picker — enable a residential group if you ever hit rate limits.

Free-plan users get a capped preview (10 products per run); paid users get the full maxProducts range.

Output Fields

One dataset item per product (24 fields; the default overview view shows URL, Brand, Product, Price, Rating, Reviews):

FieldTypeDescription
urlstringCanonical Chewy product page URL.
itemIdstringNumeric item id from the /dp/{id} URL.
itemNamestringFull variant-specific product title.
productNamestringBase product name shared across variants.
brandstring / nullManufacturer / brand name.
partNumberstring / nullChewy product-level part number.
entryIdstring / nullChewy catalog entry id.
slugstring / nullURL slug of the product.
gtinstring / nullGlobal trade item number / UPC.
pricenumber / nullAdvertised price of the scraped variant in USD.
ratingnumber / nullAverage star rating (0–5).
reviewCountinteger / nullTotal number of customer ratings.
ratingDistributionarrayPer-star breakdown: [{ rating, count, percent }].
inStockboolean / nullWhether the scraped variant is in stock.
availabilityStatusstring / nullRaw availability flag (e.g. OUT_OF_STOCK, DISCONTINUED).
isDiscontinuedboolean / nullWhether the variant is discontinued.
isPrescriptionboolean / nullWhether the item requires a prescription.
breadcrumbsarrayCategory path: [{ id, name, url }].
variantsarrayAll size/pack variants with per-variant price, GTIN and stock flags.
questionsTotalinteger / nullTotal number of customer questions.
questionsarrayQ&A entries — stored in the questions dataset.
reviewsTotalinteger / nullTotal number of customer reviews.
reviewsarrayIndividual reviews — stored in the reviews dataset.
productDescriptionstring / nullProduct marketing description.

Example Input And Output

Input

{
"startUrls": [
{ "url": "https://www.chewy.com/frisco-pig-corduroy-plush-squeaky-dog/dp/179610" },
{ "url": "https://www.chewy.com/b/toys-315" }
],
"maxProducts": 50,
"includeReviews": true,
"maxReviewsPerProduct": 30,
"includeQuestions": true,
"maxQuestionsPerProduct": 20,
"maxConcurrency": 16
}

Output (one product row)

{
"url": "https://www.chewy.com/frisco-pig-corduroy-plush-squeaky-dog/dp/179610",
"itemId": "179610",
"itemName": "Frisco Pig Corduroy Plush Squeaky Dog Toy",
"productName": "Frisco Pig Corduroy Plush Squeaky Dog Toy",
"brand": "Frisco",
"partNumber": "123456",
"entryId": "987654",
"slug": "frisco-pig-corduroy-plush-squeaky-dog",
"gtin": "0193800000000",
"price": 6.99,
"rating": 4.6,
"reviewCount": 1842,
"ratingDistribution": [{ "rating": 5, "count": 1200, "percent": 65 }],
"inStock": true,
"availabilityStatus": "IN_STOCK",
"isDiscontinued": false,
"isPrescription": false,
"breadcrumbs": [{ "id": "315", "name": "Dog Toys", "url": "https://www.chewy.com/b/toys-315" }],
"variants": [{ "name": "Small", "price": 6.99, "gtin": "0193800000000", "inStock": true }],
"questionsTotal": 24,
"questions": [],
"reviewsTotal": 1842,
"reviews": [],
"productDescription": "A corduroy plush pig with a built-in squeaker..."
}

Reviews and Q&A rows are written to the reviews and questions datasets, each carrying itemId, url, partNumber, productName and brand.

Integrations & Automation

Every Apify actor is reachable through the Apify API, and this one plugs into webhooks, Zapier and Make so products, reviews and Q&A can flow into a Google Sheet, Airtable base, price-monitoring dashboard or a Shopify/catalog pipeline. For price monitoring, run it on a schedule — a daily pass over your category URLs is enough to catch price and stock changes, and recurring runs also improve the actor's Store recommendation signals.

Monetization (pay-per-event)

Each saved review charges the review event and each saved question charges the question event, so heavy review/Q&A runs bill proportionally to the value delivered. Products are charged per result. On flat-priced or local runs the charging calls are safe no-ops.

FAQ

Is there a Chewy API?

Chewy does not publish a public product API, and its www HTML is guarded by Akamai Bot Manager + Kasada. This actor reads Chewy's own internal PLP search and PDP GraphQL endpoints, so you get structured products, variants, reviews and Q&A without an API key or a browser.

What are the alternatives to this actor / this data source?

For pet-retail data you can combine this with Amazon and Petco scrapers. Chewy is the largest US online pet retailer, so it is a distinct source alongside Amazon and Petco rather than a duplicate.

How do I monitor pet-food prices and catch MAP violations?

Pass the category page for the products you care about and schedule the actor daily. Each run returns the advertised price plus every size variant with its own price and stock flags, so you can diff runs and flag price drops or MAP violations.

How do I get all size variants of a product?

Each product row includes a variants[] array with every size/pack variant, each with its own price, GTIN and stock flags — no extra configuration needed.

Do I need a proxy?

Usually not — the JSON APIs answer from datacenter IPs. Enable the Apify proxy (residential group) only if you hit rate limits on large runs.

Where are reviews and Q&A stored?

In their own datasets (reviews and questions), one row per entry, each carrying itemId, url, partNumber, productName and brand so you can join them back to the product.

SEO Keywords

chewy, chewy scraper, chewy products, chewy api, chewy pet supplies, pet product data, pet food price, price monitoring, map monitoring, ecommerce price scraping, amazon price monitoring, product variant price, reviews and q&a scraping, petco data, amazon scraper, ecommerce catalog data

For AI Agents & LLM Apps

Purpose: return one structured product row per Chewy.com product (plus separate reviews and questions rows), for given product or category URLs.

Minimal working input:

{ "startUrls": [{ "url": "https://www.chewy.com/frisco-pig-corduroy-plush-squeaky-dog/dp/179610" }], "maxProducts": 50 }

Variant (category enumeration, override to skip reviews/Q&A):

{ "startUrls": [{ "url": "https://www.chewy.com/b/toys-315" }], "maxProducts": 50, "includeReviews": false, "includeQuestions": false }

Output fields (products dataset): url, itemId, itemName, productName, brand, partNumber, entryId, slug, gtin, price, rating, reviewCount, ratingDistribution, inStock, availabilityStatus, isDiscontinued, isPrescription, breadcrumbs, variants, questionsTotal, questions, reviewsTotal, reviews, productDescription. Reviews and questions are stored in separate datasets (reviews, questions) with join keys itemId, url, partNumber, productName, brand.

Behaviors an agent should know:

  • startUrls is required (no default keyword mode). Category URLs (/b/{slug}-{groupId}) auto-paginate until maxProducts.
  • If maxProducts is left unset it defaults to 50; free-plan runs are capped at 10 products.
  • includeReviews / includeQuestions default to true and add billed events: maxReviewsPerProduct defaults to 30, maxQuestionsPerProduct to 20. Setting either to 0 disables it.
  • reviewSort falls back to MOST_RELEVANT automatically if Chewy rejects the requested value.
  • reviews[] / questions[] arrays in the product row are left empty — the entries live in the separate reviews / questions datasets (or, as a fallback, in the default dataset tagged with recordType).
  • Prices reflect the default US storefront; discontinued/suppressed variants still return metadata but may lack a price.

Billing: pay-per-event — $0.0019 per product ($1.90 / 1,000), $0.0004 per review ($0.40 / 1,000) and $0.0003 per question ($0.30 / 1,000), plus a $0.00005 actor-start event.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Chewy. It accesses only publicly available JSON endpoints that Chewy.com's own storefront uses; it does not log in, bypass authentication, or solve CAPTCHAs on anyone's behalf. Users are responsible for ensuring their use complies with Chewy's Terms of Service and with applicable data-protection law. Output may include reviewer names and review text; where personal data is present it must not be used for unsolicited commercial outreach or in violation of applicable law (e.g. CAN-SPAM, CCPA, GDPR).