Gopuff Scraper - US Quick-Commerce Prices & Assortment
Pricing
from $1.50 / 1,000 product records
Gopuff Scraper - US Quick-Commerce Prices & Assortment
Scrape Gopuff, the US quick-commerce delivery store, by location or product: prices, promotions, stock and availability per fulfillment location across thousands of everyday products. Availability monitoring (NEW, UPDATED, REAPPEARED, EXPIRED), detail enrichment, incremental runs, MCP export.
Pricing
from $1.50 / 1,000 product records
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape Gopuff, the US quick-commerce delivery store, by location or by product: per-store prices, promotions, stock counts and availability across thousands of everyday products, exported through MCP connectors when you need them elsewhere.
Why This Scraper?
- Blue-ocean coverage: Gopuff's micro-fulfillment catalog (thousands of products, ~1000 US locations, 15-minute delivery) has no dedicated storefront scraper.
- Per-location truth: Gopuff prices and assortment differ per fulfillment location. This actor resolves each ZIP/city you name to the storefront's own location and walks the catalog with that location's prices and deals.
- Promotions, not just prices: multi-buy offers ("2 for $5"), coupon-backed deals, unit prices, Fam-member pricing, badges and sponsored tiles are part of every record.
- Monitoring built in: label every record NEW / UPDATED / REAPPEARED / EXPIRED across runs, resume an interrupted crawl, and export to MCP connectors.
- Structured failures: a blocked run fails loudly with a clear message instead of returning an empty dataset.
Data You Get
Catalog mode walks the collections of each location and returns one record per product: product id, title, URL, image, price and currency, Fam price, unit price, promotions (text + coupon id), badges, size label, availability, stock quantity, SNAP eligibility, sponsored flags, category and location ids.
Product mode reads product links or ids and returns one enriched record per product: everything above plus description, brand, SKU and the product's own image. With the detail-enrichment option, catalog records gain the same detail fields.
Incremental runs add changeType, changedFields, firstSeenAt and
lastSeenAt to every record.
How to Use
- Pick Catalog by location (the default), add one or more US ZIP codes or city names, and run. The actor walks the storefront navigation and emits records until Max items is reached.
- Want specific departments? Put collection links (for example
https://www.gopuff.com/c/candy/txERmYDy) or deal-page links into Collections. - Need individual products? Switch to Product links or ids mode and list product links or numeric ids.
- Monitoring a catalog over time? Turn on Incremental runs and reuse the same input; the actor tracks what changed between runs.
- Optional: connect an MCP connector to push records into Notion or another destination after each run.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| mode | select | categories | Catalog by location, or product links/ids |
| locations | array | - | Catalog mode: US ZIP codes, city names, or lat,lng pairs |
| locationId | string | empty | Advanced: pin an exact storefront location id |
| categoryInputs | array | empty | Catalog mode: collection links or bare ids; empty walks the whole navigation |
| discoverCategories | boolean | true | Read the storefront navigation when no collections are set |
| inStockOnly | boolean | false | Hide items the location currently cannot deliver |
| productInputs | array | empty | Product mode: product links or numeric ids |
| maxItems | integer | 20 | Stop after this many records (0 = unlimited); shared across locations |
| maxPages | integer | 0 | Max pages per collection (0 = every page the collection has) |
| pageSize | integer | 50 | Products per page (10-50) |
| fetchDetails | boolean | false | Catalog mode: read each product's own document (per-record surcharge) |
| incrementalMode | boolean | false | Track NEW / UPDATED / REAPPEARED / EXPIRED between runs |
| emitUnchanged | boolean | false | Also return (and bill) unchanged records |
| emitExpired | boolean | false | Also return (and bill) records gone from a complete scan |
| stateKey | string | empty | Name a monitoring campaign explicitly |
| resumeFromRunId | string | empty | Skip records already collected by a run or dataset |
| mcpConnectors | array | empty | MCP connector export |
| notionParentPageUrl | string | empty | Notion parent page for the Notion connector |
| maxNotifyListings | integer | 50 | Cap per connector per run |
| proxyConfiguration | object | proxy on | Apify proxy; the read needs one residential US exit |
Keyword search is deliberately not offered: the storefront answers keyword queries with result counts and facets but serves its result grid only to sessions with a delivery address, which an anonymous read cannot set. The collection walk is the way to enumerate the catalog.
Output Example
{"kind": "product","productId": "302563","url": "https://www.gopuff.com/p/starburst-sour-fruit-chews-chewy-candy-share-size-3-45-oz/p302563","title": "STARBURST Sour Fruit Chews Chewy Candy, Share Size, 3.45 oz","price": 3.29,"currency": "USD","pricePerUnitUsd": 0.954,"unit": "oz","hasPromotion": true,"promotions": [{"text": "2 for $5", "couponId": "6d22245b-bd84-4dad-bf0b-bc9181d2961d", "couponSystem": "GOCOUPONS"}],"sizeLabel": "3.45oz","availability": "in_stock","quantityAvailable": 19,"snapEligible": true,"categoryId": "txERmYDy","categoryName": null,"locationId": "691","imageUrl": "https://images.gopuff.com/blob/...","priceChannel": "default","changeType": "NEW","firstSeenAt": "2026-08-30T02:00:00+00:00","lastSeenAt": "2026-08-30T02:00:00+00:00"}
Send results into your apps (MCP connectors)
Optionally pipe results into Notion, Linear, Airtable or Apify via MCP connectors, in the Integrations section of the input. Each connector receives a condensed summary per product; the complete record always stays in the dataset, so nothing is lost if you leave this off.
mcpConnectors- the MCP connectors to export this run's products into (Notion, Linear, Airtable, Apify). Leave it empty and nothing is exported.notionParentPageUrl- Notion connector only: the page under which one child page per product is created. Required whenmcpConnectorsincludes Notion, ignored otherwise.maxNotifyListings- how many products are exported to each connector in one run, default 50. This caps the export only; it never changes what the dataset returns.
Export runs after the dataset is complete and is best-effort: if a connector is unreachable the run still succeeds with a warning, and your products are still in the dataset.
Plan Requirement & Notes
- Pay-per-event: one unit per returned record, plus an Actor Start event, plus a detail-enrichment unit for each catalog record enriched from its product document (only when the enrichment option is on).
- The read goes out in the store's own mobile-app request shape, which the storefront answers directly: no browser runs in a normal pass. If the storefront ever challenges that shape, the actor falls back for the rest of the run to a browser-cleared session on the same connection. A run needs the Apify proxy with a residential US exit. A storefront that answers neither way fails the run loudly - it is never reported as an empty search. The default 1 GB memory covers the direct read; if a run ever needs the browser fallback, raise the run memory to 2 GB for it.
- Detail documents (the fetchDetails option and product mode) are priced by the storefront's default location rather than the walked location; catalog-mode prices, promotions and stock are always the walked location's own.