Chewy APIchewy.com ↗
Access Chewy.com product search, pricing, promotions, and customer reviews via 3 structured endpoints. Get names, ratings, availability, and pagination support.
What is the Chewy API?
The Chewy.com API covers 3 endpoints that return product search results, detailed pricing with active promotions, and paginated customer reviews from Chewy.com. The search_products endpoint returns up to 36 products per page including name, price, availability, rating, review count, and image URLs. The get_product_details and get_product_reviews endpoints use a product's partNumber — extractable from any Chewy product URL — to retrieve pricing breakdowns and up to 10 reviews per page.
curl -X GET 'https://api.parse.bot/scraper/4b43ad73-b94f-41e6-bc32-d7fe35f180b6/search_products?page=1&query=dog+food' \ -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 chewy-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.
from parse_apis.chewy_api import Chewy, Product, ProductDetail, Review
chewy = Chewy()
# Search for products
for product in chewy.products.search(query="dog treats", limit=5):
print(product.name, product.price, product.rating, product.review_count)
# Get detailed product info
detail = chewy.productdetails.get(product_id="119446")
print(detail.name, detail.part_number)
print(detail.pricing.value, detail.pricing.currency_code, detail.pricing.savings_pct)
for promo in detail.promotions:
print(promo.promotion.short_description)
# Browse reviews
for review in detail.reviews.list(limit=5):
print(review.title, review.rating, review.submitted_by, review.submitted_at)
Search for products by keyword on Chewy.com. Returns a paginated list of products with names, images, prices, ratings, and URLs. Each page contains up to 36 products ordered by relevance.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination, starting at 1. |
| queryrequired | string | Search keyword (e.g. 'dog food', 'cat toys'). |
{
"type": "object",
"fields": {
"url": "string, canonical URL for the collection",
"name": "string, category name for the search results",
"items": "array of product objects with name, price, currency, availability, rating, review_count, url, and images"
},
"sample": {
"data": {
"url": "https://www.chewy.com/b/food-332",
"name": "Food",
"items": [
{
"url": "https://www.chewy.com/pedigree-complete-nutrition-grilled/dp/388673",
"name": "Pedigree Complete Nutrition Grilled Steak & Vegetable Flavor Dog Kibble Adult Dry Dog Food, 44-lb bag",
"price": 29.99,
"images": [
"https://image.chewy.com/catalog/general/images/moe/068e6bf5-23f1-79b3-8000-b2bb2163c977._AC_SS232_V1_.jpg"
],
"rating": 4.6474,
"currency": "USD",
"availability": "InStock",
"review_count": 10113
}
]
},
"status": "success"
}
}About the Chewy API
Product Search
The search_products endpoint accepts a query string (e.g. 'dog food', 'cat toys') and an optional page integer for pagination. Each response includes a canonical collection URL, a category name for the result set, and an array of product objects. Each product object carries name, price, currency, availability, rating, review_count, url, and images. Results are ordered by relevance and capped at 36 items per page.
Product Details and Promotions
get_product_details takes a product_id — the numeric segment after /dp/ in any Chewy product URL — and returns a consolidated record combining item info, promotional pricing, and active promotions. The pricing object includes type, value, currency_code, savings_pct, savings_amount, and promotion_id. The promotions array lists each active promotion with its associated partNumbers and promotion metadata. The response also surfaces the base64-encoded internal item ID and the partNumber SKU.
Customer Reviews
get_product_reviews returns up to 10 reviews per page for a given product_id. Each review object includes id, rating, text, title, submittedBy, and submittedAt. The endpoint supports cursor-based pagination: pass the endCursor from one response as the cursor parameter in the next request. The totalCount field tells you the total number of reviews, and hasNextPage signals whether additional pages exist.
The Chewy API is a managed, monitored endpoint for chewy.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when chewy.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 chewy.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?+
- Build a pet product price tracker by polling
get_product_detailsfor savings_pct and promotion_id changes over time. - Aggregate competitor pricing data across pet food categories using
search_productswith category-specific queries. - Feed a product recommendation engine with rating and review_count data from search results.
- Analyze customer sentiment by collecting paginated review text and ratings via
get_product_reviews. - Monitor active Chewy promotions and discount amounts for deal-alert applications using the promotions array.
- Build a pet product catalog with images, availability status, and canonical URLs from
search_products. - Extract structured review datasets for NLP training using submittedAt, rating, title, and text fields.
| 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.
Does Chewy have an official public developer API?+
How do I get a product_id to use with get_product_details or get_product_reviews?+
/dp/ segment. For example, in chewy.com/dp/119446, the product_id is 119446. You can also extract it from the url field returned by search_products.Does get_product_reviews return all reviews at once?+
endCursor value from the response as the cursor parameter in your next request to retrieve the following page. The totalCount field tells you how many reviews exist in total, and hasNextPage confirms whether another page is available.Does the API return product variant or subscription pricing details?+
get_product_details endpoint returns a single pricing object with the active price, savings percentage, savings amount, and promotion_id. Variant-level pricing (e.g., different sizes or flavors) and Autoship subscription pricing are not currently exposed as separate fields. You can fork this API on Parse and revise it to add endpoints covering those pricing surfaces.Are product categories or breed/species filter parameters available in search?+
search_products endpoint accepts a free-text query and a page number. Structured filters such as species, brand, life stage, or category facets are not currently available as input parameters. You can fork this API on Parse and revise it to add filter-based search endpoints.