Discover/Instacart API
live

Instacart 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.

Endpoint health
verified 3h ago
search_products
get_stores
get_product_details
get_store_details
4/4 passing latest checkself-healing
Endpoints
4
Updated
22d ago

What is the Instacart 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.

Try it
US postal/zip code to search for stores (e.g. '10001', '07094', '90210'). Leading zeros are preserved.
api.parse.bot/scraper/ebecec3c-fdc1-4630-86e1-74a57eb1e6b1/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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'
Python SDK · recommended

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 instacart-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.

from parse_apis.instacart_api import Instacart, Store, Product, ProductDetails, ProductNotFound

client = Instacart()

# List available stores for a postal code
for store in client.stores.list(postal_code="10001"):
    print(store.name, store.slug, store.delivery)

# Use a constructible Store to search products
costco = client.store(slug="costco")
for product in costco.products.search(query="organic eggs", postal_code="10001"):
    print(product.name, product.price, product.available)

# Get detailed product information (retailer_slug pinned from parent store)
    details = product.details(postal_code="10001")
    print(details.name, details.category, details.in_stock)
All endpoints · 4 totalmissing one? ·

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. Use store slugs from the results to query other endpoints.

Input
ParamTypeDescription
postal_coderequiredstringUS postal/zip code to search for stores (e.g. '10001', '07094', '90210'). Leading zeros are preserved.
Response
{
  "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": "Costco",
          "slug": "costco",
          "type": "Club/Warehouse Store",
          "pickup": false,
          "shop_id": "968",
          "delivery": true,
          "logo_url": "https://www.instacart.com/assets/domains/warehouse/logo/5/65f2304b-908e-4cd0-981d-0d4e4effa8de.png",
          "categories": [
            "Groceries",
            "Wholesale"
          ],
          "retailer_id": "5",
          "retailer_location_id": "284"
        }
      ],
      "postal_code": "10001"
    },
    "status": "success"
  }
}

About the Instacart API

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.

Reliability & maintenanceVerified

The Instacart API is a managed, monitored endpoint for instacart.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when instacart.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 instacart.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.

Last verified
3h ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Compare unit prices across multiple retailers for the same product in a given ZIP code using price_per_unit from search_products
  • Build a store-finder tool that surfaces which retailers offer delivery vs. pickup in a neighborhood using the delivery and pickup flags from get_stores
  • Monitor in-stock status for specific SKUs by polling get_product_details and checking the in_stock field
  • Aggregate product ratings across categories by combining rating fields from search_products results 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 brand in search_products across multiple retailer slugs
  • Feed grocery product images and descriptions into a recipe or meal-planning app using images and category from get_product_details
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Instacart have an official developer API?+
Instacart offers a platform called the Instacart Platform (formerly Instacart Connect) aimed at retailers building storefronts, documented at https://www.instacart.com/company/how-instacart-works/. There is no public REST API for general product and store data search available to independent developers.
What does `search_products` return beyond basic name and price?+
Each product object includes 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?+
The API covers retailers available through Instacart in the US, which means coverage depends on which stores Instacart has partnered with in a given ZIP code. Not all retailers operate in all areas, and the 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?+
Not currently. The 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.
Can I retrieve order history or user account data through this API?+
No account-level or order data is available. The API covers public-facing store discovery, product search, and product detail data — nothing requiring a user login. You can fork this API on Parse and revise it to add endpoints targeting other public Instacart data surfaces if your use case needs additional fields.
Page content last updated . Spec covers 4 endpoints from instacart.com.
Related APIs in Food DiningSee all →
wholefoodsmarket.com API
Search for grocery products, browse weekly sales, and find store locations at Whole Foods Market. Returns pricing, availability, ingredients, and nutritional information.
publix.com API
Access Publix grocery store data including product search, pricing, promotions, weekly ad deals, store locations, and category browsing.
kingsoopers.com API
Search for King Soopers store locations and browse their product catalog to find items and availability. Note that product searches may have access restrictions that could require additional technical setup to work reliably.
kroger.com API
Find Kroger grocery store locations across the US organized by state, city, and search parameters. Get detailed store information including directories and specifics for any Kroger location in your area.
ocado.com API
Search and browse Ocado UK's grocery catalog, view detailed product information including nutritional data, and discover related items to add to your cart. Get instant search suggestions and manage your shopping cart contents all in one place.
superc.ca API
Search for products and browse categories at Super C, a Canadian grocery chain, then view detailed product information and find nearby store locations by postal code. Get real-time access to pricing, availability, and inventory across Super C's network.
bigbasket.com API
Browse and search BigBasket's online grocery catalog. Retrieve product details, pricing, stock availability, category trees, search suggestions, homepage promotions, and delivery coverage — all in one API.
carrefour.fr API
carrefour.fr API