ShopRite US Scraper: Price Plus, Digital Coupons & Deals avatar

ShopRite US Scraper: Price Plus, Digital Coupons & Deals

Pricing

from $3.20 / 1,000 products

Go to Apify Store
ShopRite US Scraper: Price Plus, Digital Coupons & Deals

ShopRite US Scraper: Price Plus, Digital Coupons & Deals

Get US ShopRite prices for milk, coffee and groceries by ZIP or store: sale prices, Price Plus labels, digital coupons, deal dates, unit prices, stock, UPC and size. About $0.004 per product: 1,000 products cost $4. No login. Missing card-price values stay null.

Pricing

from $3.20 / 1,000 products

Rating

0.0

(0)

Developer

mogged

mogged

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Security

Limited permissions

Share

For grocery price analysts, brands and comparison services collecting recurring observations from US ShopRite stores. Search milk, coffee, meat and other groceries, choose ZIP codes or exact stores, and export advertised prices, sale dates, unit prices, original UPCs, availability and public digital coupon offers. About $0.004 per delivered product, or $0.08 for 20 products, plus a minimum $0.00005 Actor start charge. No retailer login or retailer API key is needed.

This is the US Wakefern ShopRite, using the common Safeway & Albertsons retail-family fields.

What the prices mean

price is the advertised current price from the selected ShopRite store's public catalog. regularPrice comes from the explicit previous price when present. For a product explicitly marked regular, the current price is also its regular price. Missing previous prices remain null.

Offers preserve dates, minimumQuantity, limit and conditions. Multibuys such as "12 for $16.00" remain conditional, rather than becoming unconditional unit prices.

Explicit loyalty discounts populate memberPrice; unknown Price Plus requirements remain null. A null does not prove no card is required.

Public SKU-linked digital coupons stay in offers, with their supplied saving and conditions. Savings are not subtracted from price. Missing coupon dates remain null; account-specific eligibility is unavailable.

For weighted products, priceText: "avg/ea" identifies an estimated pack price. unitPrice keeps the per-pound price. Preserve both alongside sellByWeight and unitOfPrice; checkout weight can change the total. Taxes and fees are excluded.

What you get

Each row represents one product at one verified store. Unknown values remain null.

FieldMeaning
verdictProduct, advertised price and selected store in one sentence.
retailer, country, currencyShopRite, US and USD.
storeId, storeName, locationVerified store number and name, plus the requested ZIP. ZIP is null for exact or default stores.
productId, sku, gtinOriginal product identifier and UPC/SKU text, retaining leading zeros.
title, brand, sizeProduct name, supplied brand and package-size label.
price, regularPrice, onSaleAdvertised store price, explicit previous price and observed sale status.
promoText, promoTypeMain promotion label and normalized type.
promoStart, promoEndAvailable main promotion validity dates, using UTC timestamps when supplied.
memberPrice, memberProgramExplicit loyalty price and program; null when not separately identified.
unitPrice, unitOfMeasureSource price per unit and its label, such as lb, oz, gal or fl oz.
inStock, stockLevelPublic catalog availability; shelf quantity remains null.
rating, reviewCountSource aggregate review fields, usually null.
category, url, imageUrlCategory breadcrumb, store-scoped product page and product image.
scrapedAtUTC time of the observation.

Retailer-specific extras follow those fields:

FieldMeaning
banner, upcshoprite and the original barcode text.
aisle, shelfStore product location when supplied by a product detail response.
sellByWeight, sellByWeightCodeWhether the source sells by weight, plus its original selling-unit label.
snapEligibleExplicit product SNAP flag when available; otherwise null.
isDealSale, explicit loyalty discount, promotion or verified public coupon.
digitalCouponAvailableTrue or false after a successful lookup; null when coupon coverage is unknown.
digitalCouponText, offersCoupon summary and all normalized source-linked promotional evidence.
weeklyAdNull unless separately established. A sale flag is not treated as proof of circular placement.
priceRequiresMembershipTrue only for an explicit source loyalty discount; unknown remains null.
priceText, unitPriceText, priceSourceOriginal display labels and catalog price source.
wholePrice, unitOfSize, unitOfPriceOriginal selling-unit and package information, useful for weighted products.
storeAddress, storeTimezone, storeDistancePublic store location and distance from a ZIP center in miles.
requestedLocationsAll supplied ZIPs that resolved to this same store.
details, sourceUrlOptional ingredients, nutrition and attributes, plus the public store-specific source.

The overview, deals and details views match the retail family. DEALS contains only qualifying deal rows, split into linked parts for larger exports.

Every run saves a SUMMARY record with products, stores, dealsFound, freeFailures, chargedProducts, spendingLimitReached, duplicateExclusions, resolvedStores, outcomes and notes. This is the same central monitoring contract as the retail family. Check its status before importing a snapshot as complete. Product rows have recordType: "PRODUCT"; explanatory rows have recordType: "NOTE" and no Product fee.

Start in three steps

  1. Enter product search terms, category/deals links or product IDs.
  2. Choose ZIP codes or exact store IDs and set a global product cap.
  3. Start the run, inspect SUMMARY and export the dataset as JSON, CSV or Excel.

The 3 November 2026 cloud prefill delivered 20 unique milk products near 07080 in 18.9 seconds, with a complete summary. It selected ShopRite of South Plainfield, store 578. Exact store IDs keep recurring monitoring stable.

Inputs and examples

InputBehavior
searchTermsArray such as ["milk", "coffee"]. Each term is searched at every selected store.
startUrlsOptional public ShopRite category, results, promotions or product links. Plain strings are accepted.
productIdsExact SKU strings such as ["00041190467150"]. Preserve leading zeros.
locationsUS ZIPs such as ["07080", "10001"]. Chooses the nearest live verified grocery store within 100 miles of each ZIP center.
storeIdsExact store numbers such as ["592", "112"]; these take precedence over ZIPs.
maxItemsPerSearchNew rows per source and store. Default 20, maximum 1,000.
maxItemsGlobal product/store observation cap. Default 20, maximum 10,000.
dealsOnlyRetain observed sales, promotions, explicit member discounts and public coupons.
includeDetailsAdd store-scoped ingredients, nutrition and aisle when available. Adds requests; no extra Product fee.
proxyConfigurationDefault datacenter routing with US residential retries after refusals. Custom proxies are supported.

With no source selection, the Actor searches milk. With dealsOnly: true and no source selection, it selects the live sale-product catalog. With no ZIP or store IDs, it uses the site's corporate default, store 3000. Corporate prices are not a national average and should not be labeled as a nearby physical store's prices. Its address is kept null.

A meat category at a fixed store:

{
"startUrls": ["https://www.shoprite.com/sm/planning/rsid/592/categories/meat-id-520692"],
"storeIds": ["592"],
"maxItemsPerSearch": 100,
"maxItems": 100
}

An exact basket at two stores:

{
"productIds": ["00041190467150", "00041190467242"],
"storeIds": ["592", "112"],
"includeDetails": true,
"maxItems": 4
}

Pasted URL store numbers do not override the run's explicit store selection. Category IDs come from the category URL. Search and category pages can include sponsored insertions, so pagination follows the retailer's next link rather than skipping by the number of returned cards. Overlapping products at the same store are delivered once.

Real output example

Selected fields from the 3 November 2026 prefill:

{
"retailer": "ShopRite",
"country": "US",
"currency": "USD",
"storeId": "578",
"storeName": "ShopRite of South Plainfield",
"location": "07080",
"productId": "00041190467150",
"gtin": "00041190467150",
"title": "Bowl & Basket Whole Milk, one gallon",
"price": 4.89,
"regularPrice": 4.89,
"unitPrice": 4.89,
"unitOfMeasure": "gal",
"inStock": true,
"memberPrice": null
}

Two private volume tests on 3 November 2026 each delivered 1,200 unique products across three stores, with 1,200 accepted Product charges and a complete summary. One used milk and coffee searches and the other a meat category. They finished in 291.2 and 336.6 seconds. These are measured examples, not a runtime guarantee.

Pricing and spending limits

A Product fee applies to one distinct delivered product at one store. The same product at two stores is two observations. Overlapping searches, repeated IDs and repeated ZIPs resolving to the same store do not create a second fee within a run. Notes, summaries, source failures and empty results carry no Product fee. There is no additional default dataset-item charge.

Delivered observationsBaseBronzeSilverGold
20$0.08$0.076$0.072$0.064
100$0.40$0.38$0.36$0.32
1,000$4.00$3.80$3.60$3.20

Add the minimum $0.00005 Actor start charge. Base pricing is $0.004 per Product, Bronze $0.0038, Silver $0.0036 and Gold $0.0032. The maximum total charge is checked before saving each additional paid observation. Reaching that limit stops collection cleanly and sets spendingLimitReached in SUMMARY. Optional details have no separate event fee.

Monitor prices every day

Save a fixed-store basket as a task. In Apify Console, schedule it daily and connect its completed-run webhook to your database.

Join observations using retailer + storeId + productId. Keep scrapedAt, price, regularPrice, memberPrice, offer conditions and unit prices in separate columns. UPCs should be text in spreadsheets. A new scheduled run creates a fresh observation and charges for its delivered products again; this Actor does not supply historical backfill.

Check SUMMARY and source outcomes before importing a snapshot as complete. Preserve gaps rather than substituting prices. Make, Zapier, n8n and Sheets can consume these outputs.

API and automation

Start a run, then fetch its dataset and SUMMARY:

curl -X POST \
'https://api.apify.com/v2/acts/moggedhq~shoprite-us-scraper/runs' \
-H 'Authorization: Bearer YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"searchTerms":["coffee"],"storeIds":["592"],"maxItems":20}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("moggedhq/shoprite-us-scraper").call(
run_input={"searchTerms": ["milk"], "storeIds": ["592"], "maxItems": 20}
)
rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())
summary = client.key_value_store(run["defaultKeyValueStoreId"]).get_record("SUMMARY")
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('moggedhq/shoprite-us-scraper').call({
searchTerms: ['coffee'], storeIds: ['592'], maxItems: 20
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Use with AI agents (MCP)

Connect an agent to https://mcp.apify.com. Ask it for US ShopRite store prices, promotion dates, unit prices, UPCs and public coupon conditions. Give ZIPs or exact store IDs, search terms or product IDs, and your maximum product count. Ask it to inspect SUMMARY and preserve null membership values and coupon conditions. Existing retail-family integrations can retain the same common field names and replace the Actor name plus source-specific IDs.

Reliability and limits

Public Wakefern requests run serially, at least 1.5 seconds apart, with datacenter before US residential retries and fresh sessions after refusals. Official shared gateway hosts retain the explicit ShopRite selector and verified store number. No account sessions, logins or CAPTCHA solving.

Store metadata and catalog prices are fetched live for each run. ZIP selection uses a geographic ZIP center, so it may differ from a route-distance choice or a shopper's manually selected store. Wine and spirits stores are excluded from grocery-store selection. No store is chosen beyond the stated 100-mile radius. Exact store IDs provide the most repeatable comparison.

Saved pages, progress and dataset rows survive restarts. Serial delivery restores IDs and reconciles the last unconfirmed row against authoritative charge counts and durable receipts. Stable charge keys prevent repeat charges; ambiguous billing evidence stops charging.

Availability is an online catalog signal, not a physical shelf audit. Cart quantity is not stock quantity. Missing ratings, exact inventory, SNAP eligibility and distinct card prices remain null. Sale dates can be supplied even when a digital coupon's dates are unavailable. Can Can Sale and Dollar Days appear only if the live catalog actually labels an offer that way; the Actor does not assign those campaign names from the calendar.

Image-only circular panels, account-specific clipped offers and checkout eligibility are outside coverage. Optional details can remain unavailable.

FAQ

Why is memberPrice null for a sale? The public catalog did not separately identify a loyalty price. Do not infer that no card is needed.

Are nulls and empty searches charged? A useful delivered product has a Product fee even if optional fields are null. An empty search, note or failed source has no Product fee.