Instacart Grocery Scraper
Pricing
from $0.001 / product result
Instacart Grocery Scraper
Scrape grocery products, prices, and availability from any Instacart store. Get accurate local pricing by zip code for Publix, Costco, Sprouts, Food Lion, CVS, Compare Foods, and more.
Pricing
from $0.001 / product result
Rating
0.0
(0)
Developer
Albert J
Actor stats
0
Bookmarked
2
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape grocery product data, prices, and availability from any Instacart-powered store. Get accurate local pricing based on your zip code -- the same prices you'd see shopping on Instacart.
What can this Actor do?
- Search any Instacart store -- Publix, Costco, Sprouts, Kroger, Safeway, Aldi, Food Lion, HEB, Trader Joe's, CVS, Compare Foods, and more
- Location-aware pricing -- Prices reflect your delivery zip code, just like the real Instacart experience
- Rich product data -- Name, brand, price, unit price, size, availability, product images, and nutritional info
- Bulk search -- Pass multiple search terms in a single run to scrape entire product categories
- Structured output -- Clean JSON ready for spreadsheets, databases, or API integration
What data can I extract from Instacart?
| Field | Example |
|---|---|
| Product Name | Eggland's Best Cage Free Large Brown Eggs, 12 count |
| Price | $6.09 |
| Unit Price | $0.51/ct |
| Size | 12 ct |
| Brand | Eggland's Best |
| In Stock | true |
| Product ID | 71953 |
| Image URL | https://... |
| Nutrition | calories: 60, protein: 6g, fat: 4g |
Supported Stores
This Actor works with any store available on Instacart in your area. Pre-configured stores include:
| Store | Slug | Coverage |
|---|---|---|
| Publix | publix | Southeast US |
| Costco | costco | Nationwide |
| Sprouts | sprouts | Western & Southern US |
| Kroger | kroger | Nationwide |
| Safeway | safeway | Western US |
| Aldi | aldi | Nationwide |
| Food Lion | food-lion | Southeast & Mid-Atlantic |
| HEB | heb | Texas |
| Trader Joe's | trader-joes | Nationwide |
| CVS | cvs | Nationwide |
| The Fresh Market | the-fresh-market | Eastern US |
| Compare Foods | compare-foods | Carolinas & Northeast |
Don't see your store? Most Instacart retailers work -- just use their Instacart URL slug (the part after /store/ in the Instacart URL).
How to scrape Instacart product prices
Step 1: Configure your input
Choose your store, enter search terms, and set your delivery zip code:
{"store": "publix","searchTerms": ["eggs", "milk", "chicken breast", "organic bananas"],"zipCode": "29615","maxResultsPerTerm": 30}
Step 2: Run the Actor
Click Start in the Apify Console, or trigger via the API:
curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~instacart-grocery-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"store": "costco","searchTerms": ["chicken", "salmon", "rice"],"zipCode": "90210","maxResultsPerTerm": 20}'
Step 3: Get your data
Results are saved to the dataset. Each product looks like:
{"name": "Kirkland Signature Boneless Skinless Chicken Breasts, 6.5 lbs","price": 22.99,"priceString": "$22.99","size": "6.5 lb","brand": "Kirkland Signature","unitPrice": "$3.54/lb","store": "costco","zipCode": "90210","inStock": true,"productId": "234567","instacartId": "items_293-234567","imageUrl": "https://www.instacart.com/image-server/394x394/...","nutrition": {"calories": 120,"protein_g": 26,"fat_g": 1}}
How much does it cost to scrape Instacart?
This Actor uses a headless browser to navigate Instacart like a real user, so each run consumes compute units based on duration:
| Search Terms | Approx. Duration | Estimated Cost |
|---|---|---|
| 5 terms | ~2 minutes | ~$0.10 |
| 20 terms | ~7 minutes | ~$0.35 |
| 50 terms | ~18 minutes | ~$0.90 |
| 100 terms | ~35 minutes | ~$1.75 |
Each search term takes approximately 15-25 seconds to process. Costs are based on default memory (4 GB).
Tips to reduce cost:
- Use specific search terms ("organic whole milk") instead of broad ones ("food")
- Set
maxResultsPerTermto 20-30 for a good balance of coverage and speed - Batch related terms in a single run to avoid repeated browser startup
Use cases
- Price comparison -- Compare grocery prices across stores in your area
- Market research -- Track pricing trends, product availability, and brand presence
- Meal planning apps -- Feed real-time grocery data into your application
- Grocery budgeting -- Find the best deals on your regular shopping list
- Competitive intelligence -- Monitor competitor pricing and product assortment
- Data journalism -- Track food price inflation at the local level
Why this Actor is different
Other Instacart scrapers on the Apify Store load the store homepage and grab whatever products happen to appear. They ignore your search terms and return random category listings. This Actor actually searches -- it navigates to the store, performs a real keyword search, and extracts the actual search results with accurate local pricing.
Built and battle-tested in production, processing thousands of products daily across multiple stores.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
store | string | Yes | -- | Instacart store slug (e.g., publix, costco) |
searchTerms | string[] | Yes | -- | List of product search queries |
zipCode | string | Yes | -- | 5-digit US zip code for local pricing |
maxResultsPerTerm | integer | No | 10 | Max products per search term (1-100) |
Output fields
| Field | Type | Always Present | Description |
|---|---|---|---|
name | string | Yes | Full product name |
price | number | Yes | Price in USD |
priceString | string | Yes | Formatted price |
size | string | When available | Product size/weight |
brand | string | When available | Brand name |
unitPrice | string | When available | Price per unit |
store | string | Yes | Store slug |
zipCode | string | Yes | Zip code used |
inStock | boolean | Yes | Availability |
productId | string | Yes | Product identifier |
instacartId | string | When available | Composite ID |
imageUrl | string | When available | Product image |
nutrition | object | When available | Calories, protein, fat |
FAQ
How accurate are the prices?
Prices reflect what Instacart shows for delivery to your specified zip code. These are Instacart delivery prices, which may differ from in-store prices. Instacart typically marks up prices 5-15% over in-store prices, depending on the retailer partnership.
Can I scrape stores not in the dropdown?
Yes! Any store available on Instacart in your area should work. Find the store's slug by visiting Instacart, navigating to the store, and copying the part after /store/ in the URL. For example, https://www.instacart.com/store/wegmans has the slug wegmans.
Why did some search terms return no results?
The product may not be available at the selected store in your zip code. Try broader search terms or verify availability by checking Instacart directly.
What's the difference between productId and instacartId?
productId is the retailer's internal product identifier. instacartId is Instacart's composite identifier that includes the retailer context. Both can be used to uniquely identify products.
Can I run this on a schedule?
Yes! Use Apify Schedules to run this Actor daily, weekly, or at any cron interval. Great for tracking price changes over time.
Integrations
Export your data to:
- Google Sheets -- Automatic spreadsheet updates
- Webhooks -- Trigger your API when a run completes
- Zapier / Make -- Connect to 5,000+ apps
- REST API -- Fetch results programmatically
- Amazon S3 / Google Cloud Storage -- Archive datasets
Support
- Open an issue on the Issues tab for bug reports or feature requests
- Need a store added? Let us know in the Issues tab