Price Drop & Back in Stock Alert
Any Store Price Monitor
Example request
curl -X POST https://radarbg.com/v1/price-drop-monitor \
-H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"productUrls": ["https://www.allbirds.com/products/mens-tree-runners", "https://www.allbirds.com/products/womens-tree-runners", "https://www.allbirds.com/products/mens-wool-runners", "https://www.allbirds.com/products/mens-canvas-runner-nz", "https://www.allbirds.com/products/womens-canvas-runner-nz", "https://www.allbirds.com/products/mens-cruiser-terry", "https://www.allbirds.com/products/womens-cruiser-slip-on", "https://www.allbirds.com/products/mens-dasher-nz-light-burnt-olive"], "alertOn": ["price_drop", "back_in_stock"], "minDropPercent": 0, "onlyChanges": false}'
Answer: {"ok": true, "count": N, "items": [...], "usage": {...}}. Failed calls are not counted.
Inputs
| Field | Type | Description |
|---|---|---|
productUrls | array | Product pages from any online stores (Shopify, WooCommerce, Magento, BigCommerce and most shops with product data). |
watchlistName | string | Keeps price history per watchlist. Use different names for different product lists. Empty = derived from the URLs. |
alertOn | array | Changes that trigger an alert: price_drop, price_increase, back_in_stock, out_of_stock. |
minDropPercent | integer | Ignore price drops smaller than this percentage. |
discordWebhookUrl | string | Server Settings → Integrations → Webhooks → Copy URL. |
slackWebhookUrl | string | Slack app → Incoming Webhooks. |
telegramBotToken | string | Token from @BotFather (use with chat ID). |
telegramChatId | string | User, group or channel ID for alerts. |
webhookUrl | string | Receives a JSON POST with the changes. |
onlyChanges | boolean | Dataset contains only products whose price or stock changed (cheaper on schedules). |
maxItems | integer | Hard limit on dataset rows (and cost). |
proxyConfiguration | object | Apify Proxy helps with stores that block servers. |
datasetId | string | Optional. Pick a dataset (or paste its ID) to read the input from, for example the result of Google Maps Scraper. When this actor runs as an integration, the dataset of the triggering run is used automatically (payload.resource.defaultDatas |
datasetField | string | Optional. The item field that holds the value, for example website, url or videoUrl (dot paths like author.url work). Empty = detected automatically. |
Price
Included in every plan: 100 calls a month free, then from €9 a month for 3,000 calls across all APIs.