Price & Stock Delta Monitor (Shopify + Schema.org)
Pricing
from $2.00 / 1,000 product checkeds
Price & Stock Delta Monitor (Shopify + Schema.org)
Hourly price and stock checks for Shopify and Schema.org product pages. Returns compact JSON with PRICE_DROP, PRICE_INCREASE, OUT_OF_STOCK and BACK_IN_STOCK deltas and optional webhook alerts. Pay per product checked.
Pricing
from $2.00 / 1,000 product checkeds
Rating
0.0
(0)
Developer
Yushi Homma
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
Price & Stock Delta Monitor
Track price and stock changes on product pages. Give it product URLs; on every run it returns each variant's current price and stock status, what changed since the previous run, and can POST each change to your webhook.
- Shopify stores: any
/products/<handle>URL, read from Shopify's public product endpoint (every variant, SKU, price and stock status). - Any other store with Schema.org data: product pages that embed
ProductorProductGroupJSON-LD (most large e-commerce platforms do). - Change detection built in:
PRICE_DROP,PRICE_INCREASE,OUT_OF_STOCK,BACK_IN_STOCK,UNCHANGED,FIRST_SEEN, with the previous price and the delta. - API and AI agent tool: check a URL in one API call, or let an AI agent call it as a tool through the Apify MCP server.
- No browser, low cost: plain HTTP requests, 256 MB memory, a few seconds per run.
Use cases
- Watch competitors' prices and get a webhook (to Slack, email or a spreadsheet via Zapier, Make or n8n) the moment they change.
- Get alerted when a sold-out size or color comes back in stock.
- Feed a repricing tool or a price-history dashboard with clean, typed deltas.
- Give an AI agent a reliable "what does this product cost right now?" tool.
How to use it
- Add product URLs, for example
https://www.allbirds.com/products/mens-wool-runners. - Optionally set Alert webhook URL. Each price or stock change is POSTed there as JSON.
- Run it on a schedule (hourly or daily). The first run records a baseline (
FIRST_SEEN); later runs report changes against the previous run.
Price history is kept per product URL and variant SKU in your account's key-value store price-delta-monitor-state, so it survives between scheduled runs.
Tutorial: get a Slack message when a Shopify product's price drops
- In Zapier, Make or n8n, create a scenario that starts with a webhook trigger ("Catch Hook" in Zapier, "Custom webhook" in Make, "Webhook" node in n8n) and copy its URL.
- Add a Filter step that continues only when
item.changeTypeisPRICE_DROP(or alsoBACK_IN_STOCK), then a Slack → Send message step withitem.title,item.previousPrice,item.currentPriceanditem.url. - In this Actor, paste the product links under Product URLs and the webhook URL into Alert webhook URL.
- Run it once. That run records today's prices as the baseline (
FIRST_SEEN). - Open Schedules in Apify Console and run the Actor hourly or daily. Every price or stock change is POSTed to your scenario, and the filter decides which ones reach Slack.
Input
{"urls": ["https://www.allbirds.com/products/mens-wool-runners"],"alertWebhookUrl": "https://hooks.example.com/price-alerts"}
| Field | Required | Description |
|---|---|---|
urls | yes | 1 to 1,000 product page URLs. |
alertWebhookUrl | no | Receives a POST for every price or stock change. |
proxyConfiguration | no | Leave empty to connect directly and fall back to Apify datacenter, then residential proxies only for stores that block the run. Set a proxy to use it for every request. |
Output
One dataset item per variant:
{"url": "https://www.allbirds.com/products/mens-wool-runners","sku": "WR3MNGL090","title": "Men's Wool Runner - Natural Grey (Light Grey Sole) - 9","currency": "USD","currentPrice": 99,"inStock": true,"previousPrice": 110,"priceDelta": -11,"changeType": "PRICE_DROP","checkedAt": "2026-10-25T04:00:00.000Z"}
The webhook body is { "actor": "price-delta-monitor", "item": { ...same fields... }, "detectedAt": "<ISO time>" }.
API and AI agents
Run it and get the results in one call:
curl -X POST "https://api.apify.com/v2/acts/yushi3~price-delta-monitor/run-sync-get-dataset-items" \-H "Authorization: Bearer <APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"urls": ["https://www.allbirds.com/products/mens-wool-runners"]}'
It returns the dataset items as a JSON array. AI agents can call the Actor as a tool through the Apify MCP server.
Pricing
You pay per product URL checked, not per variant, plus a small fee per alert actually delivered:
| Event | Price |
|---|---|
| Product checked | $0.002 |
| Change alert delivered to your webhook | $0.005 |
You are not charged when a page can't be read: if a store blocks the request or a page has no machine-readable price, the run fails loudly instead of returning empty or made-up data, and nothing is billed for that URL. Failed webhook deliveries are not billed either.
Limitations
- Pages must expose prices to plain HTTP: either a Shopify store or Schema.org product JSON-LD. Sites that render prices only with JavaScript, or that block automated requests (for example eBay, Best Buy), are not supported.
- Prices are reported as the store displays them to an anonymous visitor in the store's default currency.
- Change detection compares against the previous run of your account; the first run for a URL is always
FIRST_SEEN. - Some stores block automated requests even for their public product data; those URLs are reported as unreachable and not billed.
When a URL fails
One bad URL never costs you the rest of the run. Every URL is checked; failures are listed in the run's key-value store under FAILED_TARGETS with the reason, for example a discontinued product (product no longer exists (redirects to …)) or a store blocking the request. The run only fails outright when a store's page format changed in a way the Actor can no longer read, or when every URL failed.
Questions and issues
Open an issue on the Actor's Issues tab. The Actor is re-tested against live stores every 12 hours, so breakages caused by store changes are caught quickly.