Yes, you can track Chewy's buy-once price on its own. Scavio's Chewy API returns it in the price field, separate from autoship_price and the first-Autoship price, for every product on a search page and for any single product. A small job that calls POST /api/v1/chewy/search or /api/v1/chewy/product once a day and compares price with your target is a price-drop alert you control. Each call costs 10 credits, about $0.02 on the Growth plan billed yearly, with no Chewy account.
The question comes from r/Frugal, where a shopper buying food and litter for their own cats and a colony of strays asked for email alerts when Chewy prices dip below a number, and wanted to track the "Buy Once" price specifically because Chewy also lists Autoship prices. The thread ranks first on Google for Chewy price tracking questions on Reddit. In a much larger thread on r/Pets (803 upvotes, 103 comments), a shopper described a $39 pet couch cover that showed $40 after signing in and $45 on a later visit. Both come down to the same need: a record of what Chewy charged, and when.
Why the buy-once price needs its own field
Chewy shows most items at three prices, and they do not move together. On November 2, 2026 we pulled Chewy's 36 best-selling cat foods: 35 carried an Autoship price 5% below the buy-once price, and one did not. Product calls on 12 best-selling foods showed a third price for the first Autoship order, 35% off but capped at $20. A tracker that reads "the price" off a page can pick up any of the three. Scavio returns each in its own field, so you choose the one you pay.
Step 1: Find the products and their ids
curl -s https://api.scavio.dev/api/v1/chewy/search \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "cat food", "sort": "bestselling"}'Chewy turned this query into its Cat Food category (the response's redirect names category 387) and returned 36 of 4,570 products. Three rows, as captured and trimmed to the price fields:
[
{ "product_id": "103856", "name": "Fancy Feast Gravy Lovers Poultry & Beef Feast Variety Pack Canned Cat Food, 3-oz, case of 24", "price": 22.86, "strike_price": 25.49, "autoship_price": 21.72, "autoship_discount_pct": 5, "in_stock": true },
{ "product_id": "229334", "name": "Purina Cat Chow Complete with Real Chicken & Vitamins Dry Cat Food, 20-lb bag", "price": 24.38, "strike_price": 25.99, "autoship_price": null, "autoship_discount_pct": null, "in_stock": true },
{ "product_id": "127508", "name": "Meow Mix Original Choice Dry Cat Food, 22-lb bag", "price": 24.58, "strike_price": 24.59, "autoship_price": 23.35, "autoship_discount_pct": 5, "in_stock": true }
]price is the buy-once price. strike_price is the crossed-out list price Chewy shows next to it, so a "deal" that is only a cent off, like the Meow Mix row, is easy to spot. Keep the product_id of each item you buy.
Step 2: Check each item on a schedule
If your items sit in one category, the search call above prices up to 36 of them at once. For a list spread across categories, call product once per item:
curl -s https://api.scavio.dev/api/v1/chewy/product \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"product_id": "127508"}'The response carries price (24.58 for the Meow Mix bag), autoship_price (23.35), the first-Autoship price, in_stock, the per-unit price, every size of the product with its own price, and a fetched_at time.
Step 3: Alert when the buy-once price drops
A short Python job, run once a day by cron or any scheduler, does what the r/Frugal post asked for:
import csv, datetime, requests
API_KEY = "sk_your_key_here" # from dashboard.scavio.dev; keep it out of source control
TARGETS = {"103856": 21.00, "229334": 22.00, "127508": 22.50} # product_id: alert at or below
for pid, target in TARGETS.items():
r = requests.post(
"https://api.scavio.dev/api/v1/chewy/product",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"product_id": pid},
timeout=120,
)
r.raise_for_status()
p = r.json()["data"]
with open("chewy_prices.csv", "a", newline="") as f:
csv.writer(f).writerow([datetime.date.today(), pid, p["price"], p["autoship_price"], p["in_stock"]])
if p["in_stock"] and p["price"] is not None and p["price"] <= target:
print(f"PRICE DROP: {p['name']} is ${p['price']} to buy once ({p['url']})")Swap the print for an email or a chat message. The CSV becomes your price history, which is the part a one-off check never gives you.
What this does and does not cover
- Live, not cached: every call reads chewy.com when you make it, and
fetched_atrecords when. - The public price: Scavio returns what a shopper sees without signing in. It cannot see prices shown inside your Chewy account, so it will not prove or disprove what the r/Pets post described, but a dated log of the public price gives you something to compare against.
- One national price: Chewy sells online only, so there is no store or ZIP code to choose.
- No history from before you start: the API returns today's price; the history is the log you keep.
- 10 credits a call: 20 products checked once a day with product calls is 6,000 credits a month, about $12 on the Growth plan billed yearly. If the items share a category, one search call a day prices 36 of them for about $0.60 a month.
The full comparison of Chewy data options, including MAP monitoring, is in the best Chewy price tracking APIs, and each call is walked through in how to get Chewy prices and Autoship prices.
Try the Chewy API free, 50 credits, no card, or run a search in the playground.
Reference: Chewy API overview · search docs · product docs
Frequently asked questions
Can I track only Chewy's buy-once price and ignore Autoship?
Yes. Scavio's Chewy API returns the buy-once price in price and the Autoship price in autoship_price, so an alert can watch price alone. They are separate fields because they move separately: some items show no Autoship price at all, and Purina Cat Chow Complete was $24.38 to buy once on November 2, 2026 with no recurring Autoship price listed.
Is there a free Chewy price tracker?
Browser extensions such as PriceLasso track Chewy product pages and email you when a price drops, and the top reply in the r/Frugal thread recommends it. For your own code, a spreadsheet or an agent, Scavio's 50 free signup credits cover 5 Chewy calls, and one search call prices 36 products.
Do Chewy prices change when you log in?
Some shoppers report it: a widely upvoted r/Pets post in August 2026 described a price that rose after signing in and again on a later visit. We cannot see signed-in prices, because Scavio returns the public price shown to a shopper who is not signed in. A timestamped daily log of that public price gives you a baseline to compare what your account shows against.
How much does it cost to track Chewy prices with an API?
Every Chewy call to Scavio is 10 credits. Watching 20 products with one product call each per day is 6,000 credits a month, about $12 on the Growth plan billed yearly. If they sit in one category, a single search call a day prices 36 products for 300 credits a month, about $0.60.