Instacart Scraper
Pricing
from $10.00 / 1,000 results
Instacart Scraper
[π° $10 / 1K] Scrape Instacart products by keyword for any US delivery ZIP β names, brands, prices, sizes, images, availability, and dietary info. Search multiple terms at once; results reflect real location-based pricing.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Pull live grocery and retail product data from Instacart at scale β real, location-specific prices, unit prices, pack sizes, images, stock levels, and nutrition and dietary attributes for any US ZIP code. Enter a ZIP and you get the exact stores and prices Instacart shows a shopper standing in that location, across every retailer serving the area. Built for CPG brands, grocery pricing and market-research analysts, and e-commerce teams who need real location-level Instacart pricing without checking dozens of stores by hand.
Why This Scraper?
- Prices are genuinely location-aware β enter ZIP
10001and you get real Manhattan stores and NYC prices; enter60601and you get Chicago stores and Chicago prices. The ZIP drives the whole result set, not one fixed region baked into the actor. - Every product row includes a live price β no blank price fields to clean up. Each row carries the real, current price Instacart shows for that store and ZIP.
- Four pricing fields per product β the displayed price string, a numeric price for math, the per-unit price (e.g. "$0.08/fl oz"), and the full/original price for spotting discounts.
- Searches every retailer at the ZIP automatically β Costco, Key Food, Zabar's, Jewel-Osco, Strack & Van Til and whichever other stores deliver to that location. Leave the store filter empty for the top stores, or name specific stores by slug (
costco,safeway,sprouts) to compare one banner. - Inline nutrition and dietary data β per-product nutrition attributes (protein, fat, sugar, calories, with values and units) and dietary badges (organic, gluten-free, non-GMO) pulled straight from the product card.
- Batch many search terms in one run β pass
["milk", "organic eggs", "olive oil"]and each keyword runs its own search across your chosen stores in a single job. - Stock and availability on every row β an availability flag, a stock-level label, plus an optional in-stock-only filter that drops anything you can't order right now.
- The resolved location travels with the data β every row records the exact ZIP and the store (name, slug, and store ID) it was collected from, so multi-ZIP and multi-store datasets stay unambiguous.
Use Cases
Pricing Intelligence
- Track the same product's price across ZIP codes and retailers
- Compare a competitor's shelf price against yours at the store level
- Monitor per-unit pricing to catch "shrinkflation" and pack-size changes
- Build price indexes for a basket of staple groceries by market
CPG & Brand Monitoring
- Verify your products are listed and in stock across target markets
- Audit how your brand's items are priced versus private-label alternatives
- Confirm nutrition and dietary badges display correctly on your listings
- Spot unauthorized discounting or full-price gaps across retailers
Market Research
- Map which retailers actually serve a given ZIP or metro
- Measure assortment breadth for a category (e.g. "olive oil") by store
- Compare grocery baskets across neighborhoods and cities
- Analyze the mix of organic, gluten-free, and specialty products by area
Data Enrichment & Integration
- Enrich product catalogs with live Instacart prices and images
- Feed location-level pricing into dashboards and BI tools
- Power price-comparison and deal-alert products
- Keep an internal grocery price database current on a schedule
Getting Started
Simple β one keyword, one ZIP
The fastest way to start: a search term and a delivery ZIP.
{"searchTerms": ["milk"],"postalCode": "10001"}
Multiple keywords with a result cap
{"searchTerms": ["milk", "organic eggs", "olive oil"],"postalCode": "60601","maxResults": 100}
Target specific stores, in-stock only
{"searchTerms": ["greek yogurt"],"postalCode": "10001","streetAddress": "350 5th Ave, New York","retailers": ["costco", "key-food"],"inStockOnly": true,"maxResults": 200}
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
searchTerms | string[] | ["milk"] | Plain keywords to search for, such as "milk", "organic eggs", or "olive oil". Add as many as you like β each runs its own search across your chosen stores. |
Delivery Location
| Parameter | Type | Default | Description |
|---|---|---|---|
postalCode | string | "10001" | US ZIP code for the delivery area you want prices for. This genuinely controls the location β results come from the stores that deliver to this ZIP, with that area's real prices. Leave empty to use an approximate location detected automatically. |
streetAddress | string | null | Optional street address for a more precise delivery point within the ZIP (e.g. "350 5th Ave, New York"). Leave empty to use the ZIP's center. |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Maximum number of products to return in total, across all search terms and stores. Set to 0 to collect everything available. Start with 20-100 to test. |
inStockOnly | boolean | false | When on, only products currently available to order are returned; anything out of stock is skipped. |
retailers | string[] | [] | Optionally search only specific stores by their Instacart store slug (e.g. "costco", "safeway", "sprouts"). Matching is case-insensitive. Leave empty to search the top stores for your ZIP. |
Output
Every result is one flat, priced product row. Here's a representative example:
{"searchTerm": "milk","name": "Organic Whole Milk","brand": "horizon organic","price": 5.99,"priceString": "$5.99","priceAvailable": true,"fullPriceString": "$6.49","pricePerUnit": "$0.09/fl oz","size": "64 fl oz","productId": "16789234","imageUrl": "https://www.instacart.com/image-server/example.jpg","url": "https://www.instacart.com/store/key-food/products/16789234","available": true,"stockLevel": "high","availabilityLabel": "Many in stock","nutrition": [{ "label": "Protein", "value": "8", "unit": "g" },{ "label": "Total Fat", "value": "8", "unit": "g" }],"dietary": ["Organic", "Gluten-Free"],"retailer": "Key Food","retailerSlug": "key-food","shopId": "12345","postalCode": "10001"}
Product & Search
| Field | Type | Description |
|---|---|---|
searchTerm | string | The keyword that produced this product |
name | string | Product name |
brand | string | null | Brand name |
size | string | null | Pack size (e.g. "64 fl oz", "1 gal") |
productId | string | null | Instacart product identifier |
imageUrl | string | null | Product image URL |
url | string | null | Direct product page URL |
Pricing
| Field | Type | Description |
|---|---|---|
price | number | null | Current price as a number for calculations |
priceString | string | null | Price exactly as displayed (e.g. "$5.99") |
priceAvailable | boolean | Whether a price was captured for this product |
fullPriceString | string | null | Full or original price, useful for spotting discounts |
pricePerUnit | string | null | Per-unit price if shown (e.g. "$0.09/fl oz") |
Availability & Attributes
| Field | Type | Description |
|---|---|---|
available | boolean | null | Whether the product is currently orderable |
stockLevel | string | null | Stock level indicator |
availabilityLabel | string | null | Human-readable stock label (e.g. "Many in stock") |
nutrition | object[] | null | Nutrition attributes, each with label, value, and unit |
dietary | string[] | Dietary badges (Organic, Gluten-Free, Non-GMO, etc.) |
Store & Location
| Field | Type | Description |
|---|---|---|
retailer | string | null | Store name the product came from |
retailerSlug | string | null | Store slug (use this value in the retailers input) |
shopId | string | Instacart store identifier |
postalCode | string | The delivery ZIP the search was run for |
Tips for Best Results
- The ZIP is your most powerful lever β different ZIPs surface different stores and different prices. To compare markets, run the same keywords across a list of ZIPs (e.g.
10001,60601,90001) and group the output bypostalCode. - Compare one banner across cities β put the same slug in
retailers(e.g.["costco"]) and change only the ZIP between runs to see how a single chain prices the same product city by city. - Start small, then scale β set
maxResultsto 20-100 on your first run to confirm the data fits your needs, then raise it or set0for everything available. - Use the store slug, not the display name β the
retailersfilter matches Instacart slugs likekey-foodorjewel-osco. Grab the exact value from theretailerSlugfield of an earlier run. - Store availability is ZIP-specific β a store that exists in one ZIP may not deliver to another. If a requested store is skipped, it isn't available for that location; leave
retailersempty to fall back to the top stores. - Broad keywords return the most β "milk" or "olive oil" pull a full grid; very specific brand phrases return fewer products.
- The same product can appear once per store and once per search term β that's intended, not a duplicate: prices differ by store and each keyword runs its own search. To collapse to one row per product, group by
productIdandretailerSlug. - Turn on
inStockOnlyfor order-ready data β ideal when you only care about products a shopper can actually add to cart today.
Pricing
From $10.00 per 1,000 results β up to a third cheaper than comparable Instacart data tools. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $1.20 | $1.13 | $1.07 | $1.00 |
| 1,000 | $12.00 | $11.30 | $10.70 | $10.00 |
| 10,000 | $120.00 | $113.00 | $107.00 | $100.00 |
| 100,000 | $1,200.00 | $1,130.00 | $1,070.00 | $1,000.00 |
A "result" is any product row in the output dataset. No compute or time-based charges β you pay per result, plus a small fixed per-run start fee.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n β Workflow automation
- Google Sheets β Direct spreadsheet export
- Slack / Email β Notifications on new results
- Webhooks β Trigger custom APIs on run completion
- Apify API β Full programmatic access
Legal & Ethical Use
This actor is designed for legitimate price monitoring, market research, and product intelligence. Users are responsible for complying with applicable laws and Instacart's Terms of Service. Do not use extracted data for spam, harassment, or any illegal purpose. Collect only publicly available product information and use it responsibly.