Kroger APIkroger.com ↗
Access Kroger store directories by state and city, search stores by zip or address, and retrieve store-specific product prices via 4 API endpoints.
What is the Kroger API?
The Kroger API covers 4 endpoints that expose the full US store directory grouped by state, detailed store records for individual cities, location-based store search, and a product catalog with store-specific pricing. The search_products endpoint returns per-store regular and promotional prices tied to a specific location_id, while get_all_stores surfaces aggregate counts across every state Kroger operates in.
curl -X GET 'https://api.parse.bot/scraper/91b3d669-c6ee-4818-bf5b-461d3d18cbe3/get_all_stores?state=Georgia' \ -H 'X-API-Key: $PARSE_API_KEY'
Get the complete directory of all Kroger grocery stores grouped by state. Returns all states with their cities and store counts. The optional state filter narrows results to matching states (partial, case-insensitive). Returns a single Directory object, not a list.
| Param | Type | Description |
|---|---|---|
| state | string | Filter by state name (partial match, case-insensitive). Omitting returns all states. |
{
"type": "object",
"fields": {
"states": "object mapping state name to state entry with city_count and cities array",
"total_cities": "integer total number of cities across all states",
"total_states": "integer total number of states in the directory",
"total_stores": "integer total number of stores across all states"
}
}About the Kroger API
Store Directory and Location Data
The get_all_stores endpoint returns a Directory object containing a states map, each entry holding a city_count and a cities array, plus top-level total_states, total_cities, and total_stores counts. An optional state parameter accepts partial, case-insensitive input to narrow the response to matching states. For city-level detail, get_stores_by_city accepts a lowercased city name and two-letter state abbreviation and returns full Store objects including street address, phone number, hours, departments, and geographic coordinates.
Store Search
The search_stores endpoint accepts a free-text query — city name, zip code, or street address — and returns an array of nearby Store objects alongside a pagination object. It covers all store types in the Kroger family, including grocery, fuel, and Shell locations. Use page_size and page_offset to paginate through large result sets. Each store record includes a location_id field (8-digit string) that is the required input for the product search endpoint.
Product Catalog with Store Pricing
The search_products endpoint queries Kroger's product catalog against a specific store using its location_id. Each result in the products array is one UPC and carries name, brand, size, department, category, sub_category, url, image_url, currency, regular_price, and — when active — a promotional price with its expiry date. Pagination is controlled by page_size (1–48) and page_offset; the has_more boolean and total_count integer tell you whether additional pages exist. Sponsored items may add a few rows beyond the requested page_size.
The Kroger API is a managed, monitored endpoint for kroger.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when kroger.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official kroger.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a grocery price tracker that compares
regular_priceand promotional prices for the same UPC across multiple Krogerlocation_idvalues. - Populate a store locator widget using
search_storeswith zip code input and display address, phone, and hours from the Store objects. - Generate a full state-by-state store count dashboard from
get_all_storestotal_storesand per-statecity_countfields. - Alert shoppers when a product's promotional price is active and show the expiry date by polling
search_productsfor a saved UPC. - Enumerate all stores in a target metro by iterating
get_stores_by_cityfor each city returned byget_all_storesin a given state. - Pull department and category metadata from
search_productsto build a structured taxonomy of Kroger's grocery inventory. - Feed store coordinates from
get_stores_by_cityinto a mapping layer to visualize Kroger coverage density by region.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Kroger have an official public developer API?+
What does `get_stores_by_city` return beyond basic address info?+
city=atlanta and state=ga.Are product prices guaranteed to reflect the price at my specific store?+
search_products are tied to the location_id you supply. Each product row returns regular_price and, if a promotion is running at that store, a promotional price with an expiry date. Prices reflect the state of the catalog at query time; availability and promotions can change without notice.Does the API cover Kroger subsidiary banners like Fred Meyer, Ralph's, or Harris Teeter?+
Can I retrieve a product's historical price trends or inventory stock levels?+
search_products endpoint returns the current regular_price and any active promotional price for a given store, but does not expose historical pricing data or in-store inventory counts. You can fork this API on Parse and revise it to add an endpoint that captures and stores price snapshots over time.