Product Price Tracker - Stock & Variants Monitor avatar

Product Price Tracker - Stock & Variants Monitor

Pricing

from $20.00 / 1,000 products

Go to Apify Store
Product Price Tracker - Stock & Variants Monitor

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 Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

24 days ago

Last modified

Security

Limited permissions

Share

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.hasVariant or multiple offers, capped by maxVariants.
  • 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 shopBrowser-based scraperE-commerce Price Monitor
Time to add a new shopHours of selector workHoursZero — paste the URL
Breaks when the theme changesOftenOftenRarely (uses standard markup)
Run costDeveloper timeHigh (browser compute)Low flat price per product
Variants & stockPer-site logicPer-site logicBuilt in
Multi-currency comparisonDIYDIYBuilt-in targetCurrency
Failed pages chargedn/aCompute spent anywayNo

Input

FieldTypeDefaultDescription
productUrlsarray— (required)Direct product page URLs (not category/search pages).
targetCurrencystringnoneISO 4217 code (e.g. USD, EUR). Adds priceConverted to each record.
maxVariantsinteger20Max variants stored per product (0–200).
proxyConfigurationobjectResidentialOptional 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:

EventPriceWhen 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.