BigCommerce Price & Stock Delta Monitor
Pricing
from $2.00 / 1,000 bigcommerce delta events
BigCommerce Price & Stock Delta Monitor
Monitor public BigCommerce storefronts for stateful price, stock, sale-start, and product-removed deltas from sitemaps and JSON-LD.
Pricing
from $2.00 / 1,000 bigcommerce delta events
Rating
0.0
(0)
Developer
Andy Besos
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Monitor any public BigCommerce storefront through its published sitemap and product-page JSON-LD. BigCommerce Price & Stock Delta Monitor returns normalized SKU-level prices, sale prices, availability, conditions, product URLs, and typed change events for scheduled competitive monitoring.
You do not need a BigCommerce account, merchant API key, storefront credentials, or a browser. The Actor reads only public robots.txt, sitemap XML, HTML, JSON-LD, and publicly embedded BigCommerce product data. Use a normal storefront hostname or URL as input; sitemap discovery is automatic.
Why use this BigCommerce scraper?
- Discover product pages from
robots.txt,/sitemap.xml,/sitemap_products.xml, and legacy BigCommercexmlsitemap.phpproduct sitemaps. You do not need to find or maintain a feed URL manually. - Track the fields buyers use for price intelligence: SKU, effective price, regular price, sale price, compare-at price, currency, availability, item condition, and optional public inventory level.
- Receive typed events including
price-drop,price-increase,sale-start,sale-end,back-in-stock,sold-out,product-removed,new-product, andupdated. - Get
oldValuesandnewValuesfor changed fields, plus the source product URL, so a downstream workflow can alert, reprice, or open a review task without scraping the page again. - Persist a complete per-store snapshot in Apify Key-Value Store. Output limits are applied after reconciliation, so a small output limit does not create phantom removal events.
- Filter scheduled runs to changes detected after an ISO timestamp with
onlyChangesSince. The first successful run establishes the baseline.
Requests use retries with backoff for temporary failures. A failed product page is isolated from the rest of its storefront, and a failed storefront is isolated from other targets. The run fails only when every target fails.
Pricing
The Actor uses pay-per-event pricing: $0.0005 per run plus $0.002 per exported dataset result.
| Results | Actor event price |
|---|---|
| 1 | $0.0025 |
| 100 | $0.2005 |
| 1,000 | $2.0005 |
| 10,000 | $20.0005 |
The exact formula is $0.0005 per run plus $0.002 per result before any tier discount. A result is one row written to the default dataset; a change-only run with no detected changes writes no result rows. Standard Apify charges for retaining or downloading data may apply.
How to use this Actor
targets accepts a storefront hostname (catalyst-demo-site.mybigcommerce.com), an origin URL (https://www.prodryers.com/), or a pasted sitemap URL. The Actor normalizes these to the storefront hostname. Add one or several storefronts.
Quick start
{"targets": ["https://catalyst-demo-site.mybigcommerce.com/"],"maxItemsPerTarget": 1}
The prefilled example uses one public BigCommerce demo storefront and one exported row, making the first health check fast. Set maxItemsPerTarget to 0 to export every event. The full storefront snapshot is still reconciled regardless of this output limit.
Multiple stores and a respectful crawl delay
{"targets": ["www.prodryers.com", "catalyst-demo-site.mybigcommerce.com"],"maxItemsPerTarget": 100,"requestDelayMillis": 1000}
For a storefront that blocks direct datacenter traffic, you can enable the optional Apify Proxy fallback:
{"targets": ["https://example-bigcommerce-store.com"],"useApifyProxy": true,"maxItemsPerTarget": 0}
Monitor new, updated, and removed records
Run the Actor on a schedule with the same monitorId and target list. State is kept separately for each storefront and monitor ID.
{"targets": ["www.prodryers.com"],"monitorId": "reseller-map-watch","onlyChangesSince": "2026-09-01T00:00:00.000Z","maxItemsPerTarget": 0}
The first successful run labels observed products new and creates the baseline. Later runs emit the following states and typed eventType values:
changeType | Meaning |
|---|---|
new | A SKU or product URL was not in the previous successful snapshot. |
updated | One or more monitored fields changed; changedFields names them. |
unchanged | The product remains present with the same monitored values. |
removed | A product previously present in the complete sitemap snapshot disappeared. |
For example, a regular-price decrease is changeType: "updated" and eventType: "price-drop"; a product absent from the next full sitemap is changeType: "removed" and eventType: "product-removed". A removal is emitted once when first detected.
API example
curl -X POST \"https://api.apify.com/v2/acts/Clintsa~bigcommerce-price-stock-delta-monitor/run-sync-get-dataset-items" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"targets": ["https://catalyst-demo-site.mybigcommerce.com/"],"monitorId": "demo-watch","maxItemsPerTarget": 10}'
Input options
| Field | Type | What it controls |
|---|---|---|
targets | string array | Required storefront hostnames or URLs. |
maxItemsPerTarget | integer | Exported rows per target; 0 means no limit. Defaults to 1. |
monitorId | string | Persistent namespace for an independent stateful watch. |
onlyChangesSince | ISO timestamp | Excludes unchanged rows and changes detected before this time. |
requestDelayMillis | integer | Delay between product-page requests, from 0 to 60,000 ms. |
useApifyProxy | boolean | Uses Apify Proxy as an optional fallback. |
proxyConfiguration | object | Proxy settings used when useApifyProxy is enabled. |
Output
Each Dataset row is a product or SKU observation with event metadata:
{"target": "catalyst-demo-site.mybigcommerce.com","itemId": "sku:CC3C","sku": "CC3C","name": "[Sample] Chemex Coffeemaker 3 Cup","productUrl": "https://catalyst-demo-site.mybigcommerce.com/chemex-coffeemaker-3-cup/","price": 39.5,"regularPrice": 49.5,"salePrice": 39.5,"compareAtPrice": 59,"priceCurrency": "USD","inStock": true,"inventoryLevel": 7,"availability": "in_stock","changeType": "updated","eventType": "price-drop","changedFields": ["price", "salePrice"],"oldValues": {"price": 49.5, "salePrice": null},"newValues": {"price": 39.5, "salePrice": 39.5},"scrapedAt": "2026-09-01T10:00:00.000Z"}
The Actor also writes a SUMMARY record containing requested, successful, and failed targets, fetched records, exported rows, generic change totals, typed event totals, proxy usage, monitor ID, and completion time.
Use cases
- Brand-protection and MAP-compliance teams checking reseller prices and sale changes.
- Competitive-intelligence teams building SKU-level price and availability histories.
- Dropshippers watching supplier or competitor catalog changes for repricing workflows.
- Merchandising teams routing restock, sold-out, sale-start, and product-removal alerts.
- Automation builders sending change-only rows to Make, n8n, Slack, Sheets, or a BI pipeline.
FAQ
Do I need a BigCommerce API key?
No. The Actor uses public storefront pages and published sitemaps only. It does not access a merchant account or BigCommerce Admin API.
Can I monitor a store without knowing its product feed URL?
Yes. Enter the storefront URL or hostname. The Actor checks robots.txt and common BigCommerce sitemap paths, including the legacy product sitemap endpoint.
Does the Actor return exact stock quantities?
Only when the storefront publicly embeds an inventory number. Most Product JSON-LD exposes a reliable in-stock flag rather than units on hand; inventoryLevel is therefore nullable.
Does the first run send alerts for every product?
The first run establishes a baseline and labels rows new. Use onlyChangesSince on later scheduled runs when you want only new, updated, or removed events.
Can I monitor several storefronts?
Yes. Add multiple targets; every row contains its normalized target and product URL. Failed stores do not discard successful stores.
What happens when a product is removed?
After a successful full sitemap crawl, a previously observed SKU or product URL missing from the next snapshot is emitted as product-removed exactly once.
Can I use a proxy?
Most public BigCommerce storefronts work with direct HTTP. Enable useApifyProxy only when a target's WAF blocks direct requests. A target may still deny automated access.
Limitations and responsible use
This Actor returns only information publicly published by each storefront. It does not return private inventory, customer-specific pricing, login-only offers, cart pricing, order data, or data hidden behind JavaScript challenges. JSON-LD and embedded page data vary by theme, so fields that a store does not publish are null; exact stock quantities are not inferred. A price-drop is an observation of a public page change, not proof of a sale's duration, MAP violation, availability for every customer, or commercial intent. Respect robots.txt, the target site's terms, applicable privacy and computer-access laws, and reasonable crawl rates. Use exported observations lawfully and verify important decisions with the source store.
Support
Report a problem or request a feature through the Issues tab on this Actor's page. Include the run ID, target hostname, and input you used.