Instacart API

Instacart grocery prices for any postal code, every retailer in one call

The Instacart API turns instacart.com and instacart.ca into clean JSON for the postal code you choose, in four actions: search, product/detail, retailers and suggest.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a Instacart endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
I
/instacart/v1

4 active endpoints, on 1 and 2 credit tiers.

  • POST/instacart/v1/search
  • POST/instacart/v1/product/detail
  • POST/instacart/v1/retailers
  • POST/instacart/v1/suggest

What Instacart endpoints does ReefAPI ship?

4 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

4 endpoints

search

2 cr

Search Instacart by keyword at a postal code.

required
query, postal_code
optional
country, retailer, max_retailers, per_retailer, page, include_unmatched, max_rotations

product/detail

1 cr

One Instacart product.

required
product_id
optional
postal_code, country, retailer, max_rotations

retailers

1 cr

The retailers Instacart serves at a postal code.

required
postal_code
optional
country, service_type, category, max_rotations

suggest

1 cr

Instacart search-box suggestions for a partial query at a postal code.

required
query, postal_code
optional
country, max_rotations

Every parameter, every allowed value →

Instacart API

3 of 4 endpoints, ready to run

View docs ↗

Instacart products for a keyword at a postal code, grouped by retailer: regular price, was-price, loyalty-card price, promotions, unit price, weight-estimated packages and stock level.

2 credits2 required · 2 optional
POST/instacart/v1/search
ok3146 ms · 49 records · sample
{
  "ok": true,
  "meta": {
    "api": "instacart",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 3146.4,
    "record_count": 49,
    "cache_hit": false
  },
  "data": {
    "groups": [
      {
        "retailer": {
          "retailer_id": "5",
          "slug": "costco",
          "name": "Costco",
          "shop_id": "3291",
          "service_type": "delivery",
          "retailer_location_id": "317"
        },
        "items_total": 20,
        "items": [
          {
            "product_id": "19208138",
            "item_id": "items_317-19208138",
            "name": "Kirkland Signature Whole Milk, 1 Gallon, 2-count",
            "brand": "kirkland signature",
            "size": "each",
            "url": "https://www.instacart.com/products/19208138-kirkland-signature-homogenized-milk-2-gal-2-gal",
            "image": "https://d2lnr5mha7bycj.cloudfront.net/product-image/file/large_e343bcea-c952-4476-8edb-57573eee5b8d.jpg",
            "available": true,
            "stock_level": "many_in_stock",
            "stock_label": "Many in stock",
            "likely_out_of_stock": false,
            "sold_by": "each",
            "weight_option": false,
            "par_weight": null,
            "max_order_quantity": 9999,
            "on_sale": false,
            "buy_one_get_one": false,
            "coupon_available": false,
            "store_brand": true,
            "dietary": [],
            "nutrition_highlights": null,
            "variant_values": [
              "2 x 1 gal"
            ],
            "retailer_reference_code": null,
            "retailer_lookup_code": null,
            "currency": "USD",
            "price": 9.69,
            "price_display": "$9.69",
            "original_price": null,
            "discount_percent": null,
            "savings": null,
            "loyalty_price": null,
            "loyalty_label": null,
            "loyalty_card_offer": false,
            "unit_price_text": "$0.04/fl oz",
            "size_text": "2 ct",
            "price_is_estimate": false,
            "estimated_weight_text": null,
            "promotions": [],
            "deal_terms": null,
            "great_price": false,
            "badge": "Best seller",
            "retailer": {
              "retailer_id": "5",
              "slug": "costco",
              "name": "Costco",
              "shop_id": "3291",
              "service_type": "delivery",
              "retailer_location_id": "317"
            }
          },
          {
            "product_id": "17315429",
            "item_id": "items_317-17315429",
            "name": "Kirkland Signature 2% Reduced Fat Milk, 1 gal, 2-count",
            "brand": "producers dairy - bbs",
            "size": "each",
            "url": "https://www.instacart.com/products/17315429-darigold-reduced-fat-vitamin-a-d-milk-1-gal",
            "image": "https://d2lnr5mha7bycj.cloudfront.net/product-image/file/large_5fce37bf-ce4a-4c19-9654-dfedeabe51f4.jpg",
            "available": true,
            "stock_level": "many_in_stock",
            "stock_label": "Many in stock",
            "likely_out_of_stock": false,
            "sold_by": "each",
            "weight_option": false,
            "par_weight": null,
            "max_order_quantity": 999,
            "on_sale": false,
            "buy_one_get_one": false,
            "coupon_available": false,
            "store_brand": false,
            "dietary": [],
            "nutrition_highlights": null,
            "variant_values": [
              "2 x each"
            ],
            "retailer_reference_code": null,
            "retailer_lookup_code": null,
            "currency": "USD",
            "price": 9.69,
            "price_display": "$9.69",
            "original_price": null,
            "discount_percent": null,
            "savings": null,
            "loyalty_price": null,
            "loyalty_label": null,
            "loyalty_card_offer": false,
            "unit_price_text": "$0.04/fl oz",
            "size_text": "2 ct",
            "price_is_estimate": false,
            "estimated_weight_text": null,
            "promotions": [],
            "deal_terms": null,
            "great_price": false,
            "badge": null,
            "retailer": {
              "retailer_id": "5",
              "slug": "costco",
              "name": "Costco",
              "shop_id": "3291",
              "service_type": "delivery",
              "retailer_location_id": "317"
            }
          },
          {
            "product_id": "18038061",
            "item_id": "items_317-18038061",
            "name": "Horizon Reduced Fat Milk, 64 fl oz, 3-count",
            "brand": "silk",
            "size": "0.5 gal",
            "url": "https://www.instacart.com/products/18038061-horizon-organic-2-reduced-fat-milk-with-dha-omega-3-0-5-gallons",
            "image": "https://d2lnr5mha7bycj.cloudfront.net/product-image/file/large_eb114173-b3d9-40de-8930-9334f2c4d719.jpg",
            "available": true,
            "stock_level": "in_stock",
            "stock_label": null,
            "likely_out_of_stock": false,
            "sold_by": "each",
            "weight_option": false,
            "par_weight": null,
            "max_order_quantity": 999,
            "on_sale": false,
            "buy_one_get_one": false,
            "coupon_available": false,
            "store_brand": false,
            "dietary": [
              "2%"
            ],
            "nutrition_highlights": null,
            "variant_values": [
              "3 x 0.5 gal"
            ],
            "retailer_reference_code": null,
            "retailer_lookup_code": null,
            "currency": "USD",
            "price": 18.65,
            "price_display": "$18.65",
            "original_price": null,
            "discount_percent": null,
            "savings": null,
            "loyalty_price": null,
            "loyalty_label": null,
            "loyalty_card_offer": false,
            "unit_price_text": "$0.10/fl oz",
            "size_text": "3 x 0.5 gal",
            "price_is_estimate": false,
            "estimated_weight_text": null,
            "promotions": [],
            "deal_terms": null,
            "great_price": false,
            "badge": null,
            "retailer": {
              "retailer_id": "5",
              "slug": "costco",
              "name": "Costco",
              "shop_id": "3291",
              "service_type": "delivery",
              "retailer_location_id": "317"
            }
          }
        ]
      },
      {
        "retailer": {
          "retailer_id": "12",
          "slug": "aldi",
          "name": "ALDI",
          "shop_id": "4245",
          "service_type": "delivery",
          "retailer_location_id": "109748"
        },
        "items_total": 20,
        "items": [
          {
            "product_id": "16902710",
            "item_id": "items_109748-16902710",
            "name": "Friendly Farms Whole Milk",
            "brand": "friendly farms",
            "size": "1 gal",
            "url": "https://www.instacart.com/products/16902710-friendly-farms-vitamin-d-milk-1-gal",
            "image": "https://d2lnr5mha7bycj.cloudfront.net/product-image/file/large_b4aaab37-66cf-46e3-9638-f37987fca803.jpg",
            "available": true,
            "stock_level": "many_in_stock",
            "stock_label": "Many in stock",
            "likely_out_of_stock": false,
            "sold_by": "each",
            "weight_option": false,
            "par_weight": null,
            "max_order_quantity": 500,
            "on_sale": false,
            "buy_one_get_one": false,
            "coupon_available": false,
            "store_brand": true,
            "dietary": [
              "Whole"
            ],
            "nutrition_highlights": null,
            "variant_values": [],
            "retailer_reference_code": null,
            "retailer_lookup_code": null,
            "currency": "USD",
            "price": 3.69,
            "price_display": "$3.69",
            "original_price": null,
            "discount_percent": null,
            "savings": null,
            "loyalty_price": null,
            "loyalty_label": null,
            "loyalty_card_offer": false,
            "unit_price_text": "$0.03/fl oz",
            "size_text": "1 gal",
            "price_is_estimate": false,
            "estimated_weight_text": null,
            "promotions": [],
            "deal_terms": null,
            "great_price": false,
            "badge": "Best seller",
            "retailer": {
              "retailer_id": "12",
              "slug": "aldi",
              "name": "ALDI",
              "shop_id": "4245",
              "service_type": "delivery",
              "retailer_location_id": "109748"
            }
          },
          {
            "product_id": "20957684",
            "item_id": "items_109748-20957684",
            "name": "Friendly Farms 2% Reduced Fat Milk",
            "brand": "friendly farms",
            "size": "1 gal",
            "url": "https://www.instacart.com/products/20957684-friendly-farms-2-milk-1-gal",
            "image": "https://d2lnr5mha7bycj.cloudfront.net/product-image/file/large_a4e29d62-0127-4e6f-ab85-97d4bc756cff.jpg",
            "available": true,
            "stock_level": "many_in_stock",
            "stock_label": "Many in stock",
            "likely_out_of_stock": false,
            "sold_by": "each",
            "weight_option": false,
            "par_weight": null,
            "max_order_quantity": 500,
            "on_sale": false,
            "buy_one_get_one": false,
            "coupon_available": false,
            "store_brand": true,
            "dietary": [
              "2%",
              "Non-GMO"
            ],
            "nutrition_highlights": null,
            "variant_values": [],
            "retailer_reference_code": null,
            "retailer_lookup_code": null,
            "currency": "USD",
            "price": 3.69,
            "price_display": "$3.69",
            "original_price": null,
            "discount_percent": null,
            "savings": null,
            "loyalty_price": null,
            "loyalty_label": null,
            "loyalty_card_offer": false,
            "unit_price_text": "$0.03/fl oz",
            "size_text": "1 gal",
            "price_is_estimate": false,
            "estimated_weight_text": null,
            "promotions": [],
            "deal_terms": null,
            "great_price": false,
            "badge": null,
            "retailer": {
              "retailer_id": "12",
              "slug": "aldi",
              "name": "ALDI",
              "shop_id": "4245",
              "service_type": "delivery",
              "retailer_location_id": "109748"
            }
          },
          {
            "product_id": "18647583",
            "item_id": "items_109748-18647583",
            "name": "Friendly Farms Vitamin D Whole Milk",
            "brand": "friendly farms",
            "size": "0.5 gal",
            "url": "https://www.instacart.com/products/18647583-friendly-farms-whole-milk-0-5-gal",
            "image": "https://d2lnr5mha7bycj.cloudfront.net/product-image/file/large_3e06b4ed-686e-4cd2-a478-3245ce04647d.jpg",
            "available": true,
            "stock_level": "many_in_stock",
            "stock_label": "Many in stock",
            "likely_out_of_stock": false,
            "sold_by": "each",
            "weight_option": false,
            "par_weight": null,
            "max_order_quantity": 500,
            "on_sale": false,
            "buy_one_get_one": false,
            "coupon_available": false,
            "store_brand": true,
            "dietary": [
              "Whole"
            ],
            "nutrition_highlights": null,
            "variant_values": [],
            "retailer_reference_code": null,
            "retailer_lookup_code": null,
            "currency": "USD",
            "price": 2.49,
            "price_display": "$2.49",
            "original_price": null,
            "discount_percent": null,
            "savings": null,
            "loyalty_price": null,
            "loyalty_label": null,
            "loyalty_card_offer": false,
            "unit_price_text": "$0.04/fl oz",
            "size_text": "0.5 gal",
            "price_is_estimate": false,
            "estimated_weight_text": null,
            "promotions": [],
            "deal_terms": null,
            "great_price": false,
            "badge": null,
            "retailer": {
              "retailer_id": "12",
              "slug": "aldi",
              "name": "ALDI",
              "shop_id": "4245",
              "service_type": "delivery",
              "retailer_location_id": "109748"
            }
          }
        ]
      },
      {
        "retailer": {
          "retailer_id": "37",
          "slug": "pavilions",
          "name": "Pavilions",
          "shop_id": "2025",
          "service_type": "delivery",
          "retailer_location_id": "18813"
        },
        "items_total": 20,
        "items": [
          {
            "product_id": "7079",
            "item_id": "items_18813-7079",
            "name": "Lucerne Whole Milk",
            "brand": "lucerne",
            "size": "128 fl oz",
            "url": "https://www.instacart.com/products/7079-lucerne-dairy-farms-milk-128-oz",
            "image": "https://d2lnr5mha7bycj.cloudfront.net/product-image/file/large_1f0daedf-f4a0-4eb8-a54c-de3656820f43.png",
            "available": true,
            "stock_level": "many_in_stock",
            "stock_label": "Many in stock",
            "likely_out_of_stock": false,
            "sold_by": "each",
            "weight_option": false,
            "par_weight": null,
            "max_order_quantity": 30,
            "on_sale": false,
            "buy_one_get_one": false,
            "coupon_available": false,
            "store_brand": true,
            "dietary": [
              "Whole"
            ],
            "nutrition_highlights": null,
            "variant_values": [
              "128 fl oz"
            ],
            "retailer_reference_code": null,
            "retailer_lookup_code": null,
            "currency": "USD",
            "price": 5.99,
            "price_display": "$5.99",
            "original_price": null,
            "discount_percent": null,
            "savings": null,
            "loyalty_price": null,
            "loyalty_label": null,
            "loyalty_card_offer": false,
            "unit_price_text": "$0.05/fl oz",
            "size_text": "128 fl oz",
            "price_is_estimate": false,
            "estimated_weight_text": null,
            "promotions": [],
            "deal_terms": null,
            "great_price": false,
            "badge": "Best seller",
            "retailer": {
              "retailer_id": "37",
              "slug": "pavilions",
              "name": "Pavilions",
              "shop_id": "2025",
              "service_type": "delivery",
              "retailer_location_id": "18813"
            }
          },
          {
            "product_id": "80618",
            "item_id": "items_18813-80618",
            "name": "Organic Valley® Organic 2% (Reduced Fat) Milk",
            "brand": "organic valley®",
            "size": "64 fl oz",
            "url": "https://www.instacart.com/products/80618-organic-valley-milk-organic-reduced-fat-2-milkfat-64-oz",
            "image": "https://d2lnr5mha7bycj.cloudfront.net/product-image/file/large_1cea90c8-8253-4808-af44-684d190347e8.jpg",
            "available": true,
            "stock_level": "in_stock",
            "stock_label": null,
            "likely_out_of_stock": false,
            "sold_by": "each",
            "weight_option": false,
            "par_weight": null,
            "max_order_quantity": 99,
            "on_sale": false,
            "buy_one_get_one": false,
            "coupon_available": false,
            "store_brand": false,
            "dietary": [
              "2%",
              "Organic",
              "Non-GMO"
            ],
            "nutrition_highlights": null,
            "variant_values": [],
            "retailer_reference_code": null,
            "retailer_lookup_code": null,
            "currency": "USD",
            "price": 7.99,
            "price_display": "$7.99",
            "original_price": null,
            "discount_percent": null,
            "savings": null,
            "loyalty_price": null,
            "loyalty_label": null,
            "loyalty_card_offer": false,
            "unit_price_text": "$0.12/fl oz",
            "size_text": "64 fl oz",
            "price_is_estimate": false,
            "estimated_weight_text": null,
            "promotions": [],
            "deal_terms": null,
            "great_price": false,
            "badge": null,
            "retailer": {
              "retailer_id": "37",
              "slug": "pavilions",
              "name": "Pavilions",
              "shop_id": "2025",
              "service_type": "delivery",
              "retailer_location_id": "18813"
            }
          },
          {
            "product_id": "2914373",
            "item_id": "items_18813-2914373",
            "name": "Horizon Organic Whole Milk, 64 fl oz Half Gallon Carton",
            "brand": "horizon organic",
            "size": "64 fl oz",
            "url": "https://www.instacart.com/products/2914373-horizon-organic-whole-high-vitamin-d-milk-0-5-gal",
            "image": "https://d2lnr5mha7bycj.cloudfront.net/product-image/file/large_035ba87d-cc31-4c34-8af5-1d56a949fb41.jpg",
            "available": true,
            "stock_level": "in_stock",
            "stock_label": null,
            "likely_out_of_stock": false,
            "sold_by": "each",
            "weight_option": false,
            "par_weight": null,
            "max_order_quantity": 99,
            "on_sale": false,
            "buy_one_get_one": false,
            "coupon_available": false,
            "store_brand": false,
            "dietary": [
              "Non-GMO",
              "Organic"
            ],
            "nutrition_highlights": null,
            "variant_values": [
              "64 fl oz"
            ],
            "retailer_reference_code": null,
            "retailer_lookup_code": null,
            "currency": "USD",
            "price": 7.99,
            "price_display": "$7.99",
            "original_price": null,
            "discount_percent": null,
            "savings": null,
            "loyalty_price": null,
            "loyalty_label": null,
            "loyalty_card_offer": false,
            "unit_price_text": "$0.12/fl oz",
            "size_text": "64 fl oz",
            "price_is_estimate": false,
            "estimated_weight_text": null,
            "promotions": [],
            "deal_terms": null,
            "great_price": false,
            "badge": null,
            "retailer": {
              "retailer_id": "37",
              "slug": "pavilions",
              "name": "Pavilions",
              "shop_id": "2025",
              "service_type": "delivery",
              "retailer_location_id": "18813"
            }
          }
        ]
      }
    ],
    "count": 49,
    "retailers_total": 151,
    "page": 1,
    "has_more": true,
    "unmatched_dropped": 1,
    "query": "milk",
    "location": {
      "country": "us",
      "postal_code": "90210",
      "place": "Beverly Hills, CA",
      "zone_id": "972",
      "latitude": 34.069224,
      "longitude": -118.402945
    }
  }
}
Real response, fetched from the live endpoint with the parameters on the left — trimmed to the first few rows, with seller names left out. Press Try it for the untrimmed response.

How the Instacart API works

Instacart is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 252 engines.

02
Call
POST /instacart/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Find the cheapest retailer for a basket item at a postal code

Three calls turn a keyword into a ranked price list for one neighbourhood.

01retailers
POST/instacart/v1/retailers
{"postal_code": "90210"}

The 276 retailers Instacart served at 90210 on 2026-09-15, with their slugs and delivery or pickup.

02search
POST/instacart/v1/search
{"query": "ice cream", "postal_code": "90210"}

Matching products at the first retailers, each priced at its own store, with product_id on every row. Sale, loyalty and Buy 1, get 1 free offers are separate fields.

03detail
POST/instacart/v1/product/detail
{"product_id": "81103", "postal_code": "90210"}

Häagen-Dazs Pistachio Ice Cream at every retailer there: 112 prices from $3.59 to $14.99, lowest first, was-prices included.

A per-postal-code price ranking for any product, refreshed on demand, where weight-priced products are compared per lb and loyalty-card prices are never mixed into the regular price.

request
curl -X POST https://api.reefapi.com/instacart/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"milk","postal_code":"90210"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "instacart",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

Which Instacart price is which - loyalty, sale, per-lb and estimated packages

Instacart shows a product's price several ways, and a tracker that stores one number mixes them. The API names each case. Measured on 2026-09-15.

Instacart rowpriceWhat else comes backHow to read it
Häagen-Dazs Pistachio Ice Cream at Walmart, 902103.87 USDoriginal_price 4.58, discount_percent 16On sale: the store price and the was-price together
A Ralphs row with a loyalty-card price3.29 USDloyalty_price 2.79, loyalty_label With loyalty cardprice is the regular price; the card price is a separate field
Häagen-Dazs Pistachio at Ralphs, 902106.99 USDpromotions: Buy 1, get 1 free, deal_terms Add 2 to qualify for dealThe offer is never subtracted from price
Simple Truth Natural Chicken Breasts at Kroger, 7700213.48 USDprice_is_estimate true, unit_price_text $5.99 / lb, About 2.25 lb / packageSold by weight: price is the estimated package
The same chicken in product/detail offers5.99 USDoffer_price_unit lbRetailer comparison for weighed products is per lb

Instacart's retailer prices are the prices the retailer sets for Instacart orders; Instacart says each retailer follows its own pricing policy, so they can differ from the shelf price in the physical store. Stock level Likely out of stock is returned even though Instacart still marks the item available - 5 of 1,396 search rows on 2026-09-15.

Which price, which store, which country, and what Instacart does not publish

instacart.com (United States, USD) and instacart.ca (Canada, CAD) for the postal code you choose. Measured on 2026-09-15 across 22 searches over 16 postal codes, 44 products, 42 controlled cases and an independent source comparison on 7 products. Four of these lines go against us.

Two countries, prices for the postal code you pass

country us reads instacart.com in USD with a 5-digit ZIP; country ca reads instacart.ca in CAD with a Canadian postal code. Stores and prices follow the postal code: 276 retailers at 90210 Beverly Hills, 87 at M5V 3L9 Toronto.

Sale, loyalty and promotions are separate fields

price is the regular Instacart price; original_price and discount_percent appear when on sale; loyalty_price holds the with-loyalty-card price; promotions such as Buy 1, get 1 free are never subtracted. On 7 of 7 products compared against an independent read of the source, name, price, was-price, availability, retailer price and rating matched.

Weight-priced products are labelled

Search rows for products sold by weight carry the estimated package price, the per-lb or per-kg unit price and the estimated weight (price_is_estimate). In product/detail every retailer's offer for such a product is per lb or per kg, and offer_price_unit says so.

Search agrees with the per-retailer prices

For 40 of 40 products the price in the search row matched that retailer's price in product/detail, in the same minute.

Stock level, not just available

stock_level is many_in_stock, in_stock or likely_out_of_stock. Instacart keeps Likely out of stock items marked available - 5 of 1,396 search rows on 2026-09-15 - so read stock_level. Stock and price belong to the store location a row names: ALDI's delivery store at 10001 had a milk out of stock that its pickup store had in stock.

Against us: no fees, delivery windows or stock counts

Delivery fees, service fees and delivery windows need an address and a cart and are not returned; nor are stock counts.

Against us: Instacart prices, not shelf prices

Retailers set their own Instacart prices under their pricing policy, which can differ from the price on the shelf in the store.

Against us: at most 40 search results per retailer

Instacart returns up to 40 matches per retailer for one query. Page through retailers with page; use product/detail for one product's price everywhere.

Against us: ratings can belong to a related product

Ratings are returned as Instacart publishes them, and some are syndicated from a different product of the same brand family. Review text is not offered. Ratings were present on 12 of 44 sampled products.

What people build with Instacart

The jobs this data is most often used for.

4

endpoints

1/2

credits per call

01

Grocery price-comparison apps show the cheapest retailer for a product at the shopper's postal code with one product/detail call.

02

CPG brands monitor shelf price, sale price, loyalty price and promotions for their products across every retailer on Instacart in a market.

03

Retail analysts track Buy 1, get 1 free and spend-and-save promotions by retailer and postal code, with per-lb prices kept apart from package prices.

04

Delivery and logistics teams map which retailers serve which US ZIP codes and Canadian postal codes, with delivery and pickup.

What Instacart data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 252 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/instacart/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"milk","postal_code":"90210"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/instacart/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "query": "milk",
  "postal_code": "90210"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Instacart.

Get a free key →
How do I compare one product's price across retailers?

Call product/detail with the product_id and a postal_code. offers lists every retailer selling it there, lowest price first, each with price, was-price and discount; lowest_price and highest_price summarise it. A price far above the rest is checked against that store's own item: a store selling a case instead of a single item is marked comparable false with pack_count and price_each and left out of the range - Jif Creamy Peanut Butter 16 oz at 60614 ran $2.49 to $6.49, with a 12-jar case at $36.99 ($3.08 a jar) flagged. Häagen-Dazs Pistachio Ice Cream at 90210 on 2026-09-15: 112 retailer prices from $3.59 to $14.99, Walmart $3.87 down from $4.58. When Instacart's own comparison leaves a store out, the API prices it from that store's product listing, so the number matches what search shows for that store (source store_item). A retailer offering the same price for delivery and pickup appears once, with both service types.

Why are some offer prices per pound?

For products Instacart sells by weight, every retailer's offer is the price per pound, not the price of a package. The API says so in offer_price_unit (lb), so the list is still like for like. Search rows for the same product give the estimated package price with the per-lb unit price next to it: Simple Truth chicken breasts at Kroger 77002 read $13.48 for about 2.25 lb at $5.99 / lb, and the Kroger offer read $5.99.

Which postal codes and countries work?

Any 5-digit US ZIP with country us, and any Canadian postal code with country ca (M5V 3L9 or M5V3L9). Prices and stores are for that postal code, whichever you pick: the verification run used 13 US and 3 Canadian postal codes. A postal code Instacart does not serve returns NOT_FOUND; a malformed one, or a Canadian code with country us, returns INVALID_PARAM.

What does search return?

Products grouped by retailer, each retailer priced at its store serving the postal code. Retailers come in a fixed order (by Instacart retailer id) so that page 2 never repeats or skips a retailer from page 1 - Instacart ranks retailers differently for different visitors. By default 5 retailers and 10 products each; max_retailers goes to 20 and per_retailer to 40, which is the most Instacart returns per retailer for one query. page moves to the next retailers - milk at 90210 matched 151 retailers. retailer limits it to one store, by the slug or id retailers returns.

What happens with a query that matches nothing?

Instacart fills no-match searches with unrelated products and does not flag them. The API drops rows that share no word with your query and counts them in unmatched_dropped: blorptangzik returned 0 rows with 10 unrelated books dropped. Instacart's own spelling correction is kept - choclate returned 41 chocolate rows. include_unmatched=true returns every row.

Where do ratings come from?

From the rating Instacart shows on the product page, returned on a 0 to 5 scale with the rating count and the star distribution; no ratings means null. Ratings on Instacart can be syndicated from brand websites, and on some products they describe a different item from the same brand family - Häagen-Dazs Pistachio shows 4.15 from 1,097 ratings that come from a cosmetics brand. The API returns what Instacart publishes and does not offer review text.

What does Instacart NOT publish?

No stock counts, only a stock level and label. No delivery fees, service fees or delivery windows - those need an address and a cart. No in-store shelf price. Search returns at most 40 products per retailer for one query. Description and ingredients are published for branded goods: ingredients were filled on 30 of 44 sampled products and description on 18.

What is the Instacart API?

Instacart API is a ReefAPI endpoint group for one grocery product's price at every us and canadian retailer serving a postal code. It returns live JSON through POST requests under /instacart/v1.

Is the Instacart API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Instacart calls use the same shared credit balance as every other ReefAPI engine.

Do I need an Instacart login or account?

No login to Instacart is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Instacart data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Instacart API use?

Instacart actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Instacart from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call instacart actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Instacart API an Instacart scraper?

It is the managed alternative to a DIY Instacart scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same one grocery product's price at every us and canadian retailer serving a postal code back as clean JSON.

91 E-commerce & Marketplaces APIs on the same key

One key, one credit pool, one response envelope. If you are pulling Instacart, you are one call away from the rest of the category — no second contract, no second integration.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 251 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-15.