instacart.com APIinstacart.com ↗
Access Instacart grocery data via API: find stores by ZIP code, search products with prices and ratings, and retrieve detailed product info across retailers.
curl -X GET 'https://api.parse.bot/scraper/ebecec3c-fdc1-4630-86e1-74a57eb1e6b1/get_stores?postal_code=10001' \ -H 'X-API-Key: $PARSE_API_KEY'
Get available grocery stores and retailers for a specific US postal code. Returns a list of stores with their names, slugs, categories, and delivery/pickup availability.
| Param | Type | Description |
|---|---|---|
| postal_coderequired | string | US postal/zip code to search for stores (e.g. '10001', '07094', '90210'). Leading zeros are preserved. |
{
"type": "object",
"fields": {
"stores": "array of store objects with shop_id, retailer_id, name, slug, type, categories, logo_url, delivery, and pickup fields",
"postal_code": "string, the postal code that was searched"
},
"sample": {
"data": {
"stores": [
{
"name": "Key Fresh & Natural",
"slug": "key-fresh-natural",
"type": "Grocery - Traditional",
"pickup": false,
"shop_id": "5480",
"delivery": true,
"logo_url": "https://www.instacart.com/assets/domains/warehouse/logo/109/92bd7ec5-1038-4738-9a40-6194af61a988.png",
"categories": [
"Groceries",
"Organic",
"Specialty"
],
"retailer_id": "109",
"retailer_location_id": "1219"
}
],
"postal_code": "07094"
},
"status": "success"
}
}About the instacart.com API
The Instacart API covers 4 endpoints that return grocery store availability, product search results, and product details across US retailers. The search_products endpoint returns fields including price, price_per_unit, stock_status, rating, brand, and size for every matched item. Pair it with get_stores to discover which retailer slugs are active for a given ZIP code before querying inventory.
Store and Retailer Discovery
The get_stores endpoint accepts a US postal_code and returns an array of store objects, each with a shop_id, retailer_id, name, slug, type, categories, logo_url, and boolean flags for delivery and pickup availability. The slug field from this response is the primary key for all other endpoints — you pass it as retailer_slug to search products or fetch store details.
Product Search
The search_products endpoint takes a query string, a retailer_slug, and a postal_code. It returns a deduplicated list of product objects, each with id, product_id, name, brand, size, price, price_per_unit, stock_status, available, rating, and rating_co. An optional limit parameter caps how many results come back. Prices and availability are scoped to the specified postal code, so the same product may differ across regions.
Product Details
The get_product_details endpoint takes a product_id (numeric or full items_ prefixed format), a retailer_slug, and an optional postal_code. It returns name, brand, size, price, currency, in_stock, category, rating, images (array of URLs), and a url pointing to the product page on Instacart. This endpoint is the right call when you need richer data beyond what search results expose, such as category classification or multiple product images.
Store Detail Lookup
The get_store_details endpoint returns a single retailer's name, slug, type, shop_id, retailer_id, logo_url, categories, delivery_eta, and service_type for a given postal_code and retailer_slug. The delivery_eta field is nullable — not every retailer exposes an estimated delivery window for every ZIP code.
- Compare unit prices across multiple retailers for the same product in a given ZIP code using
price_per_unitfromsearch_products - Build a store-finder tool that surfaces which retailers offer delivery vs. pickup in a neighborhood using the
deliveryandpickupflags fromget_stores - Monitor in-stock status for specific SKUs by polling
get_product_detailsand checking thein_stockfield - Aggregate product ratings across categories by combining
ratingfields fromsearch_productsresults at a given retailer - Display retailer logos, categories, and estimated delivery times in a grocery app using fields from
get_store_details - Identify which retailers carry a specific brand by searching
brandinsearch_productsacross multiple retailer slugs - Feed grocery product images and descriptions into a recipe or meal-planning app using
imagesandcategoryfromget_product_details
| 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 | 250 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 Instacart have an official developer API?+
What does `search_products` return beyond basic name and price?+
brand, size, price, price_per_unit, stock_status, available (boolean), rating, and rating_co. Results are deduplicated by product_id, so you won't see the same item twice in a single response. Pricing and availability are scoped to the postal_code you supply.Is coverage limited to specific US regions or retailer types?+
get_stores response for a rural ZIP code will typically return fewer options than a dense urban one. There is no endpoint for Canadian or international Instacart markets at this time.Does the API return nutritional information or ingredient lists?+
get_product_details endpoint returns category, brand, size, price, images, and rating, but does not expose structured nutritional data or ingredient lists. You can fork this API on Parse and revise it to add an endpoint that returns those fields.