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

Why Are Whole Foods In-Store Prices Different From Online? Compare Both at Your Store in One Call

Whole Foods prices the shelf and online orders separately, and the gap runs both ways. Scavio's Whole Foods API returns both prices for your store as JSON.

Scavio Team

Nov 2, 2026

Try the Whole Foods API free
scavio
Grocery / Price monitoring
Whole foods

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.

ProductNew York shelfNew York onlineAustin shelfAustin 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

Bash
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

Bash
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

Bash
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:

JSON
{
  "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_store is the shelf, online is delivery and pickup at the same store. Either block is null when the store has no shelf listing or no online offer for the item.
  • Prime is a separate price: prime_price needs a Prime membership, so show it next to, not instead of, the price everyone pays.
  • Multi-buys are totals: a sale_quantity of 3 means the sale price is for three items.
  • Live, not cached: each call reads Whole Foods when you make it, and fetched_at records when.
  • No stock counts: online.availability is 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.

Whole Foods shelf and online prices as JSON

  • Shelf and online price for one store
  • Regular, sale and Prime price on each
  • No Whole Foods account, 1 credit a call
Try the Whole Foods API free

50 free credits, no credit card

On this page

  1. How big the gap is, and which way it runs
  2. Step 1: Find your store
  3. Step 2: Find the product
  4. Step 3: Read both prices for that store

Related articles

View all
  • scavio
    Grocery / Price monitoring
    Whole foods
    How to Get Whole Foods Prices by Store Through an API
  • scavio
    Grocery / Price monitoring
    Aldi
    Why Are ALDI App Prices Higher Than In Store? How to Get Your Store's Shelf Prices Instead
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