Chewy API endpoint
Returns a batch of up to 20 Chewy products' lightweight summaries (price, rating, stock, images) in one call. part_numbers is a comma-separated list of Chewy part numbers, e.g. "52448,767758" -- the same value chewy_product returns as part_number/parent_part_number, and chewy_category/chewy_search return as products[].part_number. A part number Chewy does not recognize is omitted from products and listed in not_found rather than causing the whole call to fail.
/chewy/productsReturns a batch of up to 20 Chewy products' lightweight summaries (price, rating, stock, images) in one call. Sourced from Chewy's own mobile-app item-lookup endpoint -- not the full detail (reviews, Q&A, breadcrumbs, size/color variants) chewy_product returns for a single product.
Notable response behavior:
products and listed in not_found rather than causing the whole call to fail.list_price is present only when a LIST-type price is returned alongside the OFFER price; both are USD.rating/rating_count are aggregate star-rating fields only -- this endpoint does not return review text (use chewy_product for full reviews).| Field | Filled in, of 2 checked | Values in the sample |
|---|---|---|
| part_number | 2 | 52,448 to 767,758, median 52,448 |
| name | 2 | “World's Best Lavender Scented Clumping Corn Cat Litter, 28-…” and 1 other value |
| slug | 2 | |
| url | 2 | chewy.com |
| brand | 2 | “World's Best” and 1 other value |
| manufacturer_part_number | 2 | 1,001,700 to 1,780,010,021, median 1,001,700 |
| gtin | 2 | |
| currency_code | 2 | |
| price | 2 | 27.99 to 34.99, median 27.99 |
| list_price | 2 | 29.49 to 42.69, median 29.49 |
| rating | 2 | 4.12 to 4.53, median 4.12 |
| rating_count | 2 | 747 to 1,703, median 747 |
| thumbnail_url | 2 | image.chewy.com |
| in_stock | 2 | true in 2 of 2 |
| buyable | 2 | true in 2 of 2 |
| parent_part_number | 2 | 50,632 to 100,195, median 50,632 |
| on_special | 1 | true in 1 of 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| part_numbers | string | Yes | Comma-separated Chewy part numbers, up to 20 | 52448,767758 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/chewy/products?part_numbers=52448%2C767758" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"count": 1,
"not_found": [
"999999999"
],
"products": [
{
"part_number": "52448",
"name": "World's Best Lavender Scented Clumping Corn Cat Litter, 28-lb bag",
"slug": "worlds-best-lavender-scented-clumping",
"url": "https://www.chewy.com/worlds-best-lavender-scented-clumping/dp/52448",
"brand": "World's Best",
"manufacturer_part_number": "1001700",
"gtin": "322591001700",
"currency_code": "USD",
"price": 34.99,
"list_price": 42.69,
"rating": 4.1157,
"rating_count": 1703,
"thumbnail_url": "https://image.chewy.com/catalog/general/images/moe/thumb.jpg",
"in_stock": true,
"buyable": true,
"parent_part_number": "50632"
}
],
"source_url": "https://www.chewy.com/api/item/v1/item/52448,999999999",
"fetched_at": "2026-08-20T10:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/chewy.productsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | chewy.ProductsResponse | No | ||||
| data.count | integer | No | ||||
| data.fetched_at | string | No | ||||
| data.not_found | array | No | ||||
| data.products | array | No | ||||
| data.products[].brand | string | No | World's Best | |||
| data.products[].buyable | boolean | No | ||||
| data.products[].currency_code | string | No | USD | |||
| data.products[].discontinued | boolean | No | ||||
| data.products[].gtin | string | No | ||||
| data.products[].image_url | string | No | ||||
| data.products[].in_stock | boolean | No | ||||
| data.products[].list_price | number | No | ||||
| data.products[].manufacturer_part_number | string | No | ||||
| data.products[].name | string | No | ||||
| data.products[].on_special | boolean | No | ||||
| data.products[].parent_part_number | string | No | ||||
| data.products[].part_number | string | No | 52448 | |||
| data.products[].price | number | No | 34.99 | |||
| data.products[].rating | number | No | 4.1157 | |||
| data.products[].rating_count | integer | No | ||||
| data.products[].short_description | string | No | ||||
| data.products[].slug | string | No | ||||
| data.products[].thumbnail_url | string | No | ||||
| data.products[].url | string | No | ||||
| data.source_url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/chewy/products?part_numbers=52448%2C767758" \
-H "x-api-key: $CRAWLORA_API_KEY"