Universal Price & Stock Monitor
Pricing
from $2.00 / 1,000 results
Universal Price & Stock Monitor
Monitor public product pages for price and stock changes. Auto-detect JSON-LD and common HTML, retain history, calculate price movements, and send webhook alerts—no site-specific setup required.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Sinan Kuşdoğan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scan public product pages, return structured price and availability data, compare it with earlier runs, and optionally send changes to an HTTPS webhook.
Quick start
Use the prefilled public Books to Scrape URL or provide up to 200 product URLs. Automatic discovery checks Product JSON-LD first and then common HTML price, currency, availability, and product-name patterns. Add priceSelector or stockSelector only for a site that needs an override.
Example input:
{"startUrls": [{"url": "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html"}],"maxConcurrency": 5,"maxRequestsPerMinute": 120,"maxRequestRetries": 3,"requestHandlerTimeoutSecs": 45,"proxyConfiguration": {"useApifyProxy": false}}
Each dataset row includes the URL, product name, raw and numeric price, currency, availability, stock flag, previous price, percentage change, change type, HTTP status, timestamp, and extraction method. The OUTPUT key-value-store record contains the run summary.
Example result:
{"url": "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html","productName": "A Light in the Attic","price": "£51.77","priceValue": 51.77,"currency": "GBP","availability": "In stock (22 available)","inStock": true,"previousPrice": "£51.77","priceChangePercentage": 0,"changeType": "unchanged","extractionMethod": "html-fallback"}
History and change detection
The Actor stores snapshots in the named key-value store configured by stateStoreName. Use the same name on later runs to compare a product with its previous snapshot. historyLimit bounds the number of stored snapshots per product.
The first observation is marked first-seen. Later observations are unchanged, price, availability, or price-and-availability.
For hands-off monitoring, save a task with a stable stateStoreName, then attach an Apify schedule. Every scheduled run compares the new snapshot with the history retained by that named store.
Webhook
Set an HTTPS webhookUrl to receive completed-run JSON when a stored product changes. webhookOnEveryRun also sends unchanged runs. If webhookSecret is present it is sent as a bearer token. Delivery failures are reported in the run summary and do not discard dataset results.
Crawler controls
maxRequestsPerMinuteenforces a global request rate.maxRequestRetriescontrols transient-failure retries.requestHandlerTimeoutSecsbounds per-page handling time.proxyConfigurationsupports Apify or custom proxies.- The Actor only requests the URLs supplied in the input and accepts at most 200 per run.
Respect the target site's terms, robots policy, and applicable law. This Actor is designed for public, non-PII product information and does not bypass authentication.
API example
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_TOKEN&waitForFinish=120" \-H "Content-Type: application/json" \-d '{"startUrls":[{"url":"https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html"}]}'
Read product rows from the run's default dataset and the summary from the default key-value store record named OUTPUT.
Billing behavior
The recommended Store configuration is pay per event with one charge for each successfully written dataset item. Failed URLs are reported in OUTPUT and do not create a billable product result. A small synthetic Actor-start charge can cover the fixed cost of short runs while keeping buyer cost predictable.
Limitations
This MVP fetches server-rendered HTML. JavaScript-only pricing may require a future browser-based crawler. Scheduled monitoring is configured through Apify schedules; direct Telegram, Slack, and email adapters remain roadmap items, while the generic webhook is available now.