Scraper/Crawler for grocery marketplace data avatar

Scraper/Crawler for grocery marketplace data

Pricing

from $2.20 / 1,000 results

Go to Apify Store
Scraper/Crawler for grocery marketplace data

Scraper/Crawler for grocery marketplace data

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Instacart or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. Scrape grocery shops, products, collections, hubs, ETA and search in US/CA. Export Excel/CSV/JSON.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Share

Scrape grocery shops, storefronts, collections, product details, hubs, SEO categories, delivery ETA, and keyword search across Instacart.com (United States) and Instacart.ca (Canada) — then download structured data as Excel, CSV, or JSON.

Use this Actor as a practical grocery marketplace data extractor for price monitoring, retailer assortment research, and competitive tracking. Choose a market (us / ca), pick a mode, set limits, and get Dataset rows with shopId, retailerSlug, productId, guest preview prices, availability, and product URLs.

  • Scrape nearby Instacart retailers, storefront shelves, collections (produce, beverages, frozen…), DiscoverNav catalogs, hubs (deals, alcohol, pharmacy…), SEO categories, product detail / batch enrich, delivery ETA, and keyword search
  • Cover Instacart.com (US) and Instacart.ca (Canada) including optional French (fr-CA) language for Quebec
  • Extract shopId · retailerId · retailerLocationId · productId · priceString · availability · ETA · collectionSlug · product URL
  • Default PDP enrich (enrichDetails, or mode=enrich for batches) and collection pagination (maxPages)
  • Export to Excel / CSV / JSON, or connect Make, n8n, Zapier, Python, or the Apify API
  • Pay per event — Actor start + each Dataset result; platform usage is included (you do not pay separate Apify compute on top)

Disclaimer. This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Instacart or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. It collects publicly reachable guest shopping surfaces and does not access Instacart+ / member login pricing, place orders, add items to cart, or checkout.

Free Apify-plan users (developer policy): 10 runs / 200 results per run.


What does this Actor do?

This Actor lets you extract structured grocery retailer and product data from publicly reachable Instacart shopping pages without running your own anti-bot browser fleet. Give it a ZIP/postal + city preset, a retailer slug (e.g. Costco, Sprouts), a collection / hub / category, a product URL, or a search keyword, then start a run.

Under the hood, the Actor:

  1. Validates your input (market, mode, retailer / collection / product / query)
  2. Enforces free-tier caps when you are on a free Apify plan
  3. Calls a managed scrape backend that opens Instacart with residential egress + stealth browser
  4. Reads session GraphQL / JSON-LD / DOM product cards (guest preview prices)
  5. Pushes Dataset rows ready for Excel / CSV / JSON export
  6. Writes INPUT_ECHO, RUN_SUMMARY (and ERROR_SUMMARY on failure) to the key-value store

You run it like any other Apify Actor — schedule it, call it from the API, or plug it into automations.


What Instacart data can I extract?

DatanearMe / retailersStorefrontCollectionSearchProduct / enrichHub / categoryETA
shopId / retailerSlug✅*✅*✅*✅*
Product name / productId✅*
Guest price (priceString)✅*✅*✅*✅*✅*
Availability / image✅*✅*✅*✅*✅*
Collection / hub slug✅*
Delivery ETA✅*✅*
Product URL✅*

*When present on the page or after GraphQL / enrichDetails. ETA depends on Instacart returning accurate retailer ETAs for the postal code.


Lead and contact fields

Every Dataset row includes the complete lead field group, even when Instacart does not expose a merchant contact value. The accepted product-detail sample returned org.name=Costco; unavailable merchant fields were kept empty with a specific leadAbsences reason instead of being omitted or guessed.

FieldTypeInstacart meaning
phones[{value, type, e164?}]Merchant phone numbers only. Instacart platform support numbers are filtered and are never copied onto retailer or product rows.
emails[{value, type}]Merchant contact emails when a business payload exposes them.
address{street, unit, locality, region, postalCode, country, full} or nullMerchant street address. unit is the suite, unit, or door number. An input delivery postal code is search context, not a merchant address.
geo{lat, lng} or nullMerchant coordinates, as a supplement to the street address. Search or delivery coordinates are not silently promoted to merchant coordinates.
person{name, role?} or nullNamed merchant contact and role, when publicly exposed.
org{name, id?} or nullRetailer organization from the business payload, for example Costco. Retailer, shop, location, and product identifiers remain separate fields.
web{website, socials[]} or nullMerchant-owned website and social profiles. Instacart store and product URLs remain normal item URLs, not merchant websites.
leadSourcesearch | detail | entity | contact | reveal-xhrSurface that supplied the lead. The verified Costco product row uses detail.
leadRevealvisible | click | xhr | gated | image | absentHow the lead was exposed. A retailer identity visible in the product payload uses visible; a blocked contact surface uses gated.
leadAbsencesobject/map or nullPer-field reason for missing data, such as 未验证 (not verified) or 闸门锁 (access gate).

Reveal cost

enrichDetails is enabled by default because retailer identity and other lead fields may require a product-detail fetch rather than a thin list card. The managed worker uses a warm browser session and same-origin product data requests. This adds page work and can increase run time compared with list-only collection.

The verified guest flow did not expose a “show phone” or “show email” control, so the Actor does not claim a click-to-reveal contact path. There is no separate lead-field pricing event: the existing Actor start and Dataset result events still apply. Start with a small maxResults value when testing detail enrichment.

Honest limitations

  • The current verified business sample exposes the retailer organization (Costco), but not a merchant phone, email, street/door address, coordinates, named contact, merchant website, or social profile. Those fields use 未验证 in leadAbsences; they are not labeled 本站无.
  • Instacart consumer pages can return an access gate. When a requested surface is blocked, the Actor reports the gate honestly and does not parse the error page as an empty catalog.
  • Instacart's platform support phone, including 1-888-246-7822, belongs to Instacart, not to Costco or another retailer. It is intentionally excluded from retailer and product leads.
  • A delivery postalCode, city, or search coordinate controls the shopping context. It does not prove a merchant's physical address or coordinates.
  • An Instacart product/store URL is marketplace evidence and remains in the normal URL field. It is not reported as the retailer's own website.
  • US product detail is the currently verified business-ready surface. Canada retailer contacts and other unverified surfaces are not inferred from the US result.

Why scrape Instacart?

Instacart aggregates major grocery retailers (Costco, Kroger banners, Walmart, Sprouts, and many local chains) with location-aware prices and availability. Teams scrape Instacart for:

  • Grocery price monitoring across ZIP codes and metros (SF, NYC, Toronto, Montreal…)
  • Retailer assortment research by collection (produce, dairy, frozen, alcohol…)
  • Competitive tracking vs warehouse clubs and supermarket banners
  • Delivery ETA snapshots for ops / marketplace analytics
  • Feeding BI dashboards, pricing tools, or AI agents with structured Instacart rows

Compared with keyword-only or storefront-only Instacart Actors on the Store, this Actor covers nearby shops + storefront + collections + discoverCollections + hubs + SEO categories + product enrich + search + ETA across US and Canada in one input surface.


Features

CapabilityWhat it means for you
Multi-market coverageUS (instacart.com) · CA (instacart.ca) · optional language=fr
City presetssf nyc la chicago seattle austin miami denver · toronto vancouver montreal calgary ottawa
Retailer discoverynearMe / discoverRetailers nearby shops for a postal code
Collections & navcollection pagination + discoverCollections (DiscoverNav / known slugs)
Hubs & SEO categories/store/hub/{slug} · /categories/{id}-{slug}
Product detail & batchproduct · enrich · default enrichDetails on listings
SearchStore or cross-retailer keyword search
ETAincludeEta or mode=eta when Instacart exposes accurate ETAs
Free-tier friendly10 runs / 200 results for free Apify plans (developer policy)
Standby Live ViewLightweight health + OpenAPI; full scrapes still use normal runs

Out of scope: Instacart+ / member login pricing · add-to-cart · checkout.


Example inputs

Nearby grocery shops

{
"mode": "nearMe",
"city": "nyc",
"maxResults": 20,
"includeEta": true
}

Costco produce collection (US)

{
"mode": "collection",
"country": "us",
"city": "seattle",
"retailerSlug": "costco",
"collectionSlug": "produce",
"maxResults": 40,
"maxPages": 3
}

Discover store collections

{
"mode": "discoverCollections",
"city": "chicago",
"retailerSlug": "costco",
"maxResults": 30
}

Keyword search inside a retailer

{
"mode": "search",
"city": "austin",
"retailerSlug": "costco",
"query": "organic milk",
"maxResults": 25
}

Canada collection (Vancouver)

{
"mode": "collection",
"city": "vancouver",
"retailerSlug": "save-on-foods",
"collectionSlug": "produce",
"maxResults": 20,
"maxPages": 2
}

More Actors like this

Need grocery, food-delivery, club-retail, or general ecommerce data outside Instacart? Use a dedicated Actor below for structured fields. Use this Actor for Instacart shops, products, collections, hubs, and search.

Similar grocery, retail & food-delivery scrapers

Prefer another specialized scraper?

If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic scrape.

Jobs & Freelance

Real Estate

E-commerce

Social & Content

Ads Intelligence

General Tools

→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.


How to scrape Instacart (no code required)

  1. Create a free Apify account
  2. Open this Actor
  3. Choose a mode (see table below)
  4. Choose a country (us / ca) or a city preset
  5. Fill retailer / collection / product / query fields for that mode
  6. Click Start and download the Dataset as JSON, CSV, Excel, or JSONL

Start with maxResults: 5–15 to verify the query, then scale up.

ModeRequired inputs
nearMe / discoverRetailersOptional city / postalCode · optional includeEta
storefrontretailerSlug
collectionretailerSlug + collectionSlug · optional maxPages
discoverCollectionsretailerSlug
productproductId or productUrl
enrichproductIds / startUrls / productUrl
searchquery · optional retailerSlug
hubhubSlug (e.g. deals_tab, alcohol)
categorycategoryId · optional categorySlug
etaOptional city / postalCode
startUrlsInstacart storefront / collection / hub / category / product / search URLs

How much does it cost to scrape Instacart?

This Actor uses pay-per-event pricing. You are charged for:

EventPrice
Actor Start (apify-actor-start)$0.005 per start
Result (apify-default-dataset-item)$3.00 / 1,000 results ($0.003 each on FREE/BRONZE)

Platform usage costs are included — you do not pay separate Apify compute/proxy usage for this Actor on top of the event prices above (User pays platform usage costs = No).

Discount tiers (per result)

Tier$/1,000per result
FREE*$3.00$0.003
BRONZE$3.00$0.003
SILVER$2.60$0.0026
GOLD$2.20$0.0022
PLATINUM$2.00$0.002
DIAMOND$1.60$0.0016

*Free Apify-plan users are also capped by the developer policy: 10 runs / 200 results per run.

Example cost estimates

Results collectedApprox. event cost*
100~$0.31
1,000~$3.01
10,000~$30.01

*Assumes one Actor start at default memory billing for start events, plus $0.003 per Dataset item. Exact start billing can scale with allocated memory (one start event per GB, minimum one).


Input

See the Input tab for the full schema. Common fields: mode, country, city, postalCode, retailerSlug, collectionSlug, hubSlug, categoryId, productId / productUrl / productIds, query, startUrls, enrichDetails, enrichLimit, includeEta, maxPages, maxResults.


Output

Each Dataset item is a shop, product, collection, hub, category, suggestion, or ETA row. Typical product fields include itemType, productId, name, priceString, available, url, shopId, retailerSlug, collectionSlug, country, acquisition, plus phones, emails, address, geo, person, org, web, leadSource, leadReveal, and leadAbsences.

Key-value store (no internal backend URLs):

KeyWhen
INPUT_ECHOAlways — sanitized input + free-tier / proxy source flags
RUN_SUMMARYSuccess or free-tier limit — counts, mode, warnings
ERROR_SUMMARYFailure — safe error type + message

Tips for better results

  • Prefer a city preset or accurate postalCode — Instacart prices and shops are location-aware
  • Start with a known retailer (costco, sprouts, banner slugs) before broad nearMe crawls
  • Use discoverCollections to list nav slugs, then run collection with maxPages
  • Keep maxResults small for first runs with the default enrichDetails=true — each PDP adds time to the collection
  • Canada: use city=montreal + language=fr when you need French UI context

FAQ

Is this an official Instacart product or API?

No. This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Instacart or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. It scrapes publicly reachable guest shopping pages only.

Do you scrape Instacart+ member prices?

No. Member / login pricing and cart/checkout are out of scope.

Which countries are supported?

US and Canada only (Instacart’s public grocery markets for this product surface).

Can I schedule recurring price monitors?

Yes — use Apify Schedules or the API with a fixed postalCode / retailerSlug / collectionSlug.


This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Instacart or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

Use responsibly and comply with Instacart’s terms and applicable laws. Do not use this Actor for fraud, account takeover, or high-volume abuse. Data is provided as collected from public pages and may change without notice.

All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.

Jobs & Freelance

Real Estate

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ Browse the full profile: apify.com/lentic_clockss