Request a tool
All toolsGuidesMCP serverRequest a toolPlatformsCategories
Structured Product Price & Stock Monitor — JSON-LD / Shopify icon

Structured Product Price & Stock Monitor — JSON-LD / Shopify

Track product price and stock from a store's own JSON-LD/Shopify data. Get price-drop and restock events plus Slack/Discord alerts. No API key.

5 from 2 reviews on Apify 80 runs on Apify $0.0025 per product checked ($2.5 / 1,000)
Run this in the cloudRun on Apify →

E-commerce & Price Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust products, onlyNewSinceLastRun, trackPrice (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.0025 per product checked = $2.5 per 1,000

You are charged forWhenPrice
Product checkedA product was checked$0.0025
Report generatedA report was generated$0.05
Restock detectedA restock was detected$0.02
Change detectedA price change was detected$0.015
Sale startedA sale got detected$0.015
No structured dataNo structured data detected$0.001
Actor StartCharged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).$0.003

Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-06-09, and they are what you are actually charged.

Inputs

FieldWhat it doesType
productsThe product URLs to track. Each item is an object: { "url": "https://store.com/products/x", "label": "optional human name" }. `url` is required; `label` is optional and used in output and alerts. Best results on pages that expose structured product data (most Shopify / WooCommerce / schema.org Product stores). Marketplaces with heavy anti-bot protection (Amazon, Walmart, eBay, SHEIN) are intentionally NOT targeted — see the README.array
onlyNewSinceLastRunWhen ON (recommended for scheduled monitoring), only products that are new or have changed are emitted to the dataset — deltas, not a full re-dump. When OFF, every product's current state is emitted every run.boolean
trackPriceDetect price_change events (old -> new, with % change).boolean
trackStockDetect back_in_stock / out_of_stock events.boolean
trackSalePriceDetect sale_started / sale_ended events (based on compare-at / list price where the source exposes it — best on Shopify & WooCommerce).boolean
trackTitleDetect title_change events (useful for catching relisted / swapped products).boolean
priceDropThresholdPctOnly treat a price DROP as a change when it is at least this percentage. 0 (default) records every price change. Price increases are always recorded regardless. Use e.g. 5 to ignore tiny fluctuations and only act on meaningful drops.integer
notifyOnRestockSend a webhook notification when a product comes back in stock.boolean
notifyOnPriceDropSend a webhook notification when a price drops (respecting the price-drop threshold above).boolean
webhookUrlOptional. Slack, Discord, or generic webhook to receive a compact change summary. Slack (hooks.slack.com) and Discord (discord.com/api/webhooks) formats are auto-detected; any other URL receives the full structured JSON payload (great for Zapier / Make / n8n / custom endpoints).string

What you get

A structured dataset — each result includes fields like:

change_countchangeschecked_atcurrentextraction_methodextraction_statusis_changedis_newlabelsync_statustargeturl

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

4 ready-to-run use cases

Competitor Price Monitoring for Repricing

Competitor storefront prices read straight from JSON-LD, so your repricing matches their exact listed price, sale price and live stock. For ecommerce sellers.

Shopify Sale Price Tracker: Start & End Dates

Know the exact moment a Shopify or WooCommerce product gets a compare-at discount, and when the sale ends, all from the store's own published list price.

Discord Restock Alerts for Limited Drops

Cook groups and hype channels get a Discord ping the second a limited drop restocks. Stock and price read live from the store, no HTML scraping.

Product Price & Stock Feed for AI Agents

Live, accurate price and availability for any product list, read from each store's own published JSON-LD data and structured for AI shopping agents.

Related tools in E-commerce & Price Tools

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

eBay Sold Listings Scraper iconE-commerce & Price Tools

eBay Sold Listings Scraper

Get eBay sold and completed listings with sale price, shipping, sold date and condition. 9 marketplaces, no eBay API key. $0.70 per 1,000 listings.

Ready to run — no setup

1688 Wholesale Scraper iconE-commerce & Price Tools

1688 Wholesale Scraper

Scrape 1688.com wholesale listings: product ID, title, unit price, quantity price tiers, minimum order quantity, supplier company, sales counts.

Ready to run — no setup

Alibaba 1688 Supplier Ratings Scraper iconE-commerce & Price Tools

Alibaba 1688 Supplier Ratings Scraper

Scrape 1688.com supplier ratings: composite score, five sub-scores, repeat-buyer rate, years on platform, factory vs trader, audits, location.

Ready to run — no setup

Alibaba.com Scraper iconE-commerce & Price Tools

Alibaba.com Scraper

Extract Alibaba.com products without an account: price ranges, quantity price tiers, MOQ, supplier name, country, years, verified status, ratings and images.

Ready to run — no setup

AliExpress Products Scraper iconE-commerce & Price Tools

AliExpress Products Scraper

Extract public AliExpress product pages and direct search cards with product IDs, prices, ratings, reviews, orders, stores and images.

Ready to run — no setup

Taobao Category Products Scraper iconE-commerce & Price Tools

Taobao Category Products Scraper

Scrape Taobao products by category. 20 categories, prices in CNY, seller and shop IDs, product URLs. No account, no cookies. $1.95 per 1,000 products.

Ready to run — no setup

See all E-commerce & Price Tools →

Structured Product Price & Stock Monitor (JSON-LD / Shopify)

Track product price and stock by reading each store's own JSON-LD / Shopify / WooCommerce structured data — then get price-drop and restock alerts on Slack or Discord. No API key, no brittle HTML selectors.

What it does

This actor monitors product price and stock availability across online stores. Instead of guessing at the page layout with HTML selectors that break on every redesign, it reads the structured data the store already publishes: JSON-LD Product/Offer markup, Shopify product JSON, and WooCommerce/Schema.org data.

On each run it:

  • Checks every product URL you give it and pulls the current price, sale price, stock status, and title from the page's own structured data.
  • Compares against the previous run and emits discrete events: change-detected (price or stock changed), restock-detected, and sale-started.
  • Sends Slack or Discord webhook alerts when a product comes back in stock or drops in price past a threshold you set (priceDropThresholdPct).
  • Writes a clean, machine-readable price/stock record to the dataset for every product checked.

Because the data comes from the store's own published markup, the price and stock values are the ones the store itself reports — not a number scraped out of arbitrary HTML that shifts when the theme changes.

Honest limitation: this works only on stores that publish structured data (JSON-LD, Shopify, or WooCommerce). Most major ecommerce platforms do, but it is not a universal any-site scraper. If a page has no structured data, the actor records a no-structured-data result for it instead of inventing a price.

Who it's for

  • Ecommerce sellers and dropshippers watching competitor and supplier pages for price and stock moves.
  • Repricing and arbitrage sourcers who need accurate price + availability to make sourcing and repricing decisions.
  • Developers building price-comparison tools or AI shopping agents who want a stable, structured price/stock feed instead of maintaining their own scraper.

Quick start

Run it as a monitor

Paste a list of product URLs, pick what to track, and (optionally) add a webhook. Minimal input:

{
  "products": [
    { "url": "https://example-store.com/products/wireless-headphones" }
  ],
  "trackPrice": true,
  "trackStock": true,
  "notifyOnPriceDrop": true,
  "notifyOnRestock": true,
  "priceDropThresholdPct": 5,
  "webhookUrl": "https://hooks.slack.com/services/XXX/YYY/ZZZ"
}

Run it once to seed a baseline, then schedule it (Apify Schedules) to run on whatever cadence you need. With onlyNewSinceLastRun enabled, each run reports only what changed since the last one.

Connect it to an AI agent (MCP)

The actor is exposed over the Apify MCP server using streamable HTTP, so Claude, Cursor, VS Code, and any MCP-compatible client can call it as a tool.

Endpoint:

https://mcp.apify.com/?actors=dami_studio/structured-product-price-stock-monitor

Authenticate with OAuth (your client opens a browser the first time) or with a Bearer <APIFY_TOKEN> header.

Claude Desktop / Cursor config (claude_desktop_config.json or .cursor/mcp.json):

{
  "mcpServers": {
    "price-stock-monitor": {
      "url": "https://mcp.apify.com/?actors=dami_studio/structured-product-price-stock-monitor",
      "headers": {
        "Authorization": "Bearer <APIFY_TOKEN>"
      }
    }
  }
}

Replace <APIFY_TOKEN> with your Apify API token (Apify Console → Settings → Integrations). Once connected, the agent can ask for the current price and stock of any product URL and get back structured JSON.

Input

  • products — list of products to monitor, each with a product url.
  • trackPrice — track the listed price.
  • trackSalePrice — track the sale/discount price separately.
  • trackStock — track in-stock / out-of-stock availability.
  • trackTitle — track the product title (catches renames and relisting).
  • priceDropThresholdPct — minimum percent drop before a price-drop alert fires (notifyOnPriceDrop).
  • notifyOnPriceDrop — send a webhook alert on a qualifying price drop.
  • notifyOnRestock — send a webhook alert when a product is back in stock.
  • onlyNewSinceLastRun — only report products that changed since the previous run.
  • webhookUrl — Slack or Discord incoming-webhook URL for alerts.
  • proxyConfiguration — Apify proxy settings for the requests.

Output

Every checked product produces one structured record in the dataset, plus an event when something changes. A result looks roughly like:

{
  "url": "https://example-store.com/products/wireless-headphones",
  "title": "Wireless Headphones",
  "price": 79.99,
  "salePrice": 59.99,
  "currency": "USD",
  "inStock": true,
  "availability": "InStock",
  "dataSource": "json-ld",
  "event": "change-detected",
  "previousPrice": 89.99,
  "priceChangePct": -11.11,
  "checkedAt": "2026-06-22T10:00:00Z"
}

Events you may see on a record: change-detected (price or stock moved), restock-detected, sale-started, and no-structured-data (when a page publishes no usable markup). A price drop past your priceDropThresholdPct is a change-detected event with a negative priceChangePct; that threshold and notifyOnPriceDrop control whether you also get a webhook alert for it.

Example use cases

Pricing

$0.0025 per product checked — plus $0.003 per run start, $0.015 per change detected, $0.02 per restock, $0.015 per sale started, $0.05 per report generated and $0.001 when a page exposes no structured data. A 100-product run with no changes costs $0.253.

This actor is pay-per-event. You pay only for what runs:

EventPrice (USD)When it fires
Actor start$0.003Once per run.
Product checked$0.0025Per product URL read.
Change detected$0.015Price or stock moved since the last run.
Restock detected$0.02Out of stock → in stock.
Sale started$0.015A sale price appeared.
Report generated$0.05Once, when a run report is produced.
No structured data found$0.001The page publishes no usable JSON-LD/Shopify/WooCommerce markup.

Flat rates — no volume tiers and no plan gates. The change, restock and sale events only add cost when something actually moves, so a quiet watchlist stays at the per-product rate: 500 products checked daily with nothing changing is $1.253 per run.

Two details that keep idle runs cheap, both enforced in the engine rather than promised:

  • A page with no usable structured data is not billed as a product check. The per-product charge fires only on a successful extraction; pages without markup fall under the separate no-structured-data event above.
  • The report charge only fires on runs that produced a real product change or sent a webhook. Transient extraction flaps and idle scheduled runs never trigger it, and a change is billed once per product rather than once per change record.

FAQ

Does this work on any website? No. It works on stores that publish structured data — JSON-LD Product/Offer markup, Shopify product JSON, or WooCommerce/Schema.org data. Most major ecommerce platforms publish this. Pages without it return a no-structured-data result instead of a fabricated price.

Why read structured data instead of scraping the HTML? The price and stock in a store's structured data are the values the store itself publishes (often the same feed it sends to Google Shopping). Reading them avoids selector-based scraping that breaks whenever the site's theme or HTML changes.

Do I need an API key for the stores I monitor? No. The actor reads each product page's public structured data. You only need an Apify account to run it.

Can I get a Slack or Discord alert when something restocks or drops in price? Yes. Set webhookUrl to a Slack or Discord incoming webhook and enable notifyOnRestock and/or notifyOnPriceDrop. Use priceDropThresholdPct to avoid alerts on tiny changes.

Can an AI agent use this as a price/stock tool? Yes. Connect it through the Apify MCP server at https://mcp.apify.com/?actors=dami_studio/structured-product-price-stock-monitor and call it from Claude, Cursor, or any MCP client to get structured price and stock data back.