King Soopers APIkingsoopers.com ↗
Search King Soopers store locations by ZIP code and query product prices, UPCs, and brand data via two REST endpoints.
What is the King Soopers API?
The King Soopers API provides 2 endpoints that cover store discovery and product search across King Soopers locations. Use search_stores to find nearby stores by ZIP code — getting back addresses, phone numbers, hours, and department listings — then pass a location_id into search_products to retrieve product names, prices, unit sizes, UPCs, and brand data for any list of search terms.
curl -X GET 'https://api.parse.bot/scraper/d582b495-7b6d-4ae8-bdf9-c163d00df8b6/search_stores?zip_code=80202' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace kingsoopers-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""King Soopers: find nearby stores and search products with pricing."""
from parse_apis.king_soopers_api import KingSoopers, StoreNotFound
client = KingSoopers()
# Search for stores near a Denver ZIP code
for store in client.stores.search(zip_code="80202", limit=3):
print(store.vanity_name, store.distance.pretty, store.location_id)
# Drill into the nearest store's details and products
store = client.stores.search(zip_code="80202", limit=1).first()
if store:
print(store.locale.address.name, store.locale.address.city, store.locale.address.state)
# Search for grocery products at that store
for product in store.products.search(queries=["milk", "bread"], limit=5):
print(product.product_name, product.price, product.brand)
# Construct a store by known ID and search its products directly
known_store = client.store(location_id="62000115")
for product in known_store.products.search(queries=["eggs"], limit=3):
print(product.product_name, product.price, product.unit_size)
# Handle a store-not-found error
try:
results = client.stores.search(zip_code="00000", limit=1).first()
except StoreNotFound as exc:
print(f"No stores found for ZIP: {exc.zip_code}")
print("exercised: stores.search / store.products.search / construct store by ID / StoreNotFound error")
Search for King Soopers store locations near a ZIP code. Returns store details including locationId, address, phone number, hours, departments, and distance from the searched ZIP. Results are ordered by distance ascending. Useful for discovering locationId values needed by search_products.
| Param | Type | Description |
|---|---|---|
| zip_coderequired | string | 5-digit US ZIP code to search for nearby stores (e.g. '80202'). |
{
"type": "object",
"fields": {
"stores": "array of store objects with locationId, locale (address, location coordinates), phoneNumber, prettyHours, departments, facilityId, distance, and other store metadata"
},
"sample": {
"data": {
"stores": [
{
"brand": "KINGSOOPERS",
"isOpen": true,
"locale": {
"address": {
"name": "Union Station",
"cityTown": "Denver",
"postalCode": "80202",
"countryCode": "US",
"addressLines": [
"123 Main St"
],
"stateProvince": "CO"
},
"location": {
"lat": 39.757185,
"lng": -104.998818
}
},
"distance": {
"pretty": "0.58 miles"
},
"facilityId": "13050",
"locationId": "62000115",
"vanityName": "Union Station",
"departments": [
{
"code": "23",
"vanityName": "Drug & General Merchandise"
}
],
"phoneNumber": {
"pretty": "+1 (555) 012-3456"
},
"prettyHours": [
{
"displayName": "Sun - Sat",
"displayHours": "7:00 AM - 10:00 PM"
}
],
"facilityName": "King Soopers"
}
]
},
"status": "success"
}
}About the King Soopers API
Store Lookup
The search_stores endpoint accepts a zip_code string and returns an array of store objects. Each object includes a locationId (used to scope product searches), locale, phoneNumber, prettyHours, facilityId, distance from the searched ZIP, and a departments list indicating which services — pharmacy, deli, bakery, etc. — are available at that location.
Product Search
The search_products endpoint accepts a location_id, a queries array of search terms (e.g. ["milk", "eggs"]), and an optional limit per query. Each term is searched independently and results are combined into a single results array. Every product object surfaces Product Name, Price, Unit/Size, UPC, Brand, and Item Searched, so you always know which query term a result came from.
Data Scope
Coverage is specific to King Soopers, a Kroger-family banner operating primarily in Colorado and Wyoming. Product prices and availability reflect the selected store location, so results can differ across location_id values. Queries that return no matches for a given store are omitted from the combined result set rather than surfaced as errors.
The King Soopers API is a managed, monitored endpoint for kingsoopers.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when kingsoopers.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 kingsoopers.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 store locator that shows King Soopers locations, hours, and departments near any ZIP code.
- Track grocery price changes over time for specific items using the
PriceandUPCfields. - Compare prices on a shopping list across multiple store locations by varying
location_id. - Look up UPC codes for King Soopers products to cross-reference with other retail data sources.
- Identify which nearby stores carry a pharmacy or deli using the
departmentsfield before sending product queries. - Aggregate brand availability data for CPG market research using
BrandandItem Searchedfields.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does King Soopers have an official developer API?+
What does the `search_stores` endpoint return beyond address and phone?+
locationId, locale, phoneNumber, prettyHours, facilityId, distance from the queried ZIP, and a departments array. The locationId is required as an input to search_products, so calling search_stores first is the standard workflow.Does `search_products` return stock availability or aisle location?+
Product Name, Price, Unit/Size, UPC, Brand, and Item Searched, but do not include in-stock status, aisle numbers, or inventory counts. You can fork this API on Parse and revise it to add an endpoint targeting those fields if they become accessible.Can I retrieve weekly ad deals or digital coupon data?+
How does the `queries` array work in `search_products`?+
queries array is searched independently against the specified store. Results from all queries are merged into one results array, and each product object includes an Item Searched field indicating which query term produced it. The optional limit parameter caps results per individual query term, not the total combined result count.