Instacart Scraper avatar

Instacart Scraper

Pricing

$15.00 / 1,000 products

Go to Apify Store
Instacart Scraper

Instacart Scraper

Extracts Instacart product data — names, brands, prices, images, and stock levels — by search query with a delivery location (postal code and street address). Delivers structured product records to the Apify dataset.

Pricing

$15.00 / 1,000 products

Rating

0.0

(0)

Developer

Farhan Ali

Farhan Ali

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Instacart Scraper creates a structured dataset of product records collected from instacart.com. Each dataset item describes one catalog product and can include the product name, brand, price string, product image, product page URL, package size, availability stock level, and nutritional attributes. Query the source using a search keyword with a delivery location defined by postal code and street address, control the result limit with maxProducts, and retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, XML, or another supported format.

Dataset at a glance

PropertyValue
Sourceinstacart.com
Record unitOne catalog product
Input methodssearchQuery + postalCode + streetAddress
Main identifiersproductId, url, evergreenUrl
DeliveryApify Dataset and API
Export formatsJSON, CSV, Excel, XML
Update modelFresh records per Actor run
Pricing$15 per 1,000 products

Coverage and available records

The Actor returns products from Instacart search results for the supplied keyword, resolved against the delivery location set by the postal code and street address. Supported coverage includes:

  • Search results for a single keyword per run.
  • Location-aware product availability for the configured delivery address.
  • Product name, brand, size, and price string.
  • Product image and product page URL.
  • Stock level (for example highlyInStock) nested under availability.
  • Nutritional attributes where the retailer provides them.

Each dataset item is the full Instacart catalog item object with the key fields also flattened to the top level (url, imageUrl, brandName, priceString). The raw object retains additional nested metadata such as quantity attributes and view rendering sections; these are not documented as a stable contract and may change.

Data dictionary

FieldTypeNullableDescriptionExample
namestringNoProduct name"Kroger® Vitamin D Whole Milk Gallon"
brandNamestringYesBrand name"kroger"
priceStringstringYesDisplay price string"$4.99"
imageUrlstringYesProduct image URL"https://d2lnr5mha7bycj.cloudfront.net/..."
urlstringNoProduct page URL"https://www.instacart.com/products/17647250-kroger-vitamin-d-whole-milk-grade-a-1-gal"
sizestringYesPackage size"1 gal"
productIdstringYesInstacart product ID"17647250"
brandIdstringYesBrand identifier"7950"
evergreenUrlstringYesURL slug"17647250-kroger-vitamin-d-whole-milk-grade-a-1-gal"
availability.stockLevelstringYesStock level classification"highlyInStock"
availability.availablebooleanYesWhether the item is availabletrue
nutritionalAttributesarrayYesNutrition facts (protein, fat, sugar, calories)[{"viewSection": {"longLabelString": "Protein", "valueString": "8"}}]
idstringYesInternal item identifier"items_11578-17647250"

The most stable field for deduplication is productId (falling back to url when productId is absent).

Example dataset record

{
"name": "Kroger® Vitamin D Whole Milk Gallon",
"brandName": "kroger",
"size": "1 gal",
"productId": "17647250",
"url": "https://www.instacart.com/products/17647250-kroger-vitamin-d-whole-milk-grade-a-1-gal",
"imageUrl": "https://d2lnr5mha7bycj.cloudfront.net/product-image/file/large_7c6bf3cb-97c7-48ab-8275-0e0c555ce30d.jpeg",
"priceString": "$4.99",
"availability": {
"available": true,
"stockLevel": "highlyInStock"
}
}

This record was produced by a search for milk with postal code 72076 and street address 2300 Griffin Road. The full dataset item contains additional nested Instacart metadata not shown here.

Query and input reference

InputTypeRequiredDefaultAccepted valuesDescription
searchQuerystringYes"milk"Any search termSearch keyword for products.
postalCodestringNo"72076"Postal codeSets the delivery location.
streetAddressstringYes"2300 Griffin Road"Street addressSets the delivery location.
maxProductsintegerNo200 (all) or any positive integerMaximum number of products to scrape; 0 scrapes all.
proxyConfigurationobjectNoApify Residential (US)Apify proxy settingsProxy configuration.

Minimal request:

{
"searchQuery": "milk",
"streetAddress": "2300 Griffin Road"
}

Request with an explicit location and result limit:

{
"searchQuery": "Produce",
"postalCode": "33472",
"streetAddress": "2300 Griffin Road",
"maxProducts": 0
}

Retrieve the data through the API

  1. Start the Actor with a JSON input containing searchQuery and streetAddress.
  2. Wait for the run to finish, or use the synchronous run endpoint.
  3. Retrieve items from the run's default dataset.
  4. Paginate or export the dataset.

Example in Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("datascrapers/instacart-scraper").call(run_input={
"searchQuery": "milk",
"postalCode": "72076",
"streetAddress": "2300 Griffin Road",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], item["priceString"])

For other languages, use the generated API tab in the Apify Console. Never place a real token in a URL or example.

Data quality and record handling

  • The dataset item is the full Instacart catalog object; key fields are also flattened to the top level.
  • Stock level and availability reflect the configured delivery location at run time.
  • Source-side changes to Instacart's catalog response can change nested field shapes.
  • The Actor does not perform internal cross-run deduplication; each run is a fresh dataset.
  • The recommended external deduplication key is productId.
  • Retry behavior is handled per request; failed pages are logged and do not abort the whole run.

Export and pipeline examples

DestinationRecommended methodTypical use
PostgreSQL/SupabaseDataset API or webhook consumerGrocery price history
Google SheetsApify integrationManual price tracking
S3/cloud storageScheduled export or integrationNightly catalog snapshot

Pricing and cost examples

The Actor charges per product record written to the dataset. The per-result rate is $0.015.

ProductsEstimated base cost
1,000$15.00
10,000$150.00

Estimates depend on the verified pricing model and any selected proxy options. Standard Apify plan discounts may apply.

Limitations and responsible data use

  • Collects publicly accessible Instacart catalog data only.
  • Availability depends on source-site uptime and catalog changes.
  • Some fields (nutrition, brand, size) are conditional and may be missing.
  • No historical snapshots are stored unless you keep the datasets yourself.
  • You are responsible for complying with Instacart's terms and applicable law when using the data.

Dataset questions

What does one dataset item represent?

One Instacart catalog product returned for the search keyword, resolved against the configured delivery location.

Which field should I use as a unique identifier?

productId is the stable Instacart product ID; fall back to url when productId is absent.

Are fields nullable or conditional?

Yes. brandName, size, priceString, imageUrl, and availability.stockLevel depend on the individual product and retailer data.

Can I retrieve the records as CSV or JSON?

Yes. The dataset can be exported as JSON, CSV, Excel, or XML from the Apify Console or Dataset API.

How do I paginate large datasets?

Use the Dataset API pagination, or raise maxProducts (set 0 for all results) to collect more records in a single run.

Does the Actor return historical data?

No. Each run returns availability and pricing visible at run time.

What counts as a billable result?

Each product record written to the dataset is one billable result, at $0.015 per product.

Data Scrapers support

Need an additional field, record type, or export workflow? Contact Data Scrapers at stardustspotlight@gmail.com. Include a sample source URL, required fields, expected record volume, and preferred delivery format.