Instacart Grocery Price Index avatar

Instacart Grocery Price Index

Pricing

Pay per usage

Go to Apify Store
Instacart Grocery Price Index

Instacart Grocery Price Index

Track real-time grocery price trends across Instacart. Monitor food costs, analyze pricing patterns, and gain insights into market fluctuations. Perfect for price analysis and competitive research.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

15

Total users

2

Monthly active users

2 hours ago

Last modified

Share

Instacart Grocery Price Scraper

Collect Instacart product data for grocery price tracking, catalog analysis, and market monitoring. This actor helps you scrape product listings in a structured format, with clean records ready for dashboards, spreadsheets, and automation workflows.

Features

  • Category URL scraping — Collect products from one or multiple Instacart category pages.
  • Keyword search URL support — Extract rich item data from search URLs like /store/s?k=lemon.
  • Clean dataset output — Save normalized rows with duplicate filtering enabled by default.
  • Flexible collection size — Control how many products and pages to process per run.
  • Reliable long runs — Use optional proxy configuration for stronger run stability.
  • Analysis-ready fields — Export key product identifiers, names, pricing, links, and stock status.

Use Cases

Grocery Price Monitoring

Track product-level prices over time to identify trends, sudden increases, and category-level shifts.

Competitive Benchmarking

Compare product assortment and pricing signals across categories to support commercial analysis.

Category Intelligence

Build focused datasets for fresh produce or other sections to understand assortment depth and availability.

BI and Reporting Pipelines

Feed structured output into BI tools, spreadsheets, or internal ETL jobs for recurring reporting.


Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlsArrayYesFresh produce categoryOne or more Instacart category URLs to scrape.
results_wantedIntegerNo20Maximum number of products to save.
max_pagesIntegerNo5Maximum pagination pages to visit per URL.
proxyConfigurationObjectNoApify Proxy disabledProxy settings for run reliability.

Output Data

Each dataset item may contain the following fields:

FieldTypeDescription
product_idStringProduct identifier when available.
nameStringProduct name.
brandStringBrand name when available.
brand_idStringBrand identifier when available.
priceNumberCurrent price when available.
price_stringStringRaw price string from listing cards.
original_priceNumberPrevious price when available.
sizeStringProduct size/packaging text.
image_urlStringProduct image URL.
product_urlStringProduct detail URL.
in_stockBooleanAvailability flag.
stock_levelStringAvailability level (for example inStock).
item_idStringItem-level ID from search payloads.
item_load_idStringItem load identifier for the listing session.
retailer_idStringRetailer identifier in multi-retailer search.
shop_idStringShop identifier in multi-retailer search.
search_termStringSearch term attached to search payload results.
search_idStringSearch session identifier.
storeStringStore/source label.
categoryStringProduct category label when available.
timestampStringExtraction timestamp (ISO format).
extraction_methodStringOutput provenance label.

Usage Examples

Basic Run

{
"startUrls": [
{ "url": "https://www.instacart.com/categories/316-food/317-fresh-produce" }
]
}

Larger Collection

{
"startUrls": [
{ "url": "https://www.instacart.com/store/s?k=lemon" }
],
"results_wanted": 100,
"max_pages": 10
}

Multi-URL Collection

{
"startUrls": [
{ "url": "https://www.instacart.com/categories/316-food/317-fresh-produce" },
{ "url": "https://www.instacart.com/categories/316-food/320-bakery" }
],
"results_wanted": 120,
"max_pages": 8
}

Sample Output

{
"product_id": "16614423",
"item_id": "items_53-3094844",
"item_load_id": "019cf06a-77b4-7e44-9565-61821de8d675",
"name": "English Seedless Cucumber",
"brand": "sun pacific",
"brand_id": "79047",
"size": "1 each",
"price": 0.99,
"price_string": "$0.99",
"stock_level": "inStock",
"image_url": "https://www.instacart.com/image-server/400x400/d2lnr5mha7bycj.cloudfront.net/product-image/file/primary_5476a6d4-ff42-4d01-a194-86bfba1468b4.jpg",
"product_url": "https://www.instacart.com/products/16614423-english-seedless-cucumber-each",
"in_stock": true,
"retailer_id": "1",
"shop_id": "9501",
"search_term": "lemon",
"search_id": "e706268e-f8bd-4fe7-aecd-ec0380e0c320",
"store": "Instacart",
"category": "Fresh Produce",
"timestamp": "2026-03-15T06:43:34.647Z",
"extraction_method": "apollo_search_graphql"
}

Tips for Best Results

Use Working Category URLs

  • Use live Instacart category links from a supported store route.
  • Validate URLs manually before large runs.

Start Small Then Scale

  • Start with results_wanted: 20 for quick validation.
  • Increase gradually for larger production jobs.

Built-In Data Cleanup

  • Duplicate filtering is enabled internally for clean product datasets.
  • Empty and null-like values are removed before records are saved.

Built-In Request Pacing

  • Request pacing is handled internally for stable page processing.
  • Use proxy configuration when additional reliability is needed.

Integrations

Connect scraped data with:

  • Google Sheets — Build live tracking sheets.
  • Airtable — Maintain searchable product databases.
  • Make — Automate post-processing and alerts.
  • Zapier — Trigger actions after each successful run.
  • Webhooks — Push data into internal systems.

Export Formats

  • JSON — API and development workflows.
  • CSV — Spreadsheet analysis.
  • Excel — Business reporting.

Frequently Asked Questions

What happens if no input is provided?

The actor expects startUrls. Local testing uses INPUT.json defaults.

How many products can I collect?

Set results_wanted to your target. Collection size depends on available products and page limits.

Can I scrape multiple categories in one run?

Yes. Provide multiple entries in startUrls.

Why are some fields missing on certain rows?

Some products do not expose every attribute on every listing.

How do I reduce duplicates?

The actor applies internal duplicate filtering automatically.

Can I schedule this actor?

Yes. You can run it on schedules and route output into downstream automations.


Support

For issues or feature requests, use Apify Console support channels.

Resources


Use this actor responsibly and in compliance with website terms and applicable laws. Respect rate limits and data usage policies.