Safeway APIsafeway.com ↗
Look up Safeway store locations by ZIP, search the grocery catalog, and retrieve real-time product prices, promotions, and nutrition data via a clean REST API.
What is the Safeway API?
The Safeway API exposes 4 endpoints covering store discovery, product search, product detail, and similar-product recommendations across Safeway's US grocery catalog. Starting with find_stores, you pass a 5-digit ZIP code and get back a ranked list of nearby stores — each carrying a store_id that anchors every subsequent price and inventory lookup. Product responses include current price, base price, active promotion text, unit price, stock status, and structured nutrition facts.
curl -X GET 'https://api.parse.bot/scraper/e9841e3f-1253-44ee-b374-04495ddf1123/find_stores?zip_code=94611' \ -H 'X-API-Key: $PARSE_API_KEY'
Lists Safeway-banner stores that serve a US ZIP code (in-store shopping, pickup, and delivery), nearest first with distance in miles. One round trip. Each row carries the store_id that search_products and get_product accept; the channels array tells which fulfillment modes that store offers for the ZIP. A ZIP with no serving stores returns an empty stores array.
| Param | Type | Description |
|---|---|---|
| zip_coderequired | string | 5-digit US ZIP code, leading zeros preserved. |
{
"type": "object",
"fields": {
"count": "number of distinct stores returned",
"stores": "array of store records: store_id (numeric string, use with search_products/get_product), banner, address, city, state, zip_code, distance_miles (number), timezone, local_page_url, division, channels (array of instore|pickup|delivery)",
"zip_code": "the ZIP code that was queried"
},
"sample": {
"data": {
"count": 2,
"stores": [
{
"city": "Oakland",
"state": "CA",
"banner": "Safeway",
"address": "2096 Mountain Blvd",
"channels": [
"instore",
"pickup"
],
"division": "Norcal",
"store_id": "654",
"timezone": "America/Los_Angeles",
"zip_code": "94611",
"distance_miles": 0.65,
"local_page_url": "https://local.safeway.com/safeway/ca/oakland/2096-mountain-blvd.html"
},
{
"city": "Oakland",
"state": "CA",
"banner": "Safeway",
"address": "5100 Broadway",
"channels": [
"instore",
"pickup",
"delivery"
],
"division": "Norcal",
"store_id": "3132",
"timezone": "America/Los_Angeles",
"zip_code": "94611",
"distance_miles": 2.49,
"local_page_url": "https://local.safeway.com/safeway/ca/oakland/5100-broadway.html"
}
],
"zip_code": "94611"
},
"status": "success"
}
}About the Safeway API
Store Discovery and Fulfillment Context
The find_stores endpoint accepts a single zip_code parameter and returns an array of Safeway-banner locations sorted by distance in miles. Each store record includes store_id, address fields, and a channels array indicating which fulfillment modes — in-store, pickup, delivery — are available at that location. The store_id value is the key input for all product-facing endpoints; prices and stock levels are store-specific and will differ between locations.
Product Search and Catalog
The search_products endpoint takes a free-text query plus either a store_id or zip_code, and returns paginated product summaries. Each result includes product_id, upc, name, price (current selling price in USD), base_price, price_per_unit, active promotion_text and promotion end date, size, in_stock, department and aisle placement, and an image URL. Page size is capped at 30 results per call; the has_more boolean and total_results count let you walk through additional pages using the page parameter.
Product Detail and Nutrition Data
The get_product endpoint returns the full record for a single product_id at a given store. On top of the fields available in search results, it adds ingredients, description, directions, warnings (allergen text), health_claims, and a nutrition object containing a full nutrition facts panel with servingDetails, dailyValue, nutrient arrays, and footNote. This makes it suitable for any use case that needs label-level data rather than just catalog metadata.
Similar Product Recommendations
The get_similar_products endpoint returns the site's recommended related products for a given product_id — the same shelf shown on a product detail page. Each entry in the products array carries the same price, promotion, size, stock, and placement fields as search results. Up to approximately 12 products are returned per call, all priced for the specified store.
The Safeway API is a managed, monitored endpoint for safeway.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when safeway.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 safeway.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 monitors
priceandbase_pricechanges for a watchlist of products across multiple store locations. - Power a nutrition comparison tool using the
nutritionfacts panel andingredientsfields returned byget_product. - Create a store-finder feature for a delivery app using
find_storesto surface nearby locations and their availablechannels(pickup, delivery, in-store). - Identify active deals by filtering
search_productsresults wherepromotion_textis non-null and checking the promotion end date. - Populate a shopping cart suggestion feature using
get_similar_productsto surface related items with current store-specific pricing. - Aggregate unit price (
price_per_unit) data across product categories to build a per-unit cost comparison tool for budget shoppers. - Index Safeway's catalog for a third-party grocery search app, paginating through
search_productsresults usingpageandhas_more.
| 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.