Watch Digest: Price, Stock & Rank Changes
Pricing
from $4.00 / 1,000 digests
Watch Digest: Price, Stock & Rank Changes
One schedule for your whole watchlist: runs CleanPull's store, Amazon, rank, Shopify, reviews, promotions and marketplace watchers and sends one digest of what changed (price, stock, rank, reviews, sales, new entrants) by email, Slack, Discord, Teams or webhook. $5 per 1,000 digests.
Pricing
from $4.00 / 1,000 digests
Rating
0.0
(0)
Developer
CleanPull
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Features
Share
This price change digest puts your whole watchlist on one schedule. Give the watch digest product pages from any online store, Amazon products, Amazon keywords for your own products, whole Shopify stores, products whose reviews you follow, stores whose promotions and launches you follow, marketplace searches (Amazon, eBay, Etsy, Walmart, Target, Best Buy), advertisers whose ads you follow (Google, Meta, TikTok), TikTok Shop keywords (units sold per day), Amazon Best Sellers charts and Google Trends terms for your niches; it runs CleanPull's watchers for each and sends one digest of what changed (price, stock, sale, Buy Box, sellers, rank, new and removed products, new reviews and rating moves, sales and codes that start or end, new entrants and price-band moves, ads that start or stop, TikTok Shop sales per day, chart entries and climbers, new rising searches and interest moves) by email (through your own Resend, Postmark, SendGrid or SMTP account), Slack, Discord, Microsoft Teams or any webhook. Run it on a schedule or through the API.
How to get a price change digest
- Open Watch Digest on Apify and go to its input form.
- Give it a Digest title and a Watchlist name, then add what to watch: Products on any online store, Amazon products, Amazon keywords with Rank: your ASINs, Whole Shopify stores, Reviews: product pages, Promotions: stores, Marketplace keywords, Ads: advertisers, TikTok Shop keywords, Amazon chart categories or Google Trends terms.
- Choose where it goes: Email to with Email from, Email provider and Email API key (or the SMTP fields), Slack webhook, Discord webhook, Microsoft Teams webhook or Other webhook. Set Smallest price change (%) to ignore small moves, and Max cost per run (USD) for scheduled runs.
- Start the run. The first run reads everything once and says how many items are now watched. Open the Changes view to read each Watcher, Change type, Change, Item, Keyword and Detail, and the Digest view for the Subject, Delivery and Watchers that need a look.
- Save it as a task and schedule it daily (weekly for a niche's opportunities). From the second run, each run sends one digest of what changed.
What the watch digest gives you
- "Every morning, tell me what my competitors changed." Add their product pages and stores, schedule it daily, and get one email or Slack message with every price move, sale and stock change across all of them.
- "Watch my Amazon listings and where they rank." Your ASINs for Buy Box, price, sellers and Best Sellers Rank; your keywords for organic and sponsored place, with milestones (entered the top 10, reached page 1).
- "Tell me when reviews turn, a competitor starts a sale, or someone new enters my search." Product pages for new reviews, rating moves and the top complaint themes; competitor stores for codes, free-shipping offers and launches; keywords for new listings in the top results and moves in the price band.
- "How fast is it selling, and what is climbing?" TikTok Shop keywords for each top product's units per day speeding up or slowing down (from the third run), products new to the keyword and price moves; Amazon Best Sellers or New Releases categories for new entries, climbers and, if you want, brands entering.
- "Every week, what is taking off in my niches?" Google Trends terms, Amazon chart categories and TikTok Shop keywords in one watchlist give one Opportunities this week section at the top of the digest: new rising searches and breakouts first, then new entries on the charts, then products selling faster on TikTok Shop.
- "Only bother me when something happened." A quiet run sends nothing (unless you turn on Send when nothing changed).
- "Only tell me about the bad reviews, the real price cuts and the big rank moments." Alert settings narrow what your email or chat gets: reviews under N stars, price drops of at least N% in store products and Shopify stores, rank milestones only. Every change is still in the run's dataset.
- "Several watchlists, one account." Each Watchlist name keeps its own history, so a client's or a brand's digest never mixes with another.
Watch digest workflow
- Each watcher you gave items to runs once, all at the same time, in Changes only mode, under this watchlist's name: Any Store Product Monitor for product pages, Amazon Product Scraper for ASINs, Amazon Keyword Rank Tracker for keywords, Shopify Store Scraper for stores, Reviews Monitor for reviews, Promotions Monitor for promotions and launches, Marketplace Search Scanner for marketplace searches, Ad Library Monitor for ads, TikTok Shop Sales Tracker for TikTok Shop keywords, Amazon Best Sellers Tracker for Amazon charts, and Google Trends Scraper for Google Trends terms.
- Their changes are put in one shape (what changed and its change type, the item, what it was and is now, the link) and grouped by watcher into a digest. Signs of a product on the rise (rising searches, chart new entries, TikTok Shop products speeding up) come first, under Opportunities this week; the changes listed are split in half between the opportunities (they get the odd place) and the other watchers' changes, and a side with fewer changes than its half leaves its places to the other, so price drops and stock moves are never pushed out; the opportunity places go in turn to rising searches, chart entries and TikTok, so each group with changes is shown.
- Alerts Sender delivers it to every channel you filled in: a short summary (changes per watcher, and anything not checked) with the changes as a table.
The first run reads everything once and says how many items are now watched; changes appear from the second run. A Shopify store (or a store whose promotions you follow) added to a watchlist later is read the same way on its first run, without the other stores' changes being lost.
Watch digest reliability
- As fast as the slowest watcher. The watchers run side by side, so a digest takes about as long as its slowest watcher, not the sum of all of them.
- Your spending limit covers the whole digest. Each watcher gets a share of the limit you set for the run (after this run's own events) in proportion to what it is expected to cost at its own prices, what each one charges is counted, and Alerts Sender gets what is left. A watcher stopped at its share or its time limit still reports what it read, with a note. A scheduled run often has no spending limit of its own: set Max cost per run (USD), and the digest holds itself to that the same way. Reviews Monitor, Promotions Monitor and Marketplace Search Scanner also get their share as their own Max cost per run, so they stop cleanly before an item they could not finish. Each of them first gets enough to start one item; if the limit cannot cover that, it is not started, and the digest says how much Max cost per run would fit them all. Their items are taken in a different order each run, so one held to its share does not leave the same items out every time.
- Safe to restart. If Apify moves the run to another server, or you resurrect it, it picks up where it was: it waits on the watchers it already started, and never stores, sends or bills the digest twice. If you abort the digest, the watchers and the delivery it started are aborted too.
- One watcher failing never stops the digest. It goes out with the others' changes and a "Not checked this time" section that says why.
- A watcher that broke is never silent. A watcher whose run failed, was stopped, ran out of time, could not be read or did not run gets one plain line under Watchers that need a look, with its reason, such as "Store products (walmart.com): the last run failed at 08:02 UTC; no new data since 13 Oct 08:00 UTC. Reason: store blocked." It is listed there once. These lines are sent even when nothing else changed, and also when every watcher failed or none ran, and they are in the
watcherIssuesfield of the digest row,DIGESTandRUN_SUMMARY. The digest charges nothing for a message that carries only these lines; when a channel is set, Alerts Sender charges its usual price per message delivered (see Pricing below). - Easy to listen to. Changes read as words, "was USD 24.99, now USD 19.99", "was in stock, now out of stock", "4.5 stars", never arrows, star signs or field names, so a screen reader reads the digest as a sentence.
- Delivery you can check. The digest row says whether it was sent, partly sent or failed, with each channel's reason from Alerts Sender (a wrong key, a webhook that answered 404).
- Email settings checked first. A missing sender, key or SMTP login stops the run before any watcher spends anything.
- Safe to forward. Product names and values come from other sites, so the characters that make links, bold text or mentions are softened before the digest is rendered: a product named
[click](…)cannot become a disguised link. - Everything is kept. Every change is a row in the run's dataset; the digest is saved as
DIGEST.mdandDIGEST(JSON) in the run's key-value store. Up to 20,000 rows are read from each watcher; past that, the digest says so. - Runs light. The digest runs at 128 MB with a 2-hour timeout; each watcher runs at its own default memory, with a timeout that leaves the digest time to read and deliver.
Watch digest input
| Field | Key | What it does |
|---|---|---|
| Digest title, Watchlist name | title, monitorName | The digest's name (in the subject) and the watchlist name runs compare under |
| Products on any online store | productUrls | Product pages on any store (Shopify, WooCommerce, Magento, Wix…) |
| Amazon products, Amazon marketplace (products) | amazonAsins, amazonMarketplace | Amazon products (ASINs or URLs) and their marketplace |
| Amazon keywords, Rank: your ASINs, Amazon marketplace (ranks) | rankKeywords, rankAsins, rankMarketplace | Keywords, the ASINs whose place is tracked for each, and the marketplace |
| Rank: sponsored places | rankSponsored | On by default: also the ad (sponsored) place. Off: organic rank only, cheaper (the ads are read through residential addresses, most of a search page's cost) |
| Whole Shopify stores, Products per store | shopifyStores, maxProductsPerStore | Whole Shopify stores (brand.com), and how many products to watch in each (1,000 by default) |
| Shopify: stock and sales per day | shopifyIncludeStock | Off by default. Optional, paid: stock per variant and, from the second run, units sold and sales per day where the store publishes stock (an add-on per product read; see Pricing below) |
| Reviews: product pages, Reviews: Amazon ASINs, Reviews: Trustpilot businesses, Amazon marketplace (reviews) | reviewProductUrls, reviewAsins, reviewTrustpilotDomains, reviewMarketplace | Products whose reviews are watched: pages on shops using Judge.me, Yotpo, Okendo, Loox or Stamped, ASINs with their marketplace, and Trustpilot businesses (domains or review pages); at most 1,000 |
| Promotions: stores | promotionStores | Stores (any platform) whose sales, codes, free-shipping offers and launches are watched (at most 200) |
| Marketplace keywords, Marketplaces to search, Amazon marketplaces (keywords) | marketKeywords, marketSources, marketAmazonMarketplaces | Marketplace searches: keywords, where (Amazon, eBay, Etsy, Walmart, Target, Best Buy) and which Amazon countries (at most 300 keyword × marketplace searches) |
| Ads: advertisers, Ads: keywords, Ads: Google advertiser ids, Ads: Meta page ids | adAdvertisers, adKeywords, adGoogleAdvertiserIds, adMetaPageIds | Ads to watch: brands or domains, words in the ads (Meta, TikTok), Google advertiser ids and Meta page ids (at most 200 watch items) |
| Ad platforms, Ad countries | adPlatforms, adCountries | Where (Google, Meta, TikTok) and in which countries (at most 5) |
| TikTok Shop keywords, TikTok products per keyword | tiktokKeywords, tiktokMaxProductsPerKeyword | TikTok Shop US keywords (at most 100) and the top products watched in each (default 20) |
| Amazon chart categories, Amazon charts, Amazon chart marketplaces, Ranks per chart | chartCategories, chartTypes, chartMarketplaces, chartMaxItemsPerChart | Amazon chart categories (slugs, names or department/node), which charts (Best Sellers and New Releases by default), which Amazon countries (US by default) and ranks per chart (default 100); at most 200 charts |
| Smallest climb, Brands: product pages per chart | chartMinRankChange, chartProductDetailsTopN | The smallest climb reported (default 10 places); optional, paid: product pages for the top N per chart, so brands entering can be named (0, off, by default) |
| Google Trends terms, Google Trends location, Google Trends period, Smallest interest move (%) | trendsTerms, trendsGeo, trendsTimeRange, trendsMinInterestChangePercent | Google Trends terms for your niches (at most 100), the location (the form prefills US; clear it or write worldwide for worldwide, which is also what an API input without it gets), the period (past 90 days by default) and the smallest interest move reported (50% by default: the term's latest quarter of the period against its earliest, once per crossing; after a crossing the term must come back 10 points inside the threshold before it can cross again) |
| Smallest price change (%) | minPriceChangePercent | Ignore smaller price moves, in every watcher (for marketplace price bands, 10% when this is 0) |
| Max cost per run (USD) | maxRunCostUsd | Optional. The most one digest may cost in all (its events, the watchers and the delivery). For scheduled runs, which may have no spending limit of their own |
| Send when nothing changed, Changes shown | sendWhenNoChanges, maxChangesShown | Send a "no changes" digest too (off by default); how many changes the message lists (50 by default; all are in the dataset) |
| Alert: reviews under (stars), Alert: store price drops of at least (%), Alert: rank milestones only | alertBelowRating, alertPriceDropPercent, alertRankMilestonesOnly | Optional alert settings, off by default: the channels get only new reviews under N stars (and ratings that fell under it), price drops of at least N% (store products and Shopify stores), and Amazon rank milestones; the rest stays in the dataset and DIGEST.md |
| Report only these change types | changeTypes | Optional. Report only these change types (in the dataset, DIGEST.md and the channels), for example ["buy-box"] so an hourly watch of your own ASINs says something only when the Buy Box changes hands or is suppressed. Empty (the default): every change. Watcher problems are always reported. The types are listed in the input form |
| Email to, Email CC, Email BCC, Send separately | emailTo, emailCc, emailBcc, emailSeparately | Recipients (at most 50); each "to" recipient gets their own email unless you add CCs or turn Send separately off |
| Email from, Reply to, Email provider, Email API key | emailFrom, emailReplyTo, emailProvider, emailApiKey | A sender on your own domain, where replies go, and your Resend, Postmark or SendGrid key (or SMTP server as the provider) |
| SMTP host, SMTP port, SMTP secure (port 465), SMTP user, SMTP password | smtpHost, smtpPort, smtpSecure, smtpUser, smtpPassword | Or any SMTP server with a login, over TLS |
| Slack webhook, Discord webhook, Microsoft Teams webhook, Other webhook | slackWebhookUrl, discordWebhookUrl, teamsWebhookUrl, webhookUrl | Chat webhooks and any other endpoint |
| History store | stateStoreName | Optional. A key-value store in your account where the digest keeps what it saw in earlier runs. Empty: its own store. Pick one when you run it with a scoped API token |
With no channel, the digest is stored in the run but not sent.
Example inputs
Competitors' products and your Amazon ranks, to Slack every morning:
{"title": "Morning watch","monitorName": "competitors","productUrls": ["https://www.allbirds.com/products/mens-tree-runners"],"rankKeywords": ["wool sneakers"],"rankAsins": ["B0XXXXXXXX"],"minPriceChangePercent": 2,"slackWebhookUrl": "https://hooks.slack.com/services/…"}
Your niches' opportunities, to email every Monday (schedule it weekly):
{"title": "Kitchen opportunities","monitorName": "kitchen","trendsTerms": ["air fryer liners", "mushroom coffee"],"chartCategories": ["kitchen"],"chartTypes": ["new-releases", "movers-and-shakers"],"tiktokKeywords": ["air fryer"],"maxRunCostUsd": 0.5,"emailTo": ["you@example.com"],"emailFrom": "digest@your-domain.com","emailApiKey": "re_…"}
Watch digest output
One row per change, in the Changes view, and one digest row, in the Digest view, with the subject, the counts, each watcher's run and outcome, the delivery status, the markdown, and watcherIssues.
Example rows
Illustrative rows for the first example input above, on a run after the baseline. A price change on the store product:
{"recordType": "change","source": "stores","changeType": "price","what": "Price","title": "Men's Tree Runners","keyword": null,"from": 110,"to": 98,"detail": "was USD 110, now USD 98 (-10.9%)","url": "https://www.allbirds.com/products/mens-tree-runners","at": "2026-10-14T08:00:00.000Z"}
A rank move for your ASIN on the keyword:
{"recordType": "change","source": "ranks","changeType": "organic-rank","what": "Organic rank","title": "B0XXXXXXXX","keyword": "wool sneakers","from": 14,"to": 9,"detail": "was 14, now 9 (up 5)","url": "https://www.amazon.com/dp/B0XXXXXXXX","at": "2026-10-14T08:00:00.000Z"}
The run's digest row:
{"recordType": "digest","subject": "Morning watch: 2 changes","changes": 2,"baselineItems": 0,"watchedItems": 2,"delivery": "sent","deliveryReason": null,"watcherIssues": [],"at": "2026-10-14T08:03:00.000Z"}
delivery is sent, partial, failed, skipped (nothing to send, with Send when nothing changed off), not-asked (no channel set) or unknown; deliveryReason says why when it is not sent.
Watcher lines
watcherIssues has one entry per watcher that failed or did not run this time (empty when all ran):
{"watcher": "stores","label": "Store products (walmart.com)","status": "FAILED","runId": "a1b2c3","finishedAt": "2026-10-14T08:02:00.000Z","newData": "none","lastDataAt": "2026-10-13T08:00:00.000Z","reason": "FAILED: store blocked","line": "Store products (walmart.com): the last run failed at 08:02 UTC; no new data since 13 Oct 08:00 UTC. Reason: store blocked."}
status is FAILED, ABORTED or TIMED-OUT (the watcher's run), NOT-RUN (not started this time: the spending limit, the time left, or it could not be started) or UNREADABLE (its rows could not be read); newData is none or partial; lastDataAt is when a digest that went out last had data from it (a run that ran out of time or was stopped counts only when it brought rows; null when not known). A run where every watcher failed or none ran still writes a digest row (with changes: 0 and its watcherIssues), so the lines are always in one place; the row itself is free.
Rows and billing
| Row | Billed |
|---|---|
change | Not per row: the run pays one digest and the items watched |
digest | One digest per run in which any watcher was not failed, skipped or unreadable (also one that succeeded with no rows), whether or not anything changed or was sent; free when every watcher failed, was skipped or was unreadable |
unreadable (a watcher, with why) | Free |
Pricing
| Event | Free and Bronze | Silver | Gold and above |
|---|---|---|---|
| Digest | $5.00 per 1,000 | $4.50 per 1,000 | $4.00 per 1,000 |
| Item watched | $0.25 per 1,000 | $0.22 per 1,000 | $0.20 per 1,000 |
An item is something a watcher actually checked (a watcher stopped early is billed only for what it read):
| Watcher | One item |
|---|---|
| Any Store Product Monitor | a product page |
| Amazon Product Scraper | an ASIN |
| Amazon Keyword Rank Tracker | a keyword × ASIN pair |
| Shopify Store Scraper | up to 250 products of a store |
| Reviews Monitor | a product (page or ASIN) or a Trustpilot business whose reviews were read |
| Promotions Monitor | a store whose promotions and launches were checked |
| Marketplace Search Scanner | a search: one keyword on one marketplace |
| Ad Library Monitor | a watch item on one platform, per 100 ads read |
| TikTok Shop Sales Tracker | a keyword read (none when the run stopped at its share) |
| Amazon Best Sellers Tracker | a chart read: one category × chart × marketplace |
| Google Trends Scraper | a term read in its location |
Each run also has a $0.00005 start fee.
Watchers' own prices
The watchers charge their own events in their own runs (for example, on the Free and Bronze plans, $1.50 per 1,000 store products, $3 per 1,000 Amazon products, $3 per 1,000 review summaries with $0.50 per 1,000 reviews (and on Trustpilot $3 per 1,000 records and per read on Bronze, $6 on Free), $2 per 1,000 promotions or launches, $3 per 1,000 keyword summaries (and on eBay, Etsy, Walmart, Target and Best Buy $3 per 1,000 records and $0.015 per marketplace searched on Bronze, $6 and $0.03 on Free), and less for an item checked with no change), and Alerts Sender charges $1 per 1,000 messages delivered on the Free and Bronze plans ($0.90 on Silver, $0.80 on Gold); all of it counts against this run's spending limit. Shopify: stock and sales per day adds Shopify Store Scraper's $0.50 per 1,000 products read (Free and Bronze).
TikTok Shop Sales Tracker charges $2 per 1,000 products delivered on Bronze ($3 on the Free plan; $0.50 per 1,000 unchanged on both), so a keyword's first run is its top products in full (20 by default, $0.04 on Bronze, $0.06 on Free) and later runs the ones that sold or changed; Amazon Best Sellers Tracker charges, on the Free and Bronze plans, $1.50 per 1,000 ranks on a chart's first run ($0.15 for 100), then $2 per 1,000 moves and $0.10 per 1,000 unchanged (about $0.03 a chart a day), plus $0.002 a chart summary and, if asked, $0.004 a product page. Google Trends Scraper charges $1.00 per 1,000 terms on the Free and Bronze plans (every term is read each run: a weekly digest of 20 terms is $0.02 a run in its events and $0.005 in item events). These three are weighed by their first run and get their share as their spending limit; they take no Max cost per run of their own and stop cleanly at it, keeping what they did not deliver for the next run (a Google Trends term not read is compared on the next run; its terms are taken in a different order each run).
Spending limit shares
Each watcher's share of the limit follows what it is expected to cost at its own prices: a product or ASIN is one of its main events (an ASIN outside the US two, with its $0.003 local-market event; a Walmart, Target, Best Buy, eBay or Etsy product three, with its record, and $0.015 per such marketplace), an Amazon keyword about 4 search pages, a Shopify item 250 products, and for the newer watchers their first run, the dearest: a reviews product what Reviews Monitor needs free before it starts one ($0.037: a summary, 20 reviews and its worst case of residential requests; a Trustpilot business $0.0235: a summary, 5 reviews with their records and the read), a promotions store a page check and about 12 rows, a marketplace search what Marketplace Search Scanner needs free before it starts one ($0.0495 on Amazon; $0.166 on eBay, Etsy, Walmart, Target and Best Buy: 48 records, the search fee, the summary and the change rows), and an ad watch item a full first run: its check and 100 ad rows ($0.151) plus the most library requests Ad Library Monitor may need for it at $3.50 per 1,000 (5 per country on Meta, 10 on TikTok, and up to 6 on Google, which uses the service only when Google declines a run). Once an ad watch item has been read whole (it is in the digest's memory), it counts at its steady state instead: its check, room for 20 new or stopped ads and 2 library requests ($0.038; never less than what Ad Library Monitor holds before it reads the item), so a watchlist past its first run needs a much smaller Max cost per run.
These shares are worked out at Bronze prices. On the Free plan, data-service records and searches and ad library requests cost twice as much, so a Free-plan digest with Trustpilot, eBay, Etsy, Walmart, Target, Best Buy or ad watchers needs about twice the Max cost per run. These amounts, plus each run's start fee and 5%, are caps on each watcher, not what it spends: a product checked with no change costs Reviews Monitor $0.0005.
Setting Max cost per run
About 1.5× a typical run, plus room for each newer watcher's least share: for ads $0.18 per watchlist on the first run (the baseline) and about $0.05 after it; for reviews $0.04 and for a marketplace search $0.05 on Amazon or $0.17 elsewhere on every run (those watchers hold that much before each item, whatever their history). A daily digest of 20 review products, 10 stores and 10 searches is 40 items a day: about $0.30 a month of item events plus $0.15 of digests on the Free and Bronze plans, and the watchers' own events.
A run where no watcher could run charges no digest or item events; if its watcher lines are sent to a channel, Alerts Sender charges $1 per 1,000 messages delivered on the Free and Bronze plans ($0.90 on Silver, $0.80 on Gold).
Limits
- Email needs your own provider account and a sender on a domain it lets you send from.
- Rank keywords need your ASINs (Rank: your ASINs); keywords alone are skipped with a warning. At most 300 keywords in one digest.
- Promotions: Amazon, Walmart and Target are not read. Reviews: Trustpilot businesses by domain or review page; a watchlist keeps the newest 5 reviews per business.
- Ads: a watch item's first run is its baseline: every active ad, up to 100. Meta and TikTok need no credentials of your own (Ad Library Monitor reads them through an ad library service, billed per request).
- The watchers' own limits apply, for example Amazon search pages for a ZIP code need sign-in and are not read. See each watcher's page.
- TikTok Shop is US only. A product's first units per day (its second run) is the baseline; speed-ups and slow-downs are reported from the third run. Amazon charts: brands entering need product pages (Brands: product pages per chart); without them, new entries and climbers are reported.
- Google Trends values are relative (0-100 within the period), so an interest move is the term's own latest quarter against its earliest, not search counts. A term's interest and its related searches each have their baseline the first time they come (nothing reported for them that run); related searches set their baseline only once Google returns some (an empty list, usual for low-volume terms, or none returned at all, leaves the term watched on its interest only, and the digest says which); a term with no usable interest and no related-searches baseline yet is noted as not checked. A term rising from no measurable interest at the start of the period is reported as rising, and again only after 2 runs in a row without that rise (the same for a fall). A term's memory is updated only once the digest reached every channel (a failed or partial delivery brings the same changes again next run, to every channel). A term is billed as an item watched only when it was compared or baselined, and only on a run whose digest reached every channel (otherwise it is compared and billed again on the run that delivers, and the digest's notes say so). Give terms one per line: a term may contain commas.
- One history per watchlist name. Items added to a watchlist show as newly watched on their first run, and changes from the next.
- Nothing watched: when no watcher ran usably because each was not started (your spending limit, or too little of the run's time left), found none of its items, or (promotions) was turned away by a bot check at every store, the run still succeeds, with a free
recordType: "unreadable"row per watcher giving thereason, and a freedigestrow with the watcher lines; the digest charges nothing. When no watcher ran usably and at least one of them failed, broke or could not be started, the run fails, also when the others were only skipped or found nothing; its watcher lines are still sent to your channels and saved inDIGEST.mdand thedigestrow, with nothing charged for the digest. In both cases, when a channel is set, Alerts Sender charges $1 per 1,000 messages delivered on the Free and Bronze plans ($0.90 on Silver, $0.80 on Gold) for the lines it sends. When at least one watcher ran and was not failed, skipped or unreadable (it succeeded, even with no rows, or stopped at its time or spending limit), the run succeeds and the digest is billed, with the others' problems in its notes.
FAQ
How much does a price change digest cost per day?
Two parts. The digest itself costs $0.005 per run plus $0.00025 per item watched on the Free and Bronze plans: a daily digest of 20 competitor product pages is $0.01 a day of digest events (about $0.30 a month). Then the watchers charge their own events: Any Store Product Monitor, in Changes only mode, charges $0.0005 for each unchanged page and $0.0015 instead for each page that changed: 20 pages are $0.01 on a day with no change, and $0.015 on a day when 5 changed; its first run, the baseline, delivers all 20 at $0.0015 each ($0.03). Each message Alerts Sender delivers adds $0.001 on the Free and Bronze plans (one per email recipient sent separately, or per chat or webhook post). A quiet day (a watcher ran, nothing changed) still pays the digest and the items, but sends nothing unless Send when nothing changed is on. Each run of the digest, each watcher and Alerts Sender also has the $0.00005 start fee, and higher Apify plans pay less (see Pricing above).
How often should I run the watch digest?
Daily suits competitor prices, stock and Amazon ranks; weekly suits a niche's opportunities (Google Trends terms, Amazon charts, TikTok Shop keywords), with Google Trends period at past 90 days. The first run is the baseline for every item; changes come from the second run (TikTok Shop speed-ups from the third). An hourly watch of your own ASINs works best with Report only these change types set to the Buy Box, so the digest says something only when it matters. Keep the same Watchlist name between runs: a new name starts a new history.
What is the difference between the Changes view and the digest message?
The Changes view holds every change of the run, one row each. The message sent to your channels lists at most Changes shown (50 by default), opportunities first, and with the alert settings on (Alert: reviews under (stars), Alert: store price drops of at least (%), Alert: rank milestones only) only the changes they let through, with a line saying how many more are in the dataset. Report only these change types is different: it leaves the other types out of the dataset, DIGEST.md and the channels alike.
Why is a change missing, or a watcher not checked?
- First run: each item's first run is its baseline (
baselineItems, Newly watched); changes appear from the next run. - Too small: price moves under Smallest price change (%) and chart climbs under Smallest climb are left out; interest moves under Smallest interest move (%) too.
- Filtered: Report only these change types leaves other types out; the alert settings keep them out of the message only.
- Message cap: past Changes shown, changes are in the dataset but not the message.
- Watcher problem: a watcher that failed, timed out or did not run has a line in
watcherIssues(Watchers that need a look) with itsstatusandreason. - Spending limit: a watcher stopped at its share reports what it read, with a note; one whose share cannot start a single item is
NOT-RUN. - TikTok Shop and Google Trends: units per day need a third run; a term's related searches need Google to return some first.
Which stores, marketplaces and channels does it support?
Product pages on any online store (Shopify, WooCommerce, Magento, Wix and more); Amazon products, keyword ranks, reviews and charts in the marketplace you name (US, GB, DE, FR, JP…); whole Shopify stores; reviews from Judge.me, Yotpo, Okendo, Loox, Stamped, Amazon and Trustpilot; promotions on any store platform except Amazon, Walmart and Target; marketplace searches on Amazon, eBay (US), Etsy, Walmart (US), Target (US) and Best Buy (US); ads on the Google Ads Transparency Center, Meta Ad Library and TikTok Ad Library; TikTok Shop US; Google Trends in any location. It delivers by email (Resend, Postmark, SendGrid or SMTP), Slack, Discord, Microsoft Teams and any webhook.
Can I use the watch digest through the API?
Yes. Start runs through the Apify API or an API client with the same input as the form, and read the dataset through its Changes and Digest views. The run's key-value store has DIGEST.md (the digest as markdown), DIGEST (JSON: subject, changes, watchers, watcherIssues) and RUN_SUMMARY with the outcome, each watcher's run, the delivery and the charges. Other webhook posts the subject, text, markdown and items as JSON to any https endpoint.
Does it work with Google Sheets, Make, Zapier or Claude?
Yes. Other webhook sends each digest to Zapier, Make, n8n or your own endpoint, and Apify's integrations send the run's change rows to Google Sheets and other tools (Google Sheets Sync keeps one sheet updated by key). From Claude, the MarketMage plugin sets up a daily or weekly watchlist of competitor prices, stock, Amazon ranks and reviews in a chat, and its briefing reads the digests.
Is it allowed to watch competitors' prices?
The watchers read public pages, ad libraries and charts as a signed-out visitor sees them: no login, no account and no customer data. Review rows keep the review's rating, title, text, date and id, without reviewer names; Trustpilot reviews and Walmart, Target, Best Buy, eBay and Etsy pages come through a third-party web data provider. How you use the data, and following the laws and terms that apply to you, is your responsibility. This is not legal advice.
Related actors
Other CleanPull actors for monitoring:
- Alerts Sender: send results to email, Slack, Discord, Teams or a webhook.
- Price Tracker & Stock Monitor for Any Online Store: price and stock changes on product pages of any online store.
- Amazon Keyword Rank Tracker: where your products rank on Amazon search for your keywords.
- Reviews Monitor: new reviews and rating moves on Shopify review apps, Amazon and Trustpilot.
Use it from Claude
The MarketMage plugin runs these actors from a Claude chat.
Found it useful? A rating on the Store helps others find it.
Changelog
-
0.1.x, plain notes (2026-11-08): when the promotions watcher could not read a store's promotions this time (a bot check), the digest says so in one plain line; watcher messages never show a web address's query string or a challenge token. Prices unchanged.
-
0.1.x, watcher lines (2026-11-04): a watcher that failed, was stopped, ran out of time, could not be read or did not run gets a plain line (
watcherIssues), sent even when nothing else changed;changeTypesreports only the change types you choose (each change row has itschangeType); change details read as words ("was USD 24.99, now USD 19.99") instead of arrows, star signs and field names. No new paid event; prices unchanged; existing inputs work as before. -
0.1.x, reliability (2026-10-24): watchers not started for the spending limit or the time left end the run SUCCEEDED with a row each saying why, instead of FAILED; input that cannot work is explained in a free row. Prices unchanged.
-
0.1.x (2026-10-23): Google Trends terms (
trendsTerms,trendsGeo,trendsTimeRange,trendsMinInterestChangePercent, read by Google Trends Scraper): new rising related searches and breakouts since the last run, and interest moves past a threshold. Rising searches, chart new entries and TikTok Shop products speeding up open the digest under Opportunities this week. Billed as items watched, like the other watchers. Existing inputs work unchanged. -
0.1.x (2026-10-16):
rankSponsored(off: organic-only rank watch, cheaper) andshopifyIncludeStock(stock and sales per day for Shopify stores, $0.50 per 1,000 products more). Defaults keep existing digests as they were. -
0.1.x (2026-10-16): alert settings (
alertBelowRating,alertPriceDropPercent,alertRankMilestonesOnly): the digest sent to your channels carries only the changes you asked for, with a line saying how many more are in the dataset. Off by default; existing inputs work unchanged. -
0.1.x (2026-10-16): two new watchers: TikTok Shop keywords (TikTok Shop Sales Tracker: units per day, products new to a keyword, price moves) and Amazon charts (Amazon Best Sellers Tracker: new entries, re-entries, climbers, and brands entering with product pages on). Existing inputs work unchanged.
-
0.1.x (2026-10-16): an ad watch item already read whole is given its steady-state share (its check, 20 ad rows and 2 library requests, at least what Ad Library Monitor holds), not a full first run, so watchlists past their baseline run under a smaller Max cost per run; new items keep the full first-run share. Amazon ASINs outside the US weigh in their local-market event. Existing inputs work unchanged.
-
0.1.x (2026-10-15): marketplace searches on Walmart, Target and Best Buy, and eBay and Etsy without your own keys (Marketplace Search Scanner 0.2); Trustpilot businesses for reviews (Reviews Monitor 0.2); shares follow those watchers' live prices. Inputs that still carry the old eBay and Etsy key fields work unchanged (those fields are ignored).
-
0.1.x (2026-10-15): ads on Meta and TikTok without your own credentials (Ad Library Monitor 0.2); shares count its library requests. Inputs that still carry the old Meta and TikTok credential fields work unchanged (those fields are ignored).
-
0.1.x (2026-10-15): ads watcher (Ad Library Monitor): ads that start or stop on Google, Meta and TikTok, billed per watch item read, with Meta and TikTok credentials passed through as secrets.
-
0.1.x (2026-10-14): three new watchers: reviews (Reviews Monitor), promotions and launches (Promotions Monitor) and marketplace searches (Marketplace Search Scanner), each billed per item checked and given its share as its own Max cost per run (at least enough to start one item). Links in the table sent to Alerts Sender are http(s) only. Existing inputs work unchanged.
-
0.1.x (2026-10-14): stopped-early notes count the items actually missed (none when all were checked) and show small shares to 4 decimals.
-
0.1.x (2026-10-14): Max cost per run (
maxRunCostUsd): the whole digest (watchers and delivery included) stays within it, for scheduled runs without a spending limit. -
0.1 (October 2026): store products, Amazon products, Amazon keyword ranks and Shopify stores in one digest; email, Slack, Discord, Teams and webhook delivery through Alerts Sender; spending limit shared across watchers.