Influencer Change Monitor avatar

Influencer Change Monitor

Pricing

from $8.00 / 1,000 creator recheckeds

Go to Apify Store
Influencer Change Monitor

Influencer Change Monitor

Rechecks a saved list of creators and returns one row per change since the last run: follower milestone crossed, newsletter added, new product, new bio link, new manager. Unchanged creators return nothing, so a run's row count is its change count.

Pricing

from $8.00 / 1,000 creator recheckeds

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

📈 What can Influencer Change Monitor do?

A saved creator list in, changes since the last run out. One row per change: a follower milestone crossed (1K, 5K, 10K, 25K, 50K, 100K, 250K, 500K, 1M and up, in either direction), a newsletter added, a new product (a sells flag turned true), a new bio link, a new manager. Unchanged creators return nothing, so a run's row count is its change count. The first run for a list returns one first_seen row per creator, the baseline later runs diff against.

State lives in a named key value store on your account (creator-change-monitor-state, one key per list_name), so a run with the same list_name and handles next week compares against this week.

📦 What you get⚙️ Features and integrations
🔔 One row per change, five change types plus first_seen
🎯 Follower milestones in either direction, 1K to 1M and up
📰 Newsletter added, new product, new bio link, new manager
🕰️ change_from, change_to, previous_run_at on every row
🧾 57 flat fields, snake_case, the current profile and link columns ride along
🗂️ Named saved state on your own account, one key per list
🌐 Seven platforms, TikTok, Instagram, YouTube, Pinterest, Twitch, Threads, podcasts
🔗 Link page recheck every run, or followers and bio link only
🧪 Clay ready, one handle per row lands on the same path
⬇️ Export to JSON, CSV, Excel, HTML or XML

Bought by newsletter and creator tool companies watching a target list for the moment a creator adds a newsletter or a product, brand partnership teams tracking milestones, and talent teams watching for a new manager.

🚫 This is not a profile scraper. Unchanged creators return nothing, so a run's row count is its change count. To read a list once, use the Influencer Profile Scraper; to watch it week over week, use this.

💡 Why use Influencer Change Monitor?

If you sellRead these fields
Newsletter or email platformschange_type newsletter_added, newsletter_platform, newsletter_evidence_url
Course, commerce, or membership toolschange_type new_product, the sells_* flags
Brand partnershipschange_type follower_milestone, change_from, change_to
Talent representationchange_type new_manager, manager_email, manager_source_url
Anything, as a disqualifierrow_status, previous_run_at

🧭 One route per platform, measured before the price was set

Five public profiles per platform, read at 1, 2, 3, and 5 in flight. USD per profile is transfer at the account's datacenter rate ($0.20 per GB) or residential rate ($8.00 per GB) plus an estimated compute share (1 GB, wall seconds over 3,600, at $0.30 per compute unit). The default concurrency sits below the point where rows started dropping, or two below the largest wave tested when nothing dropped.

PlatformRouteFields returnedPer profileOk of 5 at 1, 2, 3, 5Default concurrency
TikTokProfile page rehydration JSON over datacenter; one residential retry on a blockname, followers (exact from statsV2), following, video count, engagement (lifetime likes per video over followers), verified, bio, bio link, business email from the bio372 KB, 1.5 to 3.0 s, $0.00007 (a residential recovery costs $0.0030)5, 5, 5, 5 minus one block per wave at 53
InstagramProfile embed widget over datacenter (counts, name, verified, 6 recent posts); bio, bio link, and following from web_profile_info on about 1 in 4 datacenter attempts, otherwise from the profile page over residential when escalate_on_block is on (event instagram-bio-fetch, $0.010, only when that page came back readable)name, followers (exact), post count, verified, private flag, engagement (median likes plus comments of recent posts over followers), bio, bio link, business email from the bioembed 303 KB and $0.00006; residential bio page 720 to 830 KB, up to $0.0066 by decompressed bytes and $0.0012 by the platform's metered transfer (run o6u6d7x7zfElI9WQm, 2026-09-22); the residential page ran on 7 of 10 reads on 2026-09-22 and read on 65, 5, 5, 54
YouTube/@handle/about page ytInitialData over datacenter; innertube fallback; residential only after every datacenter route blocksname, subscribers (rounded by YouTube), video count, description, channel links, country (platform region), verified, engagement (average recent views over subscribers)2.2 MB, 2.0 s, $0.00055, 5, 5, 53
ThreadsPublic profile page Relay payload over datacenter; residential only on a block signaturename, followers (exact), bio, bio link, verified, business email from the bio0.93 MB, 5.0 s, $0.00035, 5, 5, 53
PinterestProfile page __PWS_INITIAL_PROPS__ over datacenter; residential retry on a real blockname, followers, following, pin count, verified merchant, about, website, location, business email, other social profiles1.39 MB, 1.8 to 3.0 s, $0.00035, 5, 5, 53
TwitchPublic GQL endpoint with the site's own web client id over datacenter; channel page JSON-LD fallback; your own Helix client id and app token when supplieddisplay name, followers, video count, partner flag, description, social links from the channel panels, business email in the description1.2 KB, 1.2 to 1.6 s, under $0.000015, 5, 5, 53
PodcastiTunes lookup plus the RSS feed, direct (no proxy bytes); Spotify show page over datacentershow name, episode count, description, site link, owner email from the feed (business_email_source feed), author, genres, countryfeed 0.5 to 5.4 MB direct, compute only, 0.8 to 2.9 s5, 5, 5, 53

Discovery per keyword, measured the same day: TikTok 7 handles over three Google pages (Google drops the site: operator on some exit countries, so a page without a handle is fetched once more); Instagram 1 to 8; YouTube 20 from the channel filtered results page with no search engine; Threads 11 to 15 over two Google pages; Twitch 11 from its own search; Pinterest 50 from its user search resource; podcasts 50 from the iTunes Search API. A Google page costs $0.0025 on the runner's account.

What each platform does not expose without login, and what the row says instead: YouTube's business email sits behind "View email address" and a verification step, so it is not read and business_email is filled only from an address written in the public description; Instagram has no location field, so country_guess comes from the bio; Threads and podcasts have no per post engagement; podcasts have no follower count; TikTok's anonymous render carries no region, so the country comes from the bio.

📋 What data can Influencer Change Monitor extract?

57 fields per row, the same 57 in the same order on every actor in this suite. The ones this actor fills:

FieldWhat it holds
change_typefollower_milestone, newsletter_added, new_product, new_bio_link, new_manager, or first_seen
change_from, change_toThe previous and the current value
previous_run_atWhen the previous snapshot was taken
platform, handle, profile_url, display_name, followers, bio_linkThe current profile columns, so the row stands on its own
newsletter_status, newsletter_platform, sells_*, manager_emailThe link page columns. Current when check_links is on; carried forward from the last run that read them when it is off
source_url, read_at, row_status, error_reason, billable_events_jsonWhere the row came from, when, whether it is usable, and what it cost

⚠️ false and null are not the same thing, and an empty cell is not a failed read. A column this actor does not own is null, never missing. On a boolean, false means the page was read and the signal was not there; null means nothing read it. On an Influencer Profile Scraper row, verified: false is a profile without the mark and verified: null is a profile that could not be read. Read row_status before any other column; the paragraph below says how.

Every actor in this suite writes the same 57 flat columns, in the same order, and fills the ones it owns. A column an actor does not own is null, never missing. Nested data lives only in columns ending _json, as a JSON string, so a Clay column reads one cell.

GroupColumnsFilled by
Identitycreator_id, creator_id_method, creator_id_confidence, platform, handle, profile_url, display_nameInfluencer Finder, Influencer Profile Scraper
Discoverysearch_keyword, niche, similar_creators, similar_creators_methodInfluencer Finder
Profilefollowers, following, post_count, engagement_rate, engagement_method, verified, bio, bio_link, location_text, country_guess, country_guess_methodInfluencer Profile Scraper
Contactbusiness_email, business_email_source, website_email, website_email_source_url, manager_name, manager_email, manager_source_url, agency_name, agency_domain, agency_match_methodInfluencer Profile Scraper, Link in Bio Scraper and Newsletter Detector, Influencer Talent Agency Lookup
Linkslink_in_bio_platform, outbound_links_json, other_social_profiles_json, own_websiteLink in Bio Scraper and Newsletter Detector; other_social_profiles_json also by the Influencer Profile Scraper
Newsletternewsletter_status, newsletter_platform, newsletter_url, newsletter_evidence_url, newsletter_check_methodLink in Bio Scraper and Newsletter Detector
Sellssells_course, sells_coaching, sells_digital_product, sells_merch, sells_membership, brand_deals_visible, discount_codes_visibleLink in Bio Scraper and Newsletter Detector
Changechange_type, change_from, change_to, previous_run_atInfluencer Change Monitor
Runsource_url, read_at, row_status, error_reason, billable_events_jsonAll six

The Influencer Lead List Builder runs the Influencer Finder, the Influencer Profile Scraper, and the Link in Bio Scraper and Newsletter Detector in one run and fills what they fill. The Influencer Change Monitor and the Influencer Talent Agency Lookup read the profile (and the Influencer Change Monitor reads the link page too when check_links is on), so their rows carry the identity, profile, contact, and link columns as well.

Read row_status first. ok is a normal row. error carries the reason in error_reason (not_found: user banned, private, blocked: bot detection page) and charges nothing. partial means the page was read but a step after it failed, and the reason says which.

The creator ID. creator_id is cr_ plus 16 hex characters of the SHA-1 of platform:handle of the creator's primary profile, so the same creator gets the same ID in every actor and every run. When one run sees the same creator on two platforms, the rows share the ID and each row says how it was linked: bio_link_match (0.9, one profile links to the other), website_match (0.8, same own website), handle_match (0.5, same handle on two platforms, which collides on common words). A lone row is seed_handle at 1.

Country scope. This actor applies no country filter. Every row carries country_guess and country_guess_method from the profile read (the platform's region field, the location text, the bio, or a flag emoji), and no creator is dropped for its country.

🛠️ How to track changes on a creator list

  1. Open the Input tab and give the list a list_name. The name is the key the saved state lives under.
  2. Put the creators in handles, one per line, with platforms for any bare @handle.
  3. Leave check_links on to recheck the link page for newsletter, products, and manager; turn it off for followers and bio link only, at lower cost. The link columns then carry forward from the last run that read them.
  4. Click Start. The first run returns one first_seen row per creator, the baseline.
  5. Run it again next week with the same list_name and handles. Only the changes come back.
  6. Export from the Output tab, or pull the rows through the API.

🧪 Using it in Clay

Add an Enrichment > Apify column, pick this actor, and map your handle column to handles with a fixed list_name per table. Every input is accepted as a string, which is what Clay sends. Schedule the run weekly; a change row lands in the table only when something moved, so the column doubles as a signal feed.

📚 Batch or single

One handle is one run; a list is a batch. Both shapes reach the same code path, and so does the shape the platform produces when Clay sends a top level array against an object schema. Input is deduplicated before any fetch. Rows are pushed as each wave finishes, so a run that hits its timeout keeps every row it already resolved. A row that throws becomes an error row with the reason and the run continues.

Concurrency (batch_size) defaults to the measured per platform value in the table above. Above the measured point results start dropping; that is why the default is not higher.

💵 How much does it cost to monitor a creator list?

Pay per event. You are charged for output, never for input.

EventFires whenPrice
actor-startOnce per run, on start.$0.002
creator-recheckedOnce per creator read on a monitor run, changed or not. The base price per creator.$0.008
change-detectedOnce per change row, on top of the recheck. A first_seen baseline row is a change row.$0.010
instagram-bio-fetchOnce per Instagram profile row when the bio, bio link, and following were not on the embed widget or the datacenter API and the profile page was read over the residential proxy and came back readable. Only when escalate_on_block is on; uncheck it to avoid the charge and accept empty bio fields on about half of Instagram rows. Never on the embed or datacenter reads, never on another platform, never on a blocked page, never on an error row.$0.010

Free Apify plan users get 45 results per calendar month, reset monthly. Upgrade to any paid Apify plan for unlimited use: https://apify.com/pricing?fpr=mamba

💳 What you are billed for. A weekly recheck of 100 creators with 10 changes is $0.80 plus $0.10. The recheck is charged because the work is the recheck, not the result.

An Instagram creator whose bio needs the residential page on a recheck is charged instagram-bio-fetch on top of the recheck.

Apify bills its own platform usage on top of the event prices.

⌨️ Input

Everything is on the Input tab. The options worth explaining:

FieldWhat it does
list_nameNames the saved state. Letters, digits, dot, dash, underscore.
handles, platformsThe creators to track, same shapes as the Influencer Profile Scraper.
check_linksOn by default: rechecks the link-in-bio page every run for newsletter, products, and manager. Off: followers and bio link only, at lower cost, and the link columns carry forward from the last run that read them.
match_agenciesManager email domain against the agency list.
escalate_on_blockOn by default. A profile fetch that returns a bot detection page is retried once over the residential proxy, and on Instagram the bio page is fetched over residential when the datacenter API does not answer; a readable page charges instagram-bio-fetch ($0.010) on top of the recheck. Off: no instagram-bio-fetch is ever charged, and the Instagram bio and bio link stay empty on about half of the rows, so a bio link change on those creators is not seen.

Change rows carry change_type, change_from, change_to, and previous_run_at, plus the current profile and link columns so the row stands on its own.

📤 Output

Exports to JSON, CSV, Excel, HTML or XML. One flat, snake_case row per creator per platform, 57 columns, with null rather than a missing key. No nested objects, so it drops straight into Clay, a spreadsheet or a warehouse table without a flattening step. Nested data lives only in columns ending _json, as a JSON string, so a Clay column reads one cell.

The first run for a list returns one first_seen row per creator, the baseline; this is one from a gate run. A later change row carries change_type, change_from, change_to, and previous_run_at the same way, plus the current profile and link columns. The row below is trimmed to the columns this actor fills; a run with no changes returns no rows at all.

{
"creator_id": "cr_760889a8b8e446d7",
"creator_id_method": "seed_handle",
"creator_id_confidence": 1,
"platform": "threads",
"handle": "zuck",
"profile_url": "https://www.threads.net/@zuck",
"display_name": "Mark Zuckerberg",
"followers": 5742257,
"verified": true,
"bio": "Mostly superintelligence and MMA takes",
"bio_link": null,
"newsletter_status": "none",
"newsletter_evidence_url": "https://www.threads.net/@zuck",
"newsletter_check_method": "rules",
"sells_course": false,
"sells_coaching": false,
"sells_digital_product": false,
"sells_merch": false,
"sells_membership": false,
"brand_deals_visible": false,
"discount_codes_visible": false,
"change_type": "first_seen",
"change_from": null,
"change_to": "followers 5742257, newsletter none",
"previous_run_at": null,
"source_url": "https://www.threads.net/@zuck",
"read_at": "2026-09-22T06:30:00.140Z",
"row_status": "ok",
"error_reason": null,
"billable_events_json": "[{\"event\":\"creator-rechecked\",\"count\":1},{\"event\":\"change-detected\",\"count\":1}]"
}

💡 Tips

  • Keep list_name stable per list. A new name starts a new baseline and returns first_seen for every creator.
  • Read change_type first, then change_from and change_to. A milestone row says which threshold was crossed in which direction.
  • Turn check_links off on a large list you only want sized. The recheck is the base price; the link page adds the newsletter, product, and manager changes. You can mix the two on one list: an off run carries the link columns forward and reports no link change, so the next on run diffs against the last real read.
  • Add new handles to the same list at any time. They get a first_seen row on their first run and diff from then on.

⚠️ Known limits

Business email coverage. Business email coverage is partial. The actor fills business_email only when a creator publishes one: in a bio, a link-in-bio page, or a YouTube channel description. YouTube keeps its business email button behind a sign-in and a CAPTCHA, which the actor does not bypass; in testing, 2 of 5 channels published an address in their description instead. Empty business_email means no public address was found, not that none exists.

The first run is a baseline, not a change. Every creator returns first_seen once, and that row is charged as a change row.

State lives on your account. The named key value store creator-change-monitor-state holds one key per list_name; delete the key and the next run starts over.

Some fields are not exposed without login. What each platform does not expose without login, and what the row says instead: YouTube's business email sits behind "View email address" and a verification step, so it is not read and business_email is filled only from an address written in the public description; Instagram has no location field, so country_guess comes from the bio; Threads and podcasts have no per post engagement; podcasts have no follower count; TikTok's anonymous render carries no region, so the country comes from the bio.

No country filter. Every row carries country_guess and country_guess_method from the profile read, and no creator is dropped for its country.

Not X, not Facebook pages, not LinkedIn. Seven platforms are read, listed above.

What is never done. No login. No CAPTCHA solving. No LinkedIn fetch. No message to anyone. No key of ours is used on your run; this actor has no AI option, and the Twitch credentials you can supply are never logged or written to a row.

❓ FAQ

Why did my run return zero rows? Nothing changed since the previous run for that list_name. A run's row count is its change count.

Why am I charged for creators that did not change? The recheck is charged because the work is the recheck, not the result. change-detected is charged on top only for change rows.

Which milestones count? 1K, 5K, 10K, 25K, 50K, 100K, 250K, 500K, 1M and up, crossed in either direction.

Where is the saved state? In a named key value store on your own account (creator-change-monitor-state), one key per list_name. Nothing is kept by Mamba Labs.

Can I watch the link page less often than the profile? Yes, on one list. A run with check_links off carries every link column forward from the last run that read it, so nothing is wiped and no link change row fires for a column that was not read. The next run with check_links on diffs against that last real read. A change that happened between the two link reads is reported on the later one, dated to the snapshot it is diffed against, not to the day it happened.

🧩 Want other GTM data?

Mamba Labs builds a fleet of GTM enrichment actors that share one flat, Clay-ready output convention, so their rows join on company_domain or creator_id with no cleaning step:

🕵️ Agent Accessibility Auditor🤖 AI Tooling Detector
📡 B2B Buying Signals Aggregator🚀 Prospect Engine
📝 Publishing Frequency Tracker🦋 Bluesky Brand Presence Mapper
Sequencer Lead Push🔄 Company Change-Event Feed
📇 Company Contact Details Extractor🧭 Company Discovery List Builder
🏢 Company Firmographic Enricher🪪 Company Identity Resolver
🌐 Company Social Presence Mapper🏷️ Contact Classifier
🔎 Influencer Finder🧾 Influencer Lead List Builder
👤 Influencer Profile Scraper📬 Domain Deliverability Checker
🔗 Domain to LinkedIn URL Resolver🛒 Ecommerce Platform Profiler
✉️ Work Email Waterfall Finder🎪 Event Presence Index
💵 Funding Record and Filings💰 Funding and Press Signal Scanner
🐙 GitHub Organization Signal Scanner🧑‍💼 GTM Hiring Signal Scraper
📋 Job Posting Monitor🧱 Tech Stack Detector
🎯 ICP Fit Scorer🔑 Job Board Keyword Scanner
⚖️ Legal Entity Resolver🔗 Link in Bio Scraper and Newsletter Detector
💼 LinkedIn Company Page Mapper💬 LinkedIn Post Tracker and Comment Capture
📢 Meta Ad Library Monitor📸 Instagram and Facebook Brand Mapper
📮 Outbound Stack Detector📄 Page Finder and Extractor
👤 People Finder and Email Verifier📌 Pinterest Brand Presence Mapper
🏛️ Government Contract Award Monitor📅 Public Company Reporting Window Finder
👽 Reddit Brand and Mention MonitorTrustpilot Reputation Enricher
👥 Team Page People Extractor🎵 TikTok Brand Presence Mapper
📈 Website Traffic Rank Estimator🏅 Workplace Program Detector
✖️ X Twitter Brand Presence Mapper▶️ YouTube Channel Stats Extractor

Every actor in the suite takes a domain, a company, or a creator and returns one flat row, so they stack in the same Clay table without reshaping anything.

🛠️ Need something custom built for you or your team? Tell us what you are trying to find and we will build it. Talk to Mamba Labs.

🆘 Support

Issues, field requests and bug reports: open an issue on the actor's Issues tab. Mamba Labs reads every one.

ℹ️ Sourcing and legal. Every field comes from pages the platforms and the creators publish to anyone without a login, read directly or through a proxy, with no login, no CAPTCHA solving, and no LinkedIn fetch. The row records what was public at read_at. Nothing is assessed or scored; a class, a flag, or a match method says what was read and where. You are responsible for how you use the output, including under applicable data protection and platform terms.

Built by Mamba Labs.