The shelf price, sale, stock and aisle of any product at any Kroger-family store
Kroger prices are set per store, so this API always answers for one store.
3 active endpoints, on 2 and 3 credit tiers.
- POST/kroger/v1/stores
- POST/kroger/v1/search
- POST/kroger/v1/product
What Kroger endpoints does ReefAPI ship?
3 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Kroger API
5 of 3 endpoints, ready to run
Milk prices and stock at one Cincinnati Kroger
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
How the Kroger API works
Kroger is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 491 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
From a ZIP code to a priced, stocked shopping list
Pick the store, search its catalogue, then read the products that matter in full.
Nearby grocery stores, nearest first, with location_id, banner, address, hours and ways to shop.
The first 24 products with regular and sale price, multi-buy deals, unit price, stock count, aisle and a sponsored flag, plus Kroger's own total.
The same store price plus every aisle location, nutrition panel, ingredients, allergens and all images.
A dated, store-specific price and stock feed for Kroger-family products, with deals, aisle locations and nutrition.
curl -X POST https://api.reefapi.com/kroger/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"milk","location_id":"01400929"}'{
"ok": true,
"data": { … },
"meta": {
"api": "kroger",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}What a Kroger field actually contains
Fields that read differently from how they look. Every row was measured against live Kroger pages on 2026-10-14.
| Field | What it holds |
|---|---|
| upc | Kroger's 13-digit product number without check digit (0001111041700). Pass it unchanged to product; a printed 12-digit UPC-A or a 14-digit GTIN with a valid check digit is converted. Search to product returned the same UPC and the same prices on 14 of 14 products. |
| regular_price, sale_price | The shelf price at the store in `store`, in US dollars. sale_price is only set when it is really below the regular price; discount_pct is computed from the two. On 143 products across 6 searches the price matched the price Kroger prints on its own product card 141 times; the other 2 were bananas, whose card shows a per-pound price. |
| multibuy | Deals that need more than one unit: quantity, total, per_unit and the deal text. "10 For $12.00" means 1.20 each. On a "Buy 3 For $15.00" deal Kroger's single price stays the regular one, so must_buy is true and sale_price stays empty. |
| price_is_estimate, weight_price | Produce and meat sold by weight: the price is Kroger's "about $1.45 each" estimate and weight_price holds the real price per pound ($0.69/lb). |
| available_to_sell, stock_level | The store's sellable count as Kroger publishes it (for example 195) and its level: HIGH, LOW or TEMPORARILY_OUT_OF_STOCK. Kroger does not publish a count for every product: filled on 183 of 240 rows, never on beer, rarely on soda. |
| aisle | Where the product sits in that store: aisle name and number, side, bay and shelf. product lists every location when there are several. Filled on 238 of 240 rows. |
| sponsored | True on paid placements Kroger mixes into the results: 46 of 240 rows, between 0 and 9 per search. |
| total | Kroger's own count of matches at that store. It stops at 1,000 (total_is_capped), and one call returns the first 24 results. |
The same product costs different amounts in different stores: a gallon of Kroger 2% milk was $2.99 in a Cincinnati store and $3.19 in Rolla, Missouri, at the same minute, and the number of matching products differed too (929 against 603 for "milk"). Always pass the store you care about; the response names the store it priced.
Kroger coverage, measured
Every number below was read from live Kroger responses on 2026-10-14, in two consecutive runs of 53 calls each.
Kroger, Ralphs, Fred Meyer, King Soopers, Fry's, Smith's, QFC, Harris Teeter, Dillons, Baker's, City Market, Gerbes, JayC, Pay Less, Mariano's, Metro Market, Pick 'n Save, Foods Co and Food 4 Less: 19 banners, all answering in the same format.
"milk" at one Cincinnati store: 929 products → brand Kroger 66, on sale 342, organic 88, gluten free 391.
On 240 search rows across 10 categories: UPC, title, size, image, department and ways to shop 240/240; regular price 238; aisle 238; brand 229; unit price 216 (by-weight produce has a per-pound price instead); stock count 183; sale price 91; dietary tags 91.
The price matched Kroger's own product card on 141 of 143 products; the crossed-out regular price on 140 of 143 (3 cards show it one cent lower than Kroger's price record).
With the store fixed, four separate reads of the same 24 products gave identical prices and stock.
One store per call; the first 24 results per search, no paging or sorting; total stops at 1,000; no digital coupons; stock count not published for every product.
What people build with Kroger
The jobs this data is most often used for.
endpoints
credits per call
Track the shelf price and sale price of a basket of UPCs at the stores you care about, week by week.
Compare one product's price across Kroger, Ralphs, Fred Meyer and King Soopers stores in different cities.
Monitor which brands run sales and multi-buy deals, and when those deals end.
Build store-aware shopping lists with aisle, shelf and stock level for each item.
What Kroger data costs
The cheapest call here is 2 credits, so $15/mo (Pro) buys 5,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 491 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/kroger/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"milk","location_id":"01400929"}'import requests
r = requests.post(
"https://api.reefapi.com/kroger/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "milk",
"location_id": "01400929"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up Kroger.
Get a free key →Do I need a Kroger account or loyalty card?▾
No. Everything is read logged out, and the prices are the ones Kroger shows a visitor who picked that store, sale prices included.
How do I choose the store?▾
Call stores with a ZIP code and pass a location_id to search or product, or pass zip directly and the nearest grocery store is used and returned in store. For ZIP 45202 the source listed 50 locations, 18 of them grocery stores; fuel centers are left out unless include_fuel=true.
Does it cover Ralphs, Fred Meyer, King Soopers and the other banners?▾
Yes, 19 banners in total. A store id of any banner works, and the store block tells you which banner it is. On 2026-10-14 a Ralphs store in Los Angeles matched 856 products for "milk", a King Soopers store in Denver 924.
Which filters are there?▾
brand, on_sale and nutrition, each checked against the unfiltered count at the same store in the same run: "milk" 929, brand Kroger 66, on sale 342, organic 88, gluten free 391. brand is case-sensitive at Kroger: use the spelling from a row's brand.
Can I page through all results or sort by price?▾
No. One search returns the first 24 results in Kroger's own order, with the total count. Narrow with a more specific query or the filters to reach other products.
Do you return digital coupons?▾
No. Coupons are not part of what Kroger shows logged out. Sale and multi-buy prices are returned; the on_sale filter covers everything Kroger marks as a saving.
How fresh is the data?▾
Every call reads Kroger live; nothing is cached. In our two runs a search took 4.3 and 5.4 seconds at the median, a product 3.0 and 3.1 seconds, a store lookup 1.0 and 1.7 seconds.
Is the nutrition label included?▾
Yes, on product: serving size, servings per container, each nutrient with its value and unit, ingredients and allergens, as Kroger publishes them.
What is the Kroger API?▾
Kroger API is a ReefAPI endpoint group for store-level shelf prices, sales, multi-buy deals, stock and aisle for kroger and its 18 us grocery banners. It returns live JSON through POST requests under /kroger/v1.
Is the Kroger API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. Kroger calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Kroger login or account?▾
No login to Kroger is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Kroger data?▾
The page example is captured from a live stores call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Kroger API use?▾
Kroger actions currently cost 2-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Kroger from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call kroger actions with the same key, credit pool and JSON envelope used by normal REST requests.
231 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Kroger, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 490 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-14.