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

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

Pricing

from $2.50 / 1,000 product checkeds

Go to Apify Store
Structured Product Price & Stock Monitor — JSON-LD / Shopify

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

Monitors product price and stock on any store by reading its own JSON-LD / Shopify / WooCommerce data, then emits price-change and restock events with Slack/Discord webhook alerts for repricing and de

Pricing

from $2.50 / 1,000 product checkeds

Rating

5.0

(2)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

17 days ago

Last modified

Share

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

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

EventPrice (USD)
Actor start$0.003
Product checked$0.0025
Change detected$0.015
Restock detected$0.02
Sale started$0.015
Report generated$0.05
No structured data found$0.001

A run that checks 100 products with no changes costs the actor start plus 100 × $0.0025. Events only add cost when something actually changes.

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.