ScavioScavio
Pricing
Tools
Sign InsGet Startedg
7 live endpoints

Whole Foods API

Whole Foods Market product data as structured JSON, priced at the store you choose: search, categories and deals with regular, sale and Prime member prices, the weekly sales flyer, product detail with nutrition and the online price, and a store locator by ZIP.

Get your API keyRead the docs

50 free credits on signup. No card, no Whole Foods account.

POST /api/v1/wholefoods/search
sample
query:
try
{  "data": {    "query": "milk",    "category": null,    "store_id": "10160",    "sort": "relevance",    "on_sale": false,    "diet": null,    "offset": 0,    "limit": 60,    "total_results": 504,    "count": 60,    "products": [      {        "position": 1,        "asin": "B078WVT2BC",        "slug": "elmhurst-unsweetened-hazelnut-milked-32-fz-b078wvt2bc",        "name": "Unsweetened Hazelnut Milked, 32 FZ",        "brand": "Elmhurst",        "image": "https://m.media-amazon.com/images/S/assets.wholefoodsmarket.com/PIE/product/41Z7pgsEWEL.jpg",        "regular_price": 7.29,        "sale_price": null,        "sale_quantity": null,        "prime_price": null,        "prime_quantity": null,        "sale_start_date": null,        "sale_end_date": null,        "price_unit": null,        "on_sale": false,        "is_local": true,        "store_id": "10160",        "url": "https://www.wholefoodsmarket.com/grocery/product/elmhurst-unsweetened-hazelnut-milked-32-fz-b078wvt2bc"      },      {        "position": 2,        "asin": "B082VVT75S",        "slug": "elmhurst-unsweetened-oat-milk-32-fz-b082vvt75s",        "name": "Unsweetened Oat Milk, 32 FZ",        "brand": "Elmhurst",        "image": "https://m.media-amazon.com/images/S/assets.wholefoodsmarket.com/PIE/product/41W8VdoCfGL.jpg",        "regular_price": 7.29,        "sale_price": null,        "sale_quantity": null,        "prime_price": null,        "prime_quantity": null,        "sale_start_date": null,        "sale_end_date": null,        "price_unit": null,        "on_sale": false,        "is_local": true,        "store_id": "10160",        "url": "https://www.wholefoodsmarket.com/grocery/product/elmhurst-unsweetened-oat-milk-32-fz-b082vvt75s"      }    ]  },  "response_time": 853}
captured example · 1 credits3 / 3 free

Live call against the real endpoint at store 10160 (Columbus Circle, New York), in-store prices. 3 free runs, then it's your own key.

What is the Scavio Whole Foods API?

The Scavio Whole Foods API is a REST API that returns Whole Foods Market data as structured JSON for the store you pick. Whole Foods has no public product API. Its 7 POST endpoints cover search, categories, deals, the weekly flyer, product detail with nutrition, and store lookup, at 1 credit per call.

7
endpoints, all live in production
1
credit per call, every endpoint
3
prices per item: regular, sale and Prime

The Whole Foods data buyers actually need

What it costs at one store, what is on sale this week, and what the Prime price is.

Store-level shelf prices

POST /api/v1/wholefoods/search

Search Whole Foods at the store you pick: each result has that store's regular price, sale price and Prime member price in dollars. Our Columbus Circle capture priced Elmhurst Unsweetened Hazelnut Milked, 32 FZ, at $7.29.

Every sale item, with Prime prices

POST /api/v1/wholefoods/deals

All on-sale items at one store with sale start and end dates and multi-buys spelled out: Boulder Canyon chips were $4.69 each, 3 for $12.23 on sale and 3 for $11.01 with Prime. Store 10160 had 2,022 items on sale.

The weekly sales flyer

POST /api/v1/wholefoods/sales-flyer

The store's current flyer as JSON: 45 promotions at Columbus Circle, such as Organic Honeycrisp Apples at $3.99/lb, $3.32/lb on sale, $2.99/lb with Prime, each with the ASINs it covers.

Shelf price vs online price

POST /api/v1/wholefoods/product

Product detail returns the store's in-store price and its online delivery and pickup price as separate blocks, plus ingredients and nutrition facts. The same hazelnut milk was $7.29 on the shelf and $7.49 online.

All 7 Whole Foods API endpoints

Every route is a POST, returns JSON, and takes the same API key. 1 credit per successful call.

EndpointReturnsCredits
Search/api/v1/wholefoods/searchSearch at one store, up to 60 per page: the store's regular, sale and Prime member price with sale dates, ASIN, brand, image, on-sale and local flags, plus category, featured and diet facets1
Category/api/v1/wholefoods/categoryBrowse one category (or the whole store) at one store with six sorts and on-sale and diet filters: breadcrumb, total results and the same in-store prices per product1
Deals/api/v1/wholefoods/dealsEvery item on sale at one store, store-wide or in one category: regular, sale and Prime price, multi-buy quantities and sale start and end dates1
Product detail/api/v1/wholefoods/productOne product by ASIN, URL or slug: ingredients, nutrition facts, diets, SNAP EBT eligibility and images, plus the store's in-store price and its online price as separate blocks1
Store locator/api/v1/wholefoods/storesStores near a ZIP, nearest first: store_id, address, phone, coordinates, distance in miles and seven days of in-store and pickup hours1
Store details/api/v1/wholefoods/storeOne store by id: name, status, Prime eligibility, opening date, address, coordinates, time zone and its store page and flyer URLs1
Weekly sales flyer/api/v1/wholefoods/sales-flyerThe store's current weekly flyer: each promotion's product, brand, terms, regular, sale and Prime price as printed, dates, rank and the ASINs it covers1

50 free credits on signup covers 50 Whole Foods calls. See plans

Find a store, then search and price it

The stores call turns a ZIP into store ids; search returns that store's regular, sale and Prime prices. The response on the right is a real capture.

from scavio import ScavioClient

client = ScavioClient(api_key="sk_live_your_key")

# Nearest Whole Foods stores to a ZIP - 1 credit
stores = client.whole_foods.stores(zip="10019")["data"]["stores"]
store_id = stores[0]["store_id"]

# Search at that store: regular, sale and Prime prices - 1 credit
res = client.whole_foods.search(query="milk", store_id=store_id)["data"]
for p in res["products"]:
    print(p["asin"], p["name"], p["regular_price"], p["sale_price"], p["prime_price"])

# Shelf price vs online price for one product - 1 credit
p = client.whole_foods.product(asin=res["products"][0]["asin"], store_id=store_id)["data"]
print(p["in_store"], p["online"])
200 response.jsoncaptured
{
  "data": {
    "query": "milk",
    "category": null,
    "store_id": "10160",
    "sort": "relevance",
    "on_sale": false,
    "diet": null,
    "offset": 0,
    "limit": 60,
    "total_results": 504,
    "count": 60,
    "products": [
      {
        "position": 1,
        "asin": "B078WVT2BC",
        "slug": "elmhurst-unsweetened-hazelnut-milked-32-fz-b078wvt2bc",
        "name": "Unsweetened Hazelnut Milked, 32 FZ",
        "brand": "Elmhurst",
        "image": "https://m.media-amazon.com/images/S/assets.wholefoodsmarket.com/PIE/product/41Z7pgsEWEL.jpg",
        "regular_price": 7.29,
        "sale_price": null,
        "sale_quantity": null,
        "prime_price": null,
        "prime_quantity": null,
        "sale_start_date": null,
        "sale_end_date": null,
        "price_unit": null,
        "on_sale": false,
        "is_local": true,
        "store_id": "10160",
        "url": "https://www.wholefoodsmarket.com/grocery/product/elmhurst-unsweetened-hazelnut-milked-32-fz-b078wvt2bc"
      },
      {
        "position": 2,
        "asin": "B082VVT75S",
        "slug": "elmhurst-unsweetened-oat-milk-32-fz-b082vvt75s",
        "name": "Unsweetened Oat Milk, 32 FZ",
        "brand": "Elmhurst",
        "image": "https://m.media-amazon.com/images/S/assets.wholefoodsmarket.com/PIE/product/41W8VdoCfGL.jpg",
        "regular_price": 7.29,
        "sale_price": null,
        "sale_quantity": null,
        "prime_price": null,
        "prime_quantity": null,
        "sale_start_date": null,
        "sale_end_date": null,
        "price_unit": null,
        "on_sale": false,
        "is_local": true,
        "store_id": "10160",
        "url": "https://www.wholefoodsmarket.com/grocery/product/elmhurst-unsweetened-oat-milk-32-fz-b082vvt75s"
      }
    ]
  },
  "response_time": 853
}

Why not the official Whole Foods API?

Whole Foods Market has no public product API. Its official data exchange is supplier EDI only.

Whole Foods, without an API

  • No public product API or self-serve developer key
  • The official data channel is supplier EDI only
  • Prices are set per store, with separate regular, sale and Prime member prices
  • Shelf and online prices for the same item can differ

Scavio Whole Foods API

  • One API key, issued at signup, with no Whole Foods or Amazon account
  • Any store's regular, sale and Prime prices by store_id
  • Every sale item and the weekly flyer per store
  • In-store and online price as separate, labelled fields
  • Same JSON envelope as every other Scavio platform

Scavio returns publicly available data only, and never signs in as a Whole Foods or Amazon customer.

What developers build with it

Grocery price comparison

Put Whole Foods shelf prices next to Kroger, HEB, ALDI and Walmart for the same basket, store by store, on one API key.

search + Kroger + HEB + ALDI

Prime deal trackers

Track every sale item at a store with its regular, sale and Prime member price and sale end date, and alert when a product goes on sale.

deals + search (on_sale)

Weekly flyer apps

Turn each store's weekly sales flyer into structured promotions with dates, terms and the ASINs they cover.

sales-flyer + product

Nutrition and diet filters

Filter by vegan, gluten-free, organic, dairy-free or vegetarian, then read ingredients, nutrition facts and SNAP EBT eligibility.

search (diet) + product

In-store vs online pricing research

Compare the shelf price with the delivery and pickup price for the same item at the same store, across stores and regions.

product (in_store vs online)

How to get Whole Foods data as JSON

  1. 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 Amazon or Whole Foods account.

  2. 2

    Pick a store

    Send {"zip": "10019"} to https://api.scavio.dev/api/v1/wholefoods/stores with an Authorization: Bearer header. Each store comes back with its 5-digit store_id, address, distance and hours.

  3. 3

    Search and price at that store

    Pass the store_id with a query to /api/v1/wholefoods/search, or to deals and sales-flyer for that store's sales. Use a result's asin with /api/v1/wholefoods/product for nutrition and the online price.

One key, 55 platformsMCP server for agentsPython & JS SDKsn8n community node

Whole Foods API FAQ

Does Whole Foods have a public API?

+

No. Whole Foods Market has no public product API; its official data exchange is supplier EDI only. The Scavio Whole Foods API fills that gap with 7 POST endpoints that return wholefoodsmarket.com data as JSON: search, category, deals, product, store locator, store details and the weekly sales flyer.

What is the Scavio Whole Foods API?

+

It is a REST API that returns public Whole Foods Market product, price, store and flyer data as structured JSON, priced at the store you choose. Every endpoint costs 1 credit per call.

Are Whole Foods prices the same at every store?

+

No. Whole Foods prices are set per store, so search, category and deals are priced at one store: pass a 5-digit store_id, or the API uses store 10145 (Lamar, Austin TX). In our capture at store 10160 (Columbus Circle, New York), Elmhurst Unsweetened Hazelnut Milked, 32 FZ, was $7.29.

Does it return Prime member prices?

+

Yes. Every product row carries regular_price, sale_price and prime_price, the Prime member price, with sale_start_date and sale_end_date. sale_price and prime_price are null when the store has no sale or Prime price on the item.

How are multi-buy deals shown?

+

As a total plus a quantity. sale_price 12.23 with sale_quantity 3 means 3 for $12.23; prime_quantity works the same way for prime_price. price_unit lb means the price is per pound.

Why do the in-store and online prices differ?

+

Whole Foods prices the shelf and online orders separately. The product endpoint returns both for one store as separately labelled blocks: in_store (shelf regular, sale and Prime price) and online (delivery and pickup price, unit price and availability). In our capture the same hazelnut milk was $7.29 on the shelf and $7.49 online.

How do I find a Whole Foods store_id?

+

POST a ZIP code to /api/v1/wholefoods/stores. It returns stores nearest first within 15 miles, widening to 50, each with store_id, name, address, phone, coordinates, distance and seven days of hours. ZIP 10019 returned 29 stores, the nearest 0.42 miles away.

Can I get the Whole Foods weekly sales flyer?

+

Yes. /api/v1/wholefoods/sales-flyer returns a store's current flyer: each promotion's product, brand, headline, terms, regular, sale and Prime price, start and end dates, rank and the ASINs it covers. Flyer prices are text as printed, such as "$3.99/lb" or "44% off". For numeric sale prices, use deals.

Does the API return stock levels?

+

No. Whole Foods does not publish per-store unit counts, so there is no quantity or stock level. A product appears in search, category and deals when that store's catalog carries it, and the product endpoint's online.availability is the online offer's status.

Does it return ratings, reviews or UPCs?

+

No. Whole Foods shows no product ratings, reviews or UPCs, so the API returns none. The product id is the ASIN, which every search result carries.

Can I get ingredients and nutrition facts?

+

Yes, from /api/v1/wholefoods/product: ingredients, a nutrition panel with calories, serving size and every nutrient with its daily value, diets such as vegan or gluten_free, SNAP EBT eligibility and images.

How can I sort and filter results?

+

Search sorts by relevance (the default) or price, ascending or descending, and nothing else. Category and deals add featured, popular and brand A-Z or Z-A. All three filter by diet (vegan, gluten-free, organic, dairy-free, vegetarian), and search and category also take on_sale. Up to 60 products per page; page with offset.

What are the limitations?

+

Prices are per store, so results are only as local as the store_id you pass (default 10145, Austin TX). In-store and online prices can differ. There are no ratings, reviews, UPCs or per-store unit counts, only presence in the store's catalog. Search sorts only by relevance or price. Flyer prices are display text. The product id is the ASIN.

How much does a Whole Foods request cost?

+

Every Whole Foods endpoint costs 1 credit per successful call. Errors such as an unknown product, store or category (404) or a temporary outage (502) are not charged. 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 Whole Foods Market at the moment you call it, and nothing is cached. Each response carries fetched_at, the time the data was retrieved.

Is using Whole Foods data legal?

+

Scavio returns publicly available Whole Foods Market product data and does not access accounts or order history. You remain responsible for how you use the data, including compliance with Whole Foods' terms. Talk to your own counsel for your specific use case.

Explore more of Scavio

Whole Foods API docs

All 7 endpoints with params and real responses.

Kroger API

Grocery prices and promos across Kroger banners.

HEB API

Grocery prices by store, nutrition facts, SNAP eligibility and store finder.

ALDI API

ALDI US store prices, stock and aisle, ingredients and allergens.

Amazon API

Search, product detail by ASIN and every seller offer.

Walmart API

Search, product, reviews and store-level pricing.

Costco API

Warehouse prices and stock, the coupon book and clearance.

Target API

Search, categories, detail and reviews.

Try the Whole Foods API free

50 free credits on signup, no card. Your first request is a POST with a product name and a store id in it.

Get your API keySee pricing
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