Petco API
Petco data as structured JSON: search and category listings with one-time, list and Repeat Delivery (autoship) prices, full product detail with every size, ingredients and guaranteed analysis, stores near a ZIP, and units on hand at the store you choose for up to 10 products per call.
50 free credits on signup. No card, no Petco account.
{ "data": { "query": "dog food", "page": 1, "sort": "relevance", "sort_order": "desc", "total_results": 2522, "total_pages": 53, "page_size": 48, "count": 48, "products": [ { "position": 1, "name": "Purina Pro Plan Sensitive Skin and Stomach Salmon and Rice Formula Dog Food, 40 lbs.", "brand": "Purina Pro Plan", "part_number": "3748364", "cat_entry_id": "6131012", "url": "https://www.petco.com/product/purina-pro-plan-sensitive-skin-and-stomach-salmon-and-rice-formula-dry-dog-food-40-lbs-3748364", "rating": 4.5378, "review_count": 6737, "price": 97.99, "list_price": 97.99, "autoship_price": 93.09, "fulfillment": { "pickup_in_store": true, "same_day_delivery": true, "autoship_eligible": true, "in_store_only": false }, "deal_group_ids": [] }, { "position": 22, "name": "Blue Buffalo Wilderness Wholesome Grains Natural Ingredients Adult High-Protein Dry Dog Food, 4.5 lbs.", "brand": "Blue Buffalo", "part_number": "3747564", "cat_entry_id": "6106534", "url": "https://www.petco.com/product/blue-buffalo-blue-wilderness-plus-wholesome-grains-natural-adult-high-protein-chicken-dry-dog-food-45-lbs-3747564", "rating": 4.5734, "review_count": 354, "price": 19.99, "list_price": 22.99, "autoship_price": 18.99, "fulfillment": { "pickup_in_store": true, "same_day_delivery": true, "autoship_eligible": true, "in_store_only": false }, "deal_group_ids": [ "dog-food-treat-deals", "dry-dog-food-deals" ] } ] }, "response_time": 9824}Live call against the real endpoint. A search can take up to 20 seconds. 3 free runs, then it's your own key.
What is the Scavio Petco API?
The Scavio Petco API is a REST API that returns Petco product, price and store stock data as structured JSON. Petco has no public product data API. Its 5 POST endpoints cover search, category, product detail, store locator and units on hand at one store, at 1 credit per call.
- 5
- endpoints, all live in production
- 1
- credit per call, every endpoint
- 10
- products' store stock in one call
The Petco data buyers actually need
What it costs, what it costs on autoship, and how many are on the shelf at that store.
Units on hand at a store
POST /api/v1/petco/store-inventorySend up to 10 cat_entry_ids and a store_id, or just a ZIP: each comes back with units on hand and Petco's stock level. Our capture found 9 bags of Purina Pro Plan Sensitive Skin and Stomach, 40 lbs., at the Union Square store, level GREEN.
Repeat Delivery prices
POST /api/v1/petco/productEvery search result carries the autoship price next to the one-time price; product detail adds the first-autoship promo price. The 30 lbs. Purina bag in our capture was $77.99, $74.09 on autoship and $57.99 on a first autoship order.
Search and categories
POST /api/v1/petco/search48 products per page with price, list price, rating, review count, fulfillment flags and every size or flavor. Deal groups such as dry-dog-food-deals are categories too, so one call lists a whole promotion.
Ingredients and guaranteed analysis
POST /api/v1/petco/productProduct detail returns each variant's UPC, ingredients, guaranteed analysis, feeding directions, specifications, dimensions and images: the label data pet food apps need.
Store locator
POST /api/v1/petco/storesUp to 10 Petco stores near a US ZIP with the store_id that store inventory takes, address, phone, distance, in-store pickup and opening hours.
All 5 Petco API endpoints
Every route is a POST, returns JSON, and takes the same API key. 1 credit per successful call. Prices are national; stock is per store.
| Endpoint | Returns | Credits |
|---|---|---|
Search/api/v1/petco/search | Products for a keyword, 48 per page: price, list price and Repeat Delivery (autoship) price, rating, review count, brand, part number, cat_entry_id, pickup, same-day and autoship flags, deal groups and every size or flavor with its own prices, plus facets and categories | 1 |
Category/api/v1/petco/category | Every product in a petco.com category or deal group, 48 per page, in the same shape as search, with six sorts | 1 |
Product detail/api/v1/petco/product | One product by part number or URL with every variant: UPC, SKU, price, list, autoship and first-autoship promo price, online stock, ingredients, guaranteed analysis, directions, specifications and images | 1 |
Store locator/api/v1/petco/stores | Up to 10 stores near a US ZIP, nearest first, with store_id, store number, address, phone, coordinates, distance, in-store pickup and hours for each weekday | 1 |
Store inventory/api/v1/petco/store-inventory | Units on hand at one store for up to 10 products in one call, with Petco's GREEN, YELLOW or RED stock level; pass a store_id or a ZIP | 1 |
50 free credits on signup covers 50 Petco calls. Store inventory takes cat_entry_id from search, category or product, not the part number. See plans
Search Petco, then check a store's stock
Search returns the national price, the autoship price and each item's cat_entry_id; store inventory turns up to 10 of them into units on hand at one store. The response on the right is a real capture.
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# Search: national price, autoship price and cat_entry_id - 1 credit
res = client.petco.search(query="dog food")
p = res["data"]["products"][0]
print(p["name"], p["price"], "autoship", p["autoship_price"])
# Nearest stores to a ZIP - 1 credit
store = client.petco.stores(zip="10001")["data"]["stores"][0]
# Units on hand at that store, up to 10 cat_entry_ids per call - 1 credit
stock = client.petco.store_inventory(
cat_entry_ids=[p["cat_entry_id"]], store_id=store["store_id"]
)["data"]["items"]
print(store["name"], [(i["cat_entry_id"], i["qty_available"]) for i in stock]){
"data": {
"query": "dog food",
"page": 1,
"sort": "relevance",
"sort_order": "desc",
"total_results": 2522,
"total_pages": 53,
"page_size": 48,
"count": 48,
"products": [
{
"position": 1,
"name": "Purina Pro Plan Sensitive Skin and Stomach Salmon and Rice Formula Dog Food, 40 lbs.",
"brand": "Purina Pro Plan",
"part_number": "3748364",
"cat_entry_id": "6131012",
"url": "https://www.petco.com/product/purina-pro-plan-sensitive-skin-and-stomach-salmon-and-rice-formula-dry-dog-food-40-lbs-3748364",
"rating": 4.5378,
"review_count": 6737,
"price": 97.99,
"list_price": 97.99,
"autoship_price": 93.09,
"fulfillment": {
"pickup_in_store": true,
"same_day_delivery": true,
"autoship_eligible": true,
"in_store_only": false
},
"deal_group_ids": []
},
{
"position": 22,
"name": "Blue Buffalo Wilderness Wholesome Grains Natural Ingredients Adult High-Protein Dry Dog Food, 4.5 lbs.",
"brand": "Blue Buffalo",
"part_number": "3747564",
"cat_entry_id": "6106534",
"url": "https://www.petco.com/product/blue-buffalo-blue-wilderness-plus-wholesome-grains-natural-adult-high-protein-chicken-dry-dog-food-45-lbs-3747564",
"rating": 4.5734,
"review_count": 354,
"price": 19.99,
"list_price": 22.99,
"autoship_price": 18.99,
"fulfillment": {
"pickup_in_store": true,
"same_day_delivery": true,
"autoship_eligible": true,
"in_store_only": false
},
"deal_group_ids": [
"dog-food-treat-deals",
"dry-dog-food-deals"
]
}
]
},
"response_time": 9824
}Why not the official Petco API?
Petco has no public, self-serve API for product, price or store stock data.
Petco, without a product API
- No public API or self-serve developer key for petco.com products, prices or stock
- Store stock is checked one product and one store at a time
- Autoship and first-autoship prices sit on each product page with no export
- Ingredients and guaranteed analysis are on product pages only, one size at a time
Scavio Petco API
- One API key, issued at signup, with no Petco account
- One-time, list and autoship prices on every search and category result
- Units on hand for 10 products at one store in a single call, by store_id or ZIP
- Every variant's UPC, ingredients and guaranteed analysis in one product call
- Same JSON envelope as every other Scavio platform
Scavio returns publicly available Petco data only and never signs in as a Petco customer.
What developers build with it
Pet food price tracking
Track Petco's one-time, list and autoship prices for the foods and sizes you care about, and catch markdowns when price drops below list_price.
search + categoryAutoship and subscription comparison
Compare Petco's Repeat Delivery price and first-autoship promo price with other retailers' subscription prices for the same bag.
search + productLocal stock checker
Given a ZIP and a shopping list, show how many units of each item the nearest Petco has on hand, 10 products per call.
stores + store-inventoryPet food label data
Fill a catalog or a diet app with UPCs, ingredients, guaranteed analysis, feeding directions and specifications from Petco product pages.
productBrand and shelf monitoring
Watch a pet brand's Petco presence: search rank, price, deal groups, rating, review count and stock at the stores you care about.
search + store-inventoryRetail competitive intelligence
Put Petco prices next to Walmart, Target and Amazon for the same pet product, on one API key.
search + Walmart + AmazonHow to get Petco data as JSON
- 1
Get an API key
Sign up for a Scavio account and copy your key from the dashboard. You get 50 credits free on signup, with no card required and no Petco account.
- 2
Search Petco
Send {"query": "dog food"} to https://api.scavio.dev/api/v1/petco/search with an Authorization: Bearer header. Each result has its price, autoship price, part_number and cat_entry_id.
- 3
Check a store's stock
Send the cat_entry_id values you want, up to 10, with a ZIP or a store_id from /api/v1/petco/stores to /api/v1/petco/store-inventory. Use cat_entry_id, not part_number.
Petco API FAQ
Does Petco have a public API?
+
No. Petco does not offer a public, self-serve API for petco.com product, price or store stock data. The Scavio Petco API fills that gap with 5 POST endpoints that return Petco data as structured JSON: search, category, product detail, store locator and store inventory.
What is the Scavio Petco API?
+
It is a REST API that returns public Petco data as JSON: search and category listings with one-time, list and autoship prices, full product detail with every variant, ingredients and guaranteed analysis, stores near a ZIP, and units on hand at one store for up to 10 products. Every call costs 1 credit.
Do Petco prices differ by store?
+
No. Petco has one national price per item, and the API returns that price. The pickup price matched the regular price on every variant we checked. Stock does differ by store, which is what /api/v1/petco/store-inventory is for.
Does the API return the Repeat Delivery (autoship) price?
+
Yes. Every search and category result has autoship_price, the Repeat Delivery price, next to price and list_price. Product detail adds first_autoship_price, the promo price of a first autoship order: in our capture a 30 lbs. bag was $77.99, $74.09 on autoship and $57.99 on a first autoship order.
How do I check Petco stock at a store?
+
Call /api/v1/petco/store-inventory with up to 10 cat_entry_ids and either a store_id from /api/v1/petco/stores or a ZIP code (the nearest store is used and returned). Each item comes back with qty_available, alert_level (GREEN, YELLOW or RED) and in_stock. One call, 1 credit.
What is the difference between part_number and cat_entry_id?
+
They are two different ids for the same item. part_number is what /api/v1/petco/product takes (it is the number at the end of a petco.com product URL). cat_entry_id is what /api/v1/petco/store-inventory takes. Search results, variations and every product variant carry both, so read whichever the next call needs.
Why did my store inventory call return a 404?
+
Most often because one of the ids was a part number or an unknown id: store inventory takes cat_entry_id only, and one unknown id empties the whole answer. Check each id is a cat_entry_id, or send them in smaller batches to find the bad one. A 404 is not charged.
Can I search Petco by part number?
+
No. A bare part number as the search query is rejected with a 400. Look the item up with /api/v1/petco/product and part_number instead, or pass its petco.com product URL, which answers faster.
How long does a Petco request take?
+
Search, category and product calls can take 10 to 30 seconds, so set a client timeout of at least 60 seconds. A failed attempt is never charged. Store locator and store inventory calls are usually quicker.
Can I list a whole Petco category or deal?
+
Yes. /api/v1/petco/category takes a petco.com category path such as dog/dog-food/dry-dog-food, 48 products per page with six sorts. Deal groups are categories too: a search result's deal_group_ids value, such as dry-dog-food-deals, passed as path lists every product in that deal.
Does it return ingredients and guaranteed analysis?
+
Yes, on product detail. Each variant carries ingredients, guaranteed_analysis, directions, specifications, dimensions, UPC, SKU and images, plus fulfillment flags and its online stock.
Does the API return Petco reviews?
+
It returns each product's star rating and review count on search, category and product, plus the answered questions count on product detail. Review text is not available for Petco.
How much does a Petco request cost?
+
Every Petco endpoint costs 1 credit, including a store inventory call for 10 products. New accounts get 50 free credits on signup, one time, with no card required. Paid plans start at $30 per month for 7,000 credits.
How fresh is the data?
+
Every request fetches live from Petco at the moment you call it, and nothing is cached. Each response carries fetched_at, the time the data was retrieved.
Which languages and tools are supported?
+
Every endpoint is a plain HTTPS POST with a JSON body, so any language works. Scavio also ships Python and JavaScript SDKs, a remote MCP server at mcp.scavio.dev for AI agents, and an n8n community node, all on the same API key.
Is using Petco data legal?
+
Scavio returns publicly available Petco product, price and store data and does not access accounts, loyalty memberships, order history or Repeat Delivery subscriptions. You remain responsible for how you use the data, including compliance with Petco's terms. Talk to your own counsel for your specific use case.
Explore more of Scavio
PetSmart API
Pet supply prices, Autoship prices and unit counts per store.
Chewy API
Pet supply prices with Autoship, first-Autoship and MAP fields.
Walmart API
Search, product, reviews and store-level pricing.
Target API
Search, categories, detail and reviews.
Amazon API
Search, product detail by ASIN and every seller offer.
Costco API
Warehouse prices and stock, the coupon book and clearance.
Sam's Club API
Club prices and stock, Instant Savings and clearance.
Dollar General API
Store prices, units on hand, deals and digital coupons.
Petco API docs
All 5 endpoints with params and real responses.
Try the Petco API free
50 free credits on signup, no card. Your first request is a POST with a product name in it.