ScavioScavio
Pricing
Tools
Sign InsGet Startedg
Blog
Petco6 min readNov 2, 2026

How to Get Petco Prices and Store Inventory With an API: Autoship Prices and Units on Hand

Get Petco prices and store stock with Scavio's Petco API: search with autoship prices, product with first-autoship price, and units on hand for 10 items a call.

Scavio Team

Nov 2, 2026

Try the Petco API free
scavio
Inventory / Price monitoring
Petco

To get Petco prices and store stock from code, use Scavio's Petco API. POST /api/v1/petco/category or /search returns 48 products a page with the one-time, list and Repeat Delivery (autoship) price; /product adds every size's first-autoship price, UPC and ingredients; /stores finds the 10 Petco stores nearest a ZIP, and /store-inventory returns units on hand for up to 10 products at one of them. Every call costs 1 credit, about $0.002 on the Growth plan billed yearly.

Petco has no public product API, and petco.com shows stock for one selected store at a time. These five steps get the prices and the counts for any store, from code. Every response below was captured on November 2, 2026.

Step 1: List the products and their prices

Bash
curl -s https://api.scavio.dev/api/v1/petco/category \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"path": "dog/dog-food/dry-dog-food", "sort": "top_sold"}'

This returned 48 of 1,055 dry dog foods, 22 pages, in 8.6 s. Row 12, as captured (trimmed to the id, price and fulfillment fields, and to one of its four sizes without that size's url and image):

JSON
{
  "position": 12,
  "name": "Purina Pro Plan Sensitive Skin and Stomach Salmon and Rice Formula Dog Food, 30 lbs.",
  "brand": "Purina Pro Plan",
  "part_number": "2579466",
  "cat_entry_id": "531503",
  "url": "https://www.petco.com/product/purina-pro-plan-focus-adult-sensitive-skin-and-stomach-salmon-and-rice-formula-dry-dog-food-30-lb-bag-2579466",
  "rating": 4.5379,
  "review_count": 6743,
  "price": 77.99,
  "list_price": 80.99,
  "autoship_price": 74.09,
  "fulfillment": {
    "pickup_in_store": true,
    "same_day_delivery": true,
    "autoship_eligible": true,
    "in_store_only": false
  },
  "deal_group_ids": [],
  "variations": [
    {
      "name": "Purina Pro Plan Sensitive Skin and Stomach Salmon and Rice Formula Dog Food, 40 lbs.",
      "part_number": "3748364",
      "cat_entry_id": "6131012",
      "price": 97.99,
      "list_price": 97.99,
      "autoship_price": 93.09
    }
  ]
}

price is what you pay once, list_price is the was price (it equals price when nothing is on sale), and autoship_price is the Repeat Delivery price. On every row and size on this page the autoship price was 5% below the one-time price, rounded to the cent. Use /search with a query instead of a category for keyword lookups; the rows have the same shape. A deal group such as dry-dog-food-deals from deal_group_ids works as a category path too.

Step 2: Read the product for the first-autoship price

Bash
curl -s https://api.scavio.dev/api/v1/petco/product \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.petco.com/product/purina-pro-plan-focus-adult-sensitive-skin-and-stomach-salmon-and-rice-formula-dry-dog-food-30-lb-bag-2579466"}'

The response lists all 4 sizes. The 30 lb variant, as captured (description, details, ingredients, guaranteed analysis, specifications and images trimmed):

JSON
{
  "cat_entry_id": "531503",
  "part_number": "2579466",
  "sku": "2579466",
  "upc": "038100175526",
  "name": "Purina Pro Plan Sensitive Skin and Stomach Salmon and Rice Formula Dog Food, 30 lbs.",
  "attributes": [{ "name": "Weight", "value": "30.4 LBS" }],
  "price": 77.99,
  "list_price": 80.99,
  "autoship_price": 74.09,
  "first_autoship_price": 57.99,
  "pickup_price": 77.99,
  "online_quantity": 2106,
  "inventory_status": "Available",
  "is_discontinued": false,
  "fulfillment": {
    "pickup_in_store": true,
    "same_day_delivery": true,
    "autoship_eligible": true,
    "in_store_only": false,
    "online_only": false
  },
  "is_rx": false,
  "is_rx_food": false,
  "pet_type": "Dog"
}

first_autoship_price is the price of the first Repeat Delivery order: $57.99, exactly $20 below $77.99. Across 48 sizes of 15 top-selling dry dog and cat foods, the first order was 35% off up to a $20 cap, so the 16 lb bag here ($54.99) got the full 35% and fell to $35.74. pickup_price equals price because Petco prices are national. The trimmed fields carry the label data: the ingredients start "Salmon, Rice, Barley, Canola Meal" and the guaranteed analysis "Crude Protein (Min) 26.0%". Passing the row's url answers faster than part_number. Our product calls took 2.7 to 24.7 s, so give them a 60-second timeout. The chart of all 48 sizes is in the best Petco product data APIs.

Step 3: Find the stores near a ZIP

Bash
curl -s https://api.scavio.dev/api/v1/petco/stores \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"zip": "60614", "limit": 10}'

ZIP 60614 in Chicago returned 10 stores from 0.43 to 9.33 miles away. The first, as captured (Tuesday to Saturday hours trimmed; all were 09:00 to 21:00):

JSON
{
  "store_id": "12286",
  "store_number": "869",
  "name": "CLYBOURN",
  "store_type": "PETCO B&M",
  "address": "2000 N Clybourn Ste 100",
  "address2": null,
  "city": "Chicago",
  "state": "IL",
  "zip": "60614",
  "phone": "773-665-1368",
  "latitude": 41.91752,
  "longitude": -87.65916,
  "distance_miles": 0.43,
  "pickup_in_store": true,
  "hours": {
    "monday": { "open": "09:00", "close": "21:00" },
    "sunday": { "open": "09:00", "close": "20:00" }
  }
}

Store inventory takes store_id, not store_number. limit goes up to 10.

Step 4: Check units on hand

Bash
curl -s https://api.scavio.dev/api/v1/petco/store-inventory \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"cat_entry_ids": ["531503", "24636"], "zip": "60614"}'

With a ZIP, the nearest store answers and is returned as store. The captured response (store trimmed of distance, pickup flag and hours):

JSON
{
  "data": {
    "store_id": "12286",
    "zip": "60614",
    "store": {
      "store_id": "12286",
      "store_number": "869",
      "name": "CLYBOURN",
      "store_type": "PETCO B&M",
      "address": "2000 N Clybourn Ste 100",
      "address2": null,
      "city": "Chicago",
      "state": "IL",
      "zip": "60614",
      "phone": "773-665-1368",
      "latitude": 41.91752,
      "longitude": -87.65916
    },
    "count": 2,
    "items": [
      { "cat_entry_id": "24636", "qty_available": 8, "alert_level": "GREEN", "in_stock": true },
      { "cat_entry_id": "531503", "qty_available": 0, "alert_level": "RED", "in_stock": false }
    ],
    "missing_cat_entry_ids": []
  },
  "response_time": 11212,
  "fetched_at": "2026-11-02T18:25:53.283Z",
  "credits_used": 1
}

The Clybourn store had 8 bags of Blue Buffalo Life Protection Formula (30 lbs.) and none of the 30 lb Purina bag. Send up to 10 ids per call. Every id must be a cat_entry_id: one unknown id empties the whole answer with a 404, which is not charged, so if a batch 404s, retry the ids one at a time.

Step 5: Loop over the stores

One call covers one store, so a metro check is a loop over step 3's store_id values. We checked the 10 top-selling dry dog foods at all 10 Chicago stores: 10 calls, 10 credits, 1.0 to 16.0 s each.

Product (size checked)Stores with stockUnits across 10 stores
WholeHearted Grain Free Beef and Pea, 40 lbs.957
Blue Buffalo Life Protection Chicken and Brown Rice, 30 lbs.949
Hill's Science Diet Sensitive Stomach and Skin, 30 lbs.942
ORIJEN Original, 23.5 lbs.938
Purina Pro Plan Sensitive Skin and Stomach, 30 lbs.829
WholeHearted Active Performance, 45 lbs.618
Nutro Natural Choice Lamb and Brown Rice Small Bites, 30 lbs.513
The Honest Kitchen, Royal Canin Labrador 5+ and Stella and Chewy's Wild Red00

The Purina bag ranged from 0 at the nearest store to 6 at Chicago Diversey, 3.87 miles away. One store, North Orleans at 440 N Orleans St, returned 0 for all 10. A 0 does not say whether a store has sold out or never carries an item, and the three products at 0 everywhere are online best sellers, so check fulfillment.in_store_only and pickup_in_store before you alert on them.

All five endpoints

EndpointWhat it returnsCredits
/api/v1/petco/search48 products a page for a keyword: one-time, list and autoship price, rating, review count, ids, fulfillment flags, deal groups, every size with its prices, facets1
/api/v1/petco/categoryThe same listing for a petco.com category path or deal group1
/api/v1/petco/productEvery size: UPC, SKU, one-time, list, autoship, first-autoship and pickup price, online quantity, ingredients, guaranteed analysis, specifications, images1
/api/v1/petco/storesUp to 10 stores nearest a ZIP with store_id, address, phone, distance and hours1
/api/v1/petco/store-inventoryUnits on hand, GREEN, YELLOW or RED level and in_stock for up to 10 products at one store, by store_id or ZIP1

Prices are the same at every store, so there is no store parameter on search, category or product. A bare part number as a search query returns a 400; look it up with /product instead.

Getting started

  1. Sign up at dashboard.scavio.dev/sign-up: 50 free credits, no card required.
  2. Copy your API key from the dashboard.
  3. Send a POST to /api/v1/petco/search with a query and your key as a Bearer token, then pass a row's cat_entry_id and a ZIP to /api/v1/petco/store-inventory.

Try the Petco API free in the playground first, or call it from Claude and other agents through the MCP server.

Reference: Petco API overview · search · category · product · stores · store inventory

Frequently asked questions

How do I check Petco inventory at a store?

On petco.com you select a store and read the pickup availability on each product page, one store at a time. From code, call Scavio's /api/v1/petco/store-inventory with up to 10 cat_entry_id values and a store_id or a ZIP; it returns qty_available, Petco's GREEN, YELLOW or RED level and in_stock for each product, for 1 credit.

Where do I find a Petco product's cat_entry_id?

Every search and category row has one, every size in its variations array has its own, and every variant in a product response has one. The store inventory endpoint takes cat_entry_id only. The part number at the end of a petco.com product URL is a different id, and passing it to store inventory returns a 404.

Does the API return Petco's autoship price?

Yes. Search and category rows carry autoship_price, the Repeat Delivery price for every order, which was 5% below the one-time price on all 48 sizes we checked on November 2, 2026. The product endpoint adds first_autoship_price, the first-order price: 35% off up to $20 that day.

Why does a Petco category call take so long?

Category and product calls read live from Petco and can take 25 to 30 seconds; ours took 2.7 to 24.7 s. Set a client timeout of at least 60 seconds. An occasional call times out upstream and returns a 502, which is not charged, so retry it.

Petco prices and stock as JSON

  • Autoship and first-autoship price for every size
  • Units on hand for 10 products per store call
  • Stores near any ZIP with their store_id
Try the Petco API free

50 free credits, no credit card

On this page

  1. Step 1: List the products and their prices
  2. Step 2: Read the product for the first-autoship price
  3. Step 3: Find the stores near a ZIP
  4. Step 4: Check units on hand

Related articles

View all
  • scavio
    Comparison / Price monitoring
    Petco
    5 Best Petco Product Data APIs in 2026: Scavio Prices the First Repeat Delivery and Counts Units by Store
  • scavio
    Inventory / Price monitoring
    Walgreens
    How to Get Walgreens Product Data and Store Stock Through an API
ScavioScavio

One scraper API for every social, search, e-commerce and real estate platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy