Whole Foods sets its shelf prices and its online delivery and pickup prices separately, store by store, and the gap does not always run the same way. To see both for your own store, call Scavio's Whole Foods API: POST /api/v1/wholefoods/product with an ASIN and your store's store_id returns an in_store block with the shelf's regular, sale and Prime prices and an online block with the delivery and pickup price for the same store. Each call costs 1 credit, about $0.002 on the Growth plan billed yearly, and needs no Whole Foods or Amazon account.
The question has been asked on Reddit for years. In a thread on r/amazonprime with 19 upvotes and 23 comments, a shopper who used the Prime Now app as a shopping list for their local Whole Foods noticed that sale prices on the shelf did not match the app, and then found it was "item after item", sometimes by 50 cents and sometimes by several dollars. They asked whether it was deliberate or a run of pricing mistakes. The answer is that both are, for different ways of buying, and you can read both before you shop.
How big the gap is, and which way it runs
We read ten products at two stores on November 2, 2026: Columbus Circle in New York (store 10160) and Lamar in Austin (store 10145). The prices below are what a shopper without Prime pays: the sale price when the item is on sale, otherwise the regular price.
| Product | New York shelf | New York online | Austin shelf | Austin online |
|---|---|---|---|---|
| Vital Farms Organic Large Eggs, 12 ct | $9.41 | $8.31 | $8.31 | $9.16 |
| Pete and Gerry's Organic Brown Large Eggs, 12 ct | $8.29 | $7.99 | $6.99 | $7.49 |
| 365 Organic Unsweetened Almond Milk, 32 fl oz | $3.19 | $2.99 | $2.29 | $2.29 |
| Elmhurst Unsweetened Hazelnut Milked, 32 fl oz | $7.29 | $6.99 | $6.79 | $6.99 |
| a2 Milk Whole Milk, 59 fl oz | $5.49 | $5.49 | $4.99 | $5.49 |
| Mutti Organic Double Concentrated Tomato Paste | $3.19 | $3.03 | $3.19 | $3.19 |
Across all ten, the New York store was cheaper online for 5 products and the same for 5; it was never dearer online. The Austin store was dearer online for 4, cheaper for 1 (Vital Farms large eggs, $6.23 on the shelf and $6.16 online) and the same for 5. The two channels did not track each other: Columbus Circle's online price for the organic eggs ($8.31, list $9.99) matched the Austin shelf, and Austin's online price ($9.16, list $10.99) matched the shelf price at the Chicago, Los Angeles and Miami stores we also checked. So the Reddit poster's experience is real, and a rule like "online is always higher" would be wrong in New York and right only some of the time in Austin.
Prime adds a third price on each side. Whole Foods gives Prime members an extra 10% off storewide sales when they scan the app, and both blocks carry it: the organic eggs were $8.47 for Prime members on the Columbus Circle shelf and $7.48 for Prime online.
Step 1: Find your store
curl -s https://api.scavio.dev/api/v1/wholefoods/stores \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"zip": "10019"}'Stores come back nearest first, each with a 5-digit store_id. For ZIP 10019 there were 29; Columbus Circle, 10160, was second at 0.54 miles.
Step 2: Find the product
curl -s https://api.scavio.dev/api/v1/wholefoods/search \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "eggs", "store_id": "10160"}'Each row has the product's asin and the store's shelf prices. The Vital Farms organic carton came back as B00M1QWODW with regular_price 11.29, sale_price 9.41 and prime_price 8.47.
Step 3: Read both prices for that store
curl -s https://api.scavio.dev/api/v1/wholefoods/product \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"asin": "B00M1QWODW", "store_id": "10160"}'Trimmed to the two price blocks:
{
"store_id": "10160",
"in_store": {
"regular_price": 11.29,
"sale_price": 9.41,
"sale_quantity": 1,
"prime_price": 8.47,
"prime_quantity": 1,
"sale_start_date": "2026-10-21T00:00:00Z",
"sale_end_date": "2026-11-03T23:59:59Z",
"price_unit": null,
"is_local": false
},
"online": {
"price": 8.31,
"list_price": 9.99,
"savings": 1.68,
"savings_percent": "17%",
"prime_price": 7.48,
"unit_price": 0.69,
"unit_price_unit": "count",
"currency": "USD",
"availability": "IN_STOCK",
"max_order_quantity": 66
}
}Repeat with another store_id to compare stores, or loop over your shopping list to build a two-column list for your store.
What to know before you rely on it
- Your store, not an average: the organic eggs had a regular shelf price of $11.29 in New York and $9.99 in Austin and Seattle on the same day. Price the store you shop.
- Label the channel:
in_storeis the shelf,onlineis delivery and pickup at the same store. Either block isnullwhen the store has no shelf listing or no online offer for the item. - Prime is a separate price:
prime_priceneeds a Prime membership, so show it next to, not instead of, the price everyone pays. - Multi-buys are totals: a
sale_quantityof 3 means the sale price is for three items. - Live, not cached: each call reads Whole Foods when you make it, and
fetched_atrecords when. - No stock counts:
online.availabilityis the online offer's status, not how many cartons are on the shelf.
A weekly list of 30 products at your store is 30 credits, about 6 cents at the Growth-yearly rate. The full comparison of Whole Foods data options is in the best Whole Foods grocery price APIs, and every endpoint is walked through in how to get Whole Foods prices by store.
Try the Whole Foods API free, 50 credits, no card, or run a product lookup at your own store in the playground.
Reference: Whole Foods API overview · product docs · search docs · stores docs
Frequently asked questions
Are Whole Foods online prices the same as in store?
Not always. On November 2, 2026, 5 of 10 products we checked at Columbus Circle in New York were cheaper online than on the shelf and none were dearer, while at the Lamar store in Austin 4 of the same 10 cost more online and 1 cost less. The other 5 at each store matched.
Are groceries cheaper online or in store at Whole Foods?
It depends on the store. A carton of Vital Farms organic eggs was $9.41 on sale on the Columbus Circle shelf and $8.31 online, but $8.31 on the Austin shelf and $9.16 online. Compare your own store's two prices rather than assuming one channel is cheaper.
How does Whole Foods know you are a Prime member?
In the store you scan the Whole Foods Market or Amazon app at checkout, and Whole Foods says you must identify as a Prime member to get the Prime price. Scavio's product endpoint returns the shelf Prime price and the online Prime price for the same store as separate fields.
Can I see Whole Foods in-store prices online?
The website and app price items for the store you select. Scavio's Whole Foods API returns that store's shelf prices (regular, sale and Prime) and its online price as two labelled blocks from /api/v1/wholefoods/product, so a shopping list can use the price for the way you actually shop.