Product Price Tracker - Stock & Variants Monitor
Pricing
from $20.00 / 1,000 products
Product Price Tracker - Stock & Variants Monitor
Monitor product price, currency, availability and variants from any product URL. Parses JSON-LD and Open Graph - no store login or CSS selectors. Perfect for competitive pricing and restock alerts. MCP-ready.
Pricing
from $20.00 / 1,000 products
Rating
0.0
(0)
Developer
Виталий Белогуров
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
24 days ago
Last modified
Categories
Security
Limited permissionsShare
Product Price Tracker — Stock & Variants Monitor
Product price tracker API for competitor monitoring. Track price, currency, availability and variants from any product page URL — no CSS selectors, no per-site scrapers, no logins. Schedule it, diff the results, and know when prices or stock change (~$20 per 1,000 products).
Why users pick this Actor
- Clear pay-per-event pricing — you only pay for successful results (~$0.02/product)
- Structured JSON ready for CRM, sheets, Zapier/Make/n8n
- Works with AI agents via Apify MCP
- Honest limitations documented — no fake data
E-commerce Price Monitor reads the structured data that online shops already publish for Google: schema.org JSON-LD Product markup, with Open Graph / product:* meta tags and microdata as fallbacks. That means one Actor works across thousands of shops (Shopify, WooCommerce, Magento, BigCommerce and custom stores) as long as the product page exposes standard markup.
What does it do?
- Fetches each product URL over plain HTTP (fast and cheap — no browser).
- Extracts name, SKU, brand, image, price, currency and availability.
- Collects variants (sizes, colours, offers) from
ProductGroup.hasVariantor multiple offers, capped bymaxVariants. - Normalises availability to one vocabulary:
in_stock,out_of_stock,limited_stock,preorder,backorder,discontinued,online_only,in_store_only,unknown. - Optionally converts prices to a target currency using daily reference exchange rates.
- Tells you which source was used (
json-ld,json-ld+meta,microdata,meta) so you can judge data quality.
Why use this Actor?
| Custom scraper per shop | Browser-based scraper | E-commerce Price Monitor | |
|---|---|---|---|
| Time to add a new shop | Hours of selector work | Hours | Zero — paste the URL |
| Breaks when the theme changes | Often | Often | Rarely (uses standard markup) |
| Run cost | Developer time | High (browser compute) | Low flat price per product |
| Variants & stock | Per-site logic | Per-site logic | Built in |
| Multi-currency comparison | DIY | DIY | Built-in targetCurrency |
| Failed pages charged | n/a | Compute spent anyway | No |
Input
| Field | Type | Default | Description |
|---|---|---|---|
productUrls | array | — (required) | Direct product page URLs (not category/search pages). |
targetCurrency | string | none | ISO 4217 code (e.g. USD, EUR). Adds priceConverted to each record. |
maxVariants | integer | 20 | Max variants stored per product (0–200). |
proxyConfiguration | object | Residential | Optional Residential Apify Proxy (prefilled). Turn off if the shop works without it. No captcha needed. |
{"productUrls": [{ "url": "https://www.allbirds.com/products/mens-tree-runners" }],"targetCurrency": "EUR","maxVariants": 20,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Output
One record per URL:
{"url": "https://www.allbirds.com/products/mens-tree-runners","finalUrl": null,"name": "Men's Tree Runner","sku": "MENS_TREE_RUNNERS","brand": "Allbirds","price": { "amount": 100, "currency": "USD" },"priceConverted": { "amount": 92.1, "currency": "EUR", "rate": 0.921, "rateDate": "2026-10-09" },"availability": "in_stock","availabilityRaw": "https://schema.org/InStock","variants": [{"name": "Men's Tree Runner - Jet Black","sku": "TR3MJBW080","price": { "amount": 100, "currency": "USD" },"availability": "in_stock","url": "https://www.allbirds.com/products/mens-tree-runners-jet-black","imageUrl": "https://www.allbirds.com/cdn/shop/files/example.png"}],"imageUrl": "https://www.allbirds.com/cdn/shop/files/example.png","source": "json-ld","error": null,"scrapedAt": "2026-10-11T09:30:12.481Z"}
price is the lowest in-stock price found (or the lowest overall if everything is sold out). Pages with no usable data return a record with an error field and are not charged. End-of-run statistics (checked, in stock, out of stock, failures, charged events) are stored under STATS.
Pricing
Pay-per-event pricing:
| Event | Price | When it is charged |
|---|---|---|
product-checked | $0.02 (about $20 per 1,000 products) | A product with a name plus a price or availability was extracted |
- Failed requests, blocked pages and pages without product data are free.
- Platform compute is included in the event price.
- Use the Console's maximum cost per run to hard-cap spending.
Use cases
- Competitor price tracking: schedule daily runs and diff prices across rivals.
- MAP / pricing compliance: verify that resellers stick to agreed prices.
- Stock alerts & restock monitoring: watch availability of limited drops.
- Dropshipping & arbitrage: compare supplier prices in a single currency.
- Market research & datasets: build product catalogues with brand, SKU and variants.
FAQ
Which shops are supported?
Any shop whose product pages include schema.org Product JSON-LD, Open Graph product tags or microdata. Most modern platforms do. There is no site-specific code.
Why did I get "No product data found"? The URL may be a category page, the shop may inject product data with JavaScript only, or it may be showing a bot-check page. Try a residential proxy, or confirm the data appears in the page source.
Can it log in to see member prices? No. It reads publicly visible pages only.
How are currencies converted?
With daily reference rates from Frankfurter (ECB) or open.er-api.com. Your original price is never modified. If rates are unavailable, priceConverted is null.
How do I monitor changes over time? Schedule the Actor and compare datasets, or push results to a webhook, Google Sheets or your database using Apify integrations.
Is the price tax-inclusive? It's whatever the shop publishes in its markup. Some shops publish ex-tax prices, others include VAT.
MCP — use it from AI agents
Ready for the Model Context Protocol, so Claude, Cursor and other agents can call it as a tool:
https://mcp.apify.com/?tools=fetch-actor-details,invincible_brookbed/ecommerce-price-monitor
Try: "Check the price and stock of these five product pages and convert everything to EUR."
Limitations
- Needs standard structured data; JavaScript-only price widgets are not executed.
- Prices shown only after choosing a variant may reflect the default or lowest offer.
- Shops with strict anti-bot protection may block requests even with proxies.
- Variant details depend on what the shop exposes in its markup; some publish none.