Chewy API: Search products
Search Chewy products by words, pet type, and sort order. Returns up to 72 products in Chewy's order, including listed and first-order Autoship prices when shown.
Unofficial. Not affiliated with or endorsed by Chewy.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Sort optional
sort Sort the results, for example best_selling.
best_selling
One of
relevance,best_selling,top_rated,price_low_to_high,price_high_to_low. Defaultrelevance.- Query, required
query Words to search for, for example grain free dog food.
grain free
- Pet Type optional
pet_type Pet to filter for, for example cat.
cat
One of
any,dog,cat,fish,bird,small_pet,reptile,horse. Defaultany.- Max Results optional
max_results Maximum products to return, for example 24.
40
Whole number from 1 to 72. Default
24.
Input as JSON
{ "sort": "best_selling", "query": "grain free", "pet_type": "cat", "max_results": 40}Output
{ "products": [ { "name": "Inaba Churu Tuna & Chicken Puree Variety Pack Grain-Free Lickable Cat Treat, 0.5oz tube, pack of 50", "brand": "Inaba", "price": 32.96, "currency": "USD", "image_link": "https://image.chewy.com/catalog/general/images/moe/06879516-1ebc-7372-8000-f5c4238c5e28._AC_SL248_V1_.jpg" , "star_rating": 4.8664, "product_link": "https://www.chewy.com/inaba-churu-tuna-chicken-puree/dp/184459" , "review_count": 9359, "autoship_price": 21.42, "original_price": 49.99, "size_or_variant": "0.5oz tube, pack of 50", "chewy_item_number": "157717" }, { "name": "Sheba Perfect Portions Roasted Chicken, Gourmet Salmon & Tender Turkey Cuts in Gravy Variety Pack Grain-Free Adult Wet Cat Food Trays, 2.6-oz, case of 24", "brand": "Sheba", "price": 27.96, "currency": "USD", "image_link": "https://image.chewy.com/catalog/general/images/sheba-perfect-portions-roasted-chicken-gourmet-salmon-tender-turkey-cuts-in-gravy-variety-pack-grain-free-adult-wet-cat-food-trays-26oz-case-of-24/img-1a05f9a8311dd959526._AC_SL248_V1_.jpg" , "star_rating": 4.5214, "product_link": "https://www.chewy.com/sheba-perfect-portions-grain-free/dp/152005" , "review_count": 7359, "autoship_price": 18.17, "original_price": null, "size_or_variant": "2.6-oz, case of 24", "chewy_item_number": "124882" }, { "name": "Sheba Perfect Portions Seafood Pate Variety Pack Grain-Free Adult Wet Cat Food Trays, 2.6-oz, case of 24", "brand": "Sheba", "price": 27.54, "currency": "USD", "image_link": "https://image.chewy.com/catalog/general/images/sheba-perfect-portions-seafood-pate-variety-pack-grain-free-adult-wet-cat-food-trays-26oz-case-of-24/img-1a05f9a92640636d920._AC_SL248_V1_.jpg" , "star_rating": 4.5591, "product_link": "https://www.chewy.com/sheba-perfect-portions-seafood-pate/dp/167206" , "review_count": 7545, "autoship_price": 17.9, "original_price": 27.96, "size_or_variant": "2.6-oz, case of 24", "chewy_item_number": "140273" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"chewy.com/search_products","input":{"sort":"best_selling","query":"grain free","pet_type":"cat","max_results":40}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "chewy.com/search_products" , "input": { "sort": "best_selling", "query": "grain free", "pet_type": "cat", "max_results": 40 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "chewy.com/search_products" , "input": { "sort": "best_selling", "query": "grain free", "pet_type": "cat", "max_results": 40 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run chewy.com/search_products# with {"sort":"best_selling","query":"grain free","pet_type":"cat","max_results":40}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "query" ], "properties": { "sort": { "enum": [ "relevance", "best_selling", "top_rated", "price_low_to_high", "price_high_to_low" ], "type": "string", "default": "relevance", "description": "Sort the results, for example best_selling." }, "query": { "type": "string", "minLength": 1, "description": "Words to search for, for example grain free dog food." }, "pet_type": { "enum": [ "any", "dog", "cat", "fish", "bird", "small_pet", "reptile", "horse" ], "type": "string", "default": "any", "description": "Pet to filter for, for example cat." }, "max_results": { "type": "integer", "default": 24, "maximum": 72, "minimum": 1, "description": "Maximum products to return, for example 24." } }}Output schema
{ "type": "object", "required": [ "products" ], "properties": { "products": { "type": "array", "items": { "type": "object", "required": [ "name", "brand", "size_or_variant", "price", "original_price", "autoship_price", "currency", "star_rating", "review_count", "image_link", "product_link", "chewy_item_number" ], "properties": { "name": { "type": "string" }, "brand": { "type": [ "string", "null" ] }, "price": { "type": [ "number", "null" ] }, "currency": { "type": "string" }, "image_link": { "type": [ "string", "null" ] }, "star_rating": { "type": [ "number", "null" ] }, "product_link": { "type": "string" }, "review_count": { "type": [ "integer", "null" ] }, "autoship_price": { "type": [ "number", "null" ] }, "original_price": { "type": [ "number", "null" ] }, "size_or_variant": { "type": [ "string", "null" ] }, "chewy_item_number": { "type": [ "string", "null" ] } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
chewy.com/search_products- Returns
- name, brand, size or variant, price, original price, Autoship price, rating, reviews, image, link, item number
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method chewy.com/search_products with the inputs above.
Ask your agent
- Find the top-rated grain-free salmon cat food on Chewy and show me the Autoship prices
- What are the best-selling hamster bedding options right now? Give me about 10 with prices and ratings
- I need cheap aquarium filters for a 20 gallon tank, sorted lowest price first
- Search chewy.com for large breed puppy food and list brand, bag size, price, and review count
- Show me the most expensive heated reptile enclosures available, up to 15 results
See more
Searches AliExpress listings by product words, shipping destination, price range and sort order. Unpriced promotional cards are omitted; free shipping is marked only when the listing explicitly says so.
aliexpress.com/search_productsSearches Kohl's products in site order and returns prices, offers, ratings and links for each result.
kohls.com/search_productsSearches Sephora US beauty products in Sephora's order, with brand and USD price filters and shopper sort options. Loves counts are null when a product page cannot be loaded.
sephora.com/search_productsSearches Ulta Beauty products by keyword, brand, USD price range and sort order, and returns each product with its starting prices.
ulta.com/search_productsSearch Nordstrom products by words, price, sale status and sort order. Prices are the lowest listed price. Available sizes may be empty when a product page is unavailable.
nordstrom.com/search_productsSearches Best Buy US products with an optional price range, sort order and page. Prices and availability come from public listings and may vary by location.
bestbuy.com/search_productsSearches Macy's products in the site's order with optional USD price bounds, sale-only results and sorting. Prices for products with a range use the lowest shown price.
macys.com/search_productsSearches Argos UK products by keyword in the selected sort order, returning prices, ratings and links. Delivery and collection availability appear only when shown on the site.
argos.co.uk/search_products