Maintenance build — no user-facing changes. Input schema, output dataset
columns, KVS records, console output, error messages, defaults, and pricing
are all unchanged from 0.0.172. Saved tasks continue to work identically.
- A failed run no longer prints the raw technical failure text from the service this actor depends
on. That text went into the run log and into the run's storage records, and on a connection
problem it carried that service's address. None of it was ever useful to you. Failures now read as
"the request was refused upstream"; the reasons you can act on are unchanged.
- The free-plan limits listed in the run's Free Limits Applied storage record now use one shared set of names across all our actors, so the same limit reads the same wherever you meet it. Two limits that used to share a name are also told apart now: a list that was skipped for being over the free size limit, and a list where the most recent accounts were saved and the rest were not. The wording you actually read on each entry is unchanged.
- Related actors now lists Instagram Reel Script Extractor — the family member for reading what a creator's reels actually say and show (spoken transcript, text burned into the frame, opening hook) rather than who joined and who left.
- Changes found are no longer lost when the platform moves a run to another server. Results were held in memory and written out in batches, and this actor had no handling for being interrupted at all — so a run that was moved or aborted mid-way threw away every change it had already found and charged for since the last batch. Changes are now written continuously, and again immediately before a run is interrupted. A run that is being stopped also finishes the account it is on instead of starting a new one.
- The run's Storage tab now names three records it had been writing without labelling them: the spreadsheet (CSV) copy of the report, and the two records that track an automatic comparison. They were always saved and always readable — now they appear as named tabs instead of bare keys.
- Added an Example tasks section to the README: seventeen ready-to-run setups you can start in one click, including tracking unfollowers, watching a competitor, spotting ghost followers and monitoring several accounts for clients.
- Synchronized the billing manifest and public pricing guide with the Apify tier prices that take effect on
2026-07-30T14:00:00Z: Free $0.10, Bronze $0.05, Silver $0.045, Gold $0.04, Platinum $0.035, and Diamond $0.03 per 1,000 followers, with the existing 10,000-follower minimum and 150,000-follower maximum.
- Clarified that a chargeable small Free-plan check consumes
$1 of the shared $5 Apify credit but produces no creator revenue. Paid small-account checks range from $0.50 on Bronze to $0.30 on Diamond; tracking following still adds no extra charge.
- Raised only the automatic-comparison child safety ceiling from
$0.30 to $0.50, and its three-observation ceiling from $0.90 to $1.50, so the explicit paid workflow remains runnable on Bronze after the new price takes effect. Actual charges still resolve from the caller's Apify tier, so higher paid plans remain $0.45–$0.30 per observation. Tracking, confirmation, storage handoff, target limits, email behavior, and charge-event logic are unchanged.
- Connected the completed automatic-comparison email to the existing persistent tracker task so a high-intent paid user can continue with Daily checks or an explicit two-hour launch Schedule. The one-time workflow still creates no Schedule itself, stops after observation 3, and keeps the final result as a secondary link.
- Restored the public README's exact persistent campaign-task link and two-hour manual return sequence as a secondary alternative below the automatic-comparison workflow. The automatic one-launch job remains the Store front door; this documentation repair changes no runtime, billing, task input, or Schedule.
- This release ships ahead of the
2026-07-30T14:00:00Z price change on purpose. The raised safety ceiling is harmless at the current price and has to be live before the new one starts, otherwise an automatic comparison on a paid plan would stop at its own spending guard without reading anything. No pricing record is created or edited here; the price change itself is applied by Apify.
- Prepared production-promotion metadata for the automatic first-comparison runtime under charged proof on private beta 0.0.164. Runtime, billing ceilings, signed internal roles, target limits, one-time final email behavior, and false-default opt-in remain byte-for-byte unchanged from that beta; production must stay on 0.0.161 until the three-observation cloud proof finishes and receives a separate release review.
- Moved the explicit automatic-comparison checkbox directly below the account field, ahead of the optional email field. The one-launch job is now the first decision in the Store input instead of appearing to depend on email; defaults and submitted input values are unchanged.
- Fixed the paid automatic-comparison beta's final notification contract after the first live workflow exposed a quiet-state collision: a mature account with no changes would complete observation 3 with the ordinary email-silent
no_changes_v1 result even though this one-time workflow promises one final result email.
- Added a dedicated
automatic_comparison_complete_v1 result for exactly the signed third internal observation. It sends one concise completion email when the account stayed stable, states that all three observations finished and that nothing else was scheduled, and links the final run without generating an unnecessary report artifact. Ordinary no-change runs remain quiet, and observations 1–2 still receive no email address.
- Aborted the superseded
0.0.163 proof controller after its first successful observation and before observations 2–3, avoiding another $0.60 in Actor charges. Production latest remains on 0.0.161; this build is beta-only pending a fresh capped proof.
- Fixed the automatic-comparison launcher's parent status-page handoff after the first charged-cloud attempt exposed a Key-Value Store API incompatibility. The beta now writes
status.html with the platform-supported text/html content type instead of a parameterized MIME value rejected before the controller could start. The failed proof produced no billable Actor events; production latest remained on 0.0.161.
- Added a regression assertion for the exact cloud record contract. No pricing, follower reads, email behavior, limits, scheduling, production tags, or non-beta execution paths changed.
- Added an explicit false-default paid beta that can produce the first confirmed follower comparison after one launcher run. For exactly one public account up to 2,500 followers, a 128 MB background controller starts three ordinary observations about two hours apart and returns their rows, progress, and final summary to the launcher's storage.
- Each successful observation has its own
$0.30 PPE ceiling, for a disclosed maximum of $0.90 in Actor charges. Followers-only validation and the 2,500-follower cap run before paginated list reads; an untrackable, over-cap, failed, timed-out, or indeterminate child stops the workflow without starting later checks.
- The controller stays on limited permissions and requests read/write access only to the launcher's explicitly passed dataset and key-value store. It pins children to the launcher's build, suppresses email on observations 1 and 2, prevents recursive launches, and fails closed across uncertain restarts to avoid duplicate paid runs. An atomic Request Queue lock rejects overlapping automatic workflows for the same account and ages out naturally after 6–12 hours.
- Internal controller and observation inputs use short-lived HMAC capabilities. A direct API caller cannot spoof hidden workflow roles to bypass the duplicate-run lock, x402 exclusion, or explicit launcher opt-in; invalid, expired, or altered capabilities stop before follower pagination and before any Actor charge.
- Added PII-free queued, rejected, observation-completed, completed, and failed telemetry plus durable workflow IDs/steps on ordinary child-run analytics. The beta is documented as unsupported for x402/synchronous endpoints until an independent cloud proof validates background child payments and storage handoff.
- Refreshed compatible lockfile dependencies, including patched Axios, WebSocket, form-data, file-type, brace-expansion, and Crawlee releases. The production audit dropped from ten high advisories to seven remaining advisories in Apify's unused crawling/header-generation transitive path; resolving those currently requires an unsafe forced SDK downgrade and was not attempted.
- This commit is a release candidate only: local orchestration tests and schema validation pass, but no production build or charged cloud proof has been launched.
- Updated the Actor Store description to name the same paid campaign workflow across task, direct API, and the documented x402 path. The programmatic promise now appears inside the first 80 characters and the full description stays within 160, so a compact Store card does not hide the new acquisition signal. This metadata stays prepared locally until the independent 2026-07-19 48-hour gate; title, SEO text, input schema, pricing, and runtime behavior are unchanged.
- Added a dedicated
api_sibling_autostart attribution marker for the separately gated, false-default sibling Actor auto-start path. No source Actor schema or production build exposes that path yet, so this release only makes future adoption distinguishable from manual api_sibling_handoff POSTs.
- Corrected every public REST example to the documented 60-second
waitForFinish maximum, added an explicit $5 per-run charge cap, and moved ordinary API/task authentication out of query strings into Bearer headers. Long-running calls now explicitly poll the same run instead of showing an unsupported 120-second wait.
- Replaced the giant
natgeo quickstart target with the already verified small public dubdotco demo across input, output, API, and MCP examples. A first-time caller now exercises the intended inexpensive full-list workflow instead of starting from an account far beyond the 150,000-follower product ceiling.
- Added the existing PII-free
api_quickstart attribution marker to the direct README curl, so a caller who follows the executable example is measured in the documented API funnel instead of disappearing into unattributed direct traffic. The marker changes neither output nor price.
- Expanded the one-time completed-screen review invitation to two non-competing free value moments: a successful manual baseline that exported the current follower list, or a confirmed-change run where every changed identity was already revealed and no upgrade CTA is needed. Paid manual confirmed-change eligibility remains unchanged; paid baselines are not asked early.
- Free runs with any locked identity, scheduled/API runs, quiet checks, demos, failures, and users who already saw the prompt remain excluded. The prompt stays a muted secondary link after the primary result/continuation action; tracking, billing, prices, caps, datasets, emails, confirmation, and primary actions are unchanged.
- Added durable
api_sibling_handoff attribution for direct Actor API runs started from the machine-executable workflow returned by the three paid Instagram sibling actors. These runs appear under the separate canonical task name monitor-instagram-followers-from-sibling-api, so direct API adoption is measurable without conflating it with copied agency-task adoption. Tracking, snapshots, billing, pricing, and user-visible behavior are unchanged.
- Fixed the recovery action after a temporary Instagram list-read failure. The diagnosis already told users to retry in a few minutes, but its primary button opened GitHub Issues and said “Fix input”; it now opens the reusable tracker task (or the run fallback) and says “Retry this account in a few minutes.”
- Added a distinct
retry_transient action/button contract so Live Status views and primary clicks can be measured separately from permanent private/not-found input fixes. The web-server OpenAPI button enum now also covers every existing continuation, campaign, and review button emitted by the runtime instead of documenting only the older subset. Confirmation, pricing, billing, free limits, Store positioning, and upstream retry behavior are unchanged.
- Replaced the generic zero-result fallback after a PPE budget preflight with an exact spending-limit diagnosis. x402 callers are told that a prepaid token cannot be topped up and that one sufficiently funded token must cover all three observations; ordinary API callers are told to raise
maxTotalChargeUsd and retry.
- The budget diagnosis now records whether the same temporary account already has a snapshot, so a caller knows whether a replacement x402 token will restart an existing sequence or safely create its first baseline.
- Added a documented x402 API path for agents that pay with USDC without an Apify account. The same 14-day prepaid token is reused across the three-observation launch sequence so its temporary account retains the tracker baseline.
- Added durable
agentic_x402 source attribution for the documented path without claiming that every API call is an agentic-payment call.
- Added a pre-fetch PPE budget guard. After the cheap profile lookup reveals the account size, paid runs now verify that both baseline and ongoing events fit the remaining run charge limit before fetching any follower pages. Insufficient prepaid balance stops uncharged instead of creating a partially paid, externally expensive read.
- Completed the manual-first campaign pivot after the 0.0.155 owner proof exposed residual Schedule-first body copy. Paid manual baseline, pending, verified, and no-change messages plus Live Status headlines now all reopen the same persistent task for the next observation in about two hours.
- Scheduled-origin runs still acknowledge their active automation, and a two-hour Schedule remains an optional secondary path for manual users. The primary
return_for_comparison action, exact task URL, three-observation confirmation, and separately billed-run disclosure remain unchanged.
- No change to free paid-gates, existing schedules, direct API and ordinary-task behavior, attribution, billing, prices, caps, datasets, recipients, or permissions.
- Paid campaign runs now make the observed manual two-hour return the primary action instead of asking for Schedule setup first. Historical paid WEB users produced 161 same-day repeat intervals, 75.2% no longer than two hours, while customer schedule adoption remained zero.
- The primary completed action, baseline email path, logs, and Store first screen now reopen one persistent task for the next observation. Run 2 still verifies the list and run 3 can confirm the first changes roughly four hours after baseline. Owner proof later exposed residual Schedule-first copy in quiet/pending message bodies and headlines; 0.0.156 closes that gap.
- A two-hour Schedule remains optional secondary automation. Free paid-gates, existing schedules, direct API and ordinary-task behavior, attribution, confirmation, billing, prices, caps, datasets, recipients, and permissions are unchanged.
- The Store Start button now renders the same paid campaign experience as the Store hero. Taskless WEB runs were already routed to the campaign task in 0.0.152, but still showed generic Daily/free continuation because they lacked the copied task's hidden campaign marker.
- Free direct Store baselines now lead to the explicit paid two-hour gate; paid direct Store runs lead to campaign-task setup and state that the demo account must be replaced with the account from the completed run. Direct Store rows remain direct traffic rather than being mislabeled as published-task adoption.
- Existing saved tasks, direct API/schedule runs, source attribution, tracking, confirmation, billing, prices, caps, datasets, recipients, free cadence, and schedule creation are unchanged.
- The still-unsent portfolio newsletter landing now sells the same paid one-account intraday job as the Store front door. It replaces the superseded API/Daily promise with paid checks every two hours, run-3 confirmation in about four hours, and up to 12 separately billed runs per day.
- The dedicated newsletter task keeps its existing task ID and
newsletter attribution while adding the hidden campaign-context marker, so copied tasks receive the aligned cadence/status/continuation experience without being merged into organic Store traffic.
- Documentation and saved-task context only. No mass email was sent, and tracking, confirmation, billing, prices, caps, datasets, recipients, free cadence, and schedule creation are unchanged.
- Direct Store runs now continue into the same attributed paid campaign task advertised by the 0.0.151 front door. The first organic 0.0.151 WEB baseline clicked its primary action, but the old direct-run fallback still opened the generic Daily task and lost the campaign path.
- Direct API runs retain the ordinary task fallback, and runs from an existing saved task continue reopening that exact task. Only a taskless WEB continuation changes destination.
- Routing only. Tracking, confirmation, billing, prices, caps, datasets, emails, free cadence, and schedule creation are unchanged.
- The Store front door now leads with the strongest paid behavior observed in real usage: repeated one-account checks during a time-sensitive window. Its single primary action opens the attributed campaign task instead of leading with the unproven multi-client/API path.
- The first screen states the complete commercial contract before launch: paid checks every two hours, first possible confirmed comparison around four hours, $0.30 minimum per successful small-account check, and up to 12 separately billed runs per day.
- Presentation and distribution only. The agency/API tasks remain published and attributed; tracking, confirmation, billing, prices, caps, datasets, emails, free cadence, and schedule creation are unchanged.
- The paid launch/campaign workflow now recommends a two-hour cadence instead of four hours. Run 3 can deliver the first confirmed comparison in roughly four hours, closer to the repeated one-account behavior seen in historical paid usage.
- Campaign setup and result surfaces state that this cadence creates up to 12 separately billed runs per day and tell customers to disable it or switch to Daily when the time-sensitive window ends.
- The campaign task still requires an explicit user-created schedule. Tracking, confirmation, per-run billing, prices, caps, datasets, free cadence, ordinary Daily retention, and email recipients are unchanged.
- Added aggregate confirmation telemetry for pending new/lost counts and lists compared, so candidate survival and the run-2 to run-3 gap can be measured without reading handles, inputs, snapshots, or result rows.
- Measurement-only release. Tracking, confirmation, billing, prices, caps, datasets, emails, reminders, completed actions, and cadence limits are unchanged.
- The Store landing now leads with the paid multi-client/API monitoring job instead of automatic email. The first screen links the seven-account task, states its $2.10 current run cost before launch, and keeps email and scheduling as optional retention features.
- Actor and input metadata now describe both a one-account tracker and a paid client portfolio while preserving the existing follower-tracker, unfollower, and API search intent.
- Documentation and metadata only. Tracking, billing, prices, caps, confirmation, datasets, emails, reminders, and cadence limits are unchanged.
- Added a dedicated paid agency-portfolio acquisition path. One persistent task can keep multiple public client, brand, or creator accounts together instead of forcing one task per account.
- The input form now states the existing multi-account capability honestly, while keeping the one-account free limit explicit. A hidden PII-free source marker maps the new published task to its canonical analytics name.
- Acquisition and documentation change only. Tracking, per-account billing, prices, caps, confirmation, datasets, emails, and cadence limits are unchanged.
- The README input table now matches the live email behavior: an address opts into one setup reminder 24 hours after a successful first manual check, unless the user runs the tracker again first, plus result emails from later runs.
- Documentation-only follow-up to 0.0.145. No change to reminder eligibility, tracking, billing, prices, caps, confirmation, datasets, recipients, or cadence limits.
- A successful manual first check can now send one opt-in setup reminder 24 hours later. It explains the honest three-observation contract and reopens the exact saved task (or the Actor input for a direct run).
- A useful return before the send time cancels the reminder. Scheduled, API, campaign, demo, failed, and no-email runs never schedule it; this is one state-triggered message, not a recurring marketing sequence.
- The Actor stores only the opaque provider message ID, run ID, and scheduled timestamp so cancellation survives between runs. Email addresses, Instagram handles, and message bodies are not added to analytics or reminder state.
- Added PII-free scheduled/canceled/status telemetry and provider-level handling for scheduled/canceled delivery denominators. No change to tracking, billing, prices, caps, confirmation, datasets, paid cadence, or free cadence limits.
- The public dataset schema and source-controlled billing descriptions now match the real three-observation contract. Run 1 saves the baseline, run 2 verifies possible changes, and confirmed
new / lost rows start from run 3.
- Removed the stale dataset-schema promise that change rows begin on run 2. API clients, AI agents, the README, and the newsletter landing now share the same contract. Apify versions the active Store pricing description separately; that text remains scheduled for the 2026-07-30 pricing sync so the already-notified tiered price is not disturbed.
- Contract-copy correction only. No change to tracking, confirmation, billing amounts, prices, caps, datasets, recipients, or cadence limits.
- The portfolio-newsletter landing now matches its API-first promise. It tells developers, agencies, and brands to copy one persistent task, call that task ID repeatedly, and read confirmed change rows from run 3 onward.
- The public task starts with a small agency account and keeps only the account and follower-tracking fields visible; email and scheduling remain optional follow-up automation instead of competing setup steps.
- Documentation and saved-task defaults only. The newsletter task ID and source attribution are unchanged, and there is no change to tracking, billing, prices, caps, confirmation, datasets, recipients, or cadence limits.
- The API path now speaks directly to agencies, brands, and creator-monitoring workflows. It explains that one persistent task can track multiple public accounts and that paid plans support up to 150,000 followers per account.
- The dedicated API example description carries the same high-value account framing while preserving its title, task ID, inputs, and source attribution.
- Documentation-only release. No change to tracking, billing, prices, caps, confirmation, datasets, recipients, or cadence limits.
- Programmatic users now see the API-ready persistent task near the first-run path instead of finding it only deep in the documentation. The generated Example tasks list also includes the dedicated API integration landing.
- The manual ready-made task remains the primary first-run action; the compact API path preserves separate source attribution and points to the existing dataset /
RUN_SUMMARY workflow.
- Documentation-only release. No change to tracking, billing, prices, caps, confirmation, datasets, recipients, or cadence limits.
- Published acquisition tasks now carry a hidden, copied source marker that maps to a canonical analytics task name. Newsletter, sibling-README, campaign, and API-quickstart descendants remain attributable even though a run-scoped token cannot read the customer's copied task metadata.
RUN_SUMMARY.settings.acquisitionSource records the PII-free source contract for auditability. No handles, inputs, emails, or result identities are added to analytics.
- No change to tracking, billing, prices, caps, confirmation, datasets, recipients, or cadence limits.
- Added an API-ready published-task workflow and a best-effort task-name lookup. Cloud proof showed that customer-copied task metadata is not reliably visible to the run-scoped token; 0.0.138 supersedes that lookup with a durable copied source marker.
- The input form, visual walkthrough, FAQ, and API documentation now match the manual-continuation product decision: complete the comparison loop first; add Daily scheduling and email as optional automation.
- Added a production API pattern based on repeatedly calling one copied task and reading its dataset /
RUN_SUMMARY. No change to tracking, billing, prices, caps, confirmation, datasets, recipients, or cadence limits.
- Manual users now get the next comparison as the primary action instead of being pushed straight into Schedule setup. Baseline, verification, and quiet manual runs reopen the same tracker task with a clear run-2/run-3 instruction; Daily scheduling remains an optional retention path.
- Confirmed paid results and fully revealed free results now lead to View results before any setup suggestion. This keeps the completed screen focused on the value just delivered.
- The completed action has durable, PII-free exposure/click instrumentation so return-to-run-2, run-3 reach, and later paid adoption can be measured rather than inferred from Schedule origins.
- No change to tracking, billing, prices, caps, confirmation logic, datasets, recipients, paid cadence, or free cadence limits.
- Rapid repeat free checks no longer burn a full follower-list read for little new signal. After a successful free manual/API observation, another non-scheduled check inside six hours is skipped with a clear next-available time; nothing is fetched or charged. Paid runs stay unrestricted, and free Daily schedules keep their separate cadence rule.
- The new cooldown is measurable: run telemetry records the blocked state and the previous successful run's billable-request count as a cost-avoidance estimate. HikerAPI service/balance probes are now reported separately as non-billable instead of inflating external-cost estimates.
- No change to paid tracking, paid cadence, prices, follower/following caps, confirmation logic, datasets, or email recipients.
- Paid customers now get one visible review invitation after a manual run catches confirmed changes. It appears as a quiet secondary link below the primary Results action, never on free, scheduled, setup, no-change, demo, or failed runs.
- The invitation records its exposure and click without storing Instagram data, so the trust loop can be measured against the public Store review count instead of inferred from a hidden USER_MESSAGE line.
- No change to tracking, billing, prices, free limits, confirmation logic, datasets, emails, or the primary completed-screen action.
- The campaign-monitor example now keeps its four-hour paid workflow through the completed screen,
USER_MESSAGE, next action, and opt-in email. Its CTA opens the exact task that was run and gives the cron 0 */4 * * *; it no longer sends campaign users to the generic daily example.
- A hidden task marker survives when a visitor copies the public example. Free users see an honest upgrade gate for four-hour monitoring, while the ordinary tracker keeps its daily workflow unchanged.
RUN_SUMMARY.settings.campaignMonitor records the workflow without adding a public input field. No change to tracking, billing, prices, free limits, confirmation, datasets, or email send gating.
- Paid schedules that run more than once a day now get a neutral cost note instead of being told that Daily is always enough. Frequent checks can be useful during launches, campaigns, and other fast-moving periods; the note makes clear that each run re-reads the selected list and is billed.
- Free-plan schedules remain limited to one useful run per day, but their message now explains the plan limit without claiming that Instagram lists never change intraday.
- No change to tracking, billing, prices, free limits, confirmation logic, datasets, emails, or schedule execution.
- Store discovery now names the complete job: follower tracker, monitor, and unfollowers. The display and SEO titles preserve the established tracker query while adding the weaker monitoring intent.
- The Store description now matches the focused defaults: follower tracking starts on; following changes, top fans, and ghost followers are optional.
- No change to runtime behavior, pricing, free limits, tracking, datasets, emails, or identity masking.
- A free run that reveals every confirmed name no longer claims that names are locked or points to an unlock CTA. It now uses the ordinary email/schedule next step; the paid-plan action remains only when at least one identity is actually masked.
Locked Changes Seen and the changes_locked_free limit now represent real masked identities instead of every free run with a confirmed change. RUN_SUMMARY.changes adds PII-free revealedFree and lockedFree counts for auditability.
- No change to the three-name free reveal, pricing, list caps, confirmation algorithm, datasets, or paid output.
- Transactional email delivery, opens, and clicks are now auditable without storing recipients. Every new email carries PII-free run/message/category/plan/origin tags for provider event attribution.
- Added an owner-only aggregate Resend audit that reports final-event counts and lower-bound delivery/engagement rates without exposing recipient addresses, subjects, message bodies, or provider email IDs.
- No change to tracking, pricing, free limits, email recipients, send gating, datasets, or public input fields.
- Free scheduled runs now use the same 2,500-follower limit as free manual runs. The former one-time 50,000-follower schedule boost has ended; scheduling and email alerts remain available.
- Setup and free-plan documentation now match the focused defaults: follower tracking starts on, while following changes and engagement insights are optional.
- No change to today's paid price, paid limits, datasets, input keys, emails, or identity masking.
- Billing displays and spending guards now read the effective Apify event price at runtime. This keeps the run's budget, status, and summary aligned if a notified pricing change becomes active later.
- Platform-cost analytics now use raw resource units and Apify's published creator-cost rates, so profit reporting no longer depends on a preliminary dollar total near shutdown.
- No change to today's price, tracking behavior, free limits, datasets, input fields, emails, or identity masking.
- New runs now focus on follower changes by default. Following-list tracking and the engagement audit are optional and start off, reducing unnecessary work and making the first setup easier to understand.
- Turn either option on whenever you need following changes, non-mutual accounts, top fans, or ghost followers. Existing saved inputs that explicitly enabled them keep working unchanged.
- No change to billing, free limits, follower tracking, datasets, emails, or identity masking.
- Each run now reports its upstream request count.
RUN_SUMMARY.apiUsage and the new API_USAGE Storage record show a provider-neutral fetch/search/other breakdown, making automation cost visible to integrations.
- No change to tracking behavior, billing, free limits, input fields, datasets, emails, or identity masking.
- Paid plans can now download your changes as a CSV, straight from the report. A "Download CSV" link on the result report (and in the alert email) gives you every new follower and unfollower from the run in one spreadsheet-ready file — ready to sort, filter, or archive.
- New weekly "all quiet" email for scheduled trackers. If you run on a schedule with email alerts and a week passes with no changes, you'll get one short note confirming tracking is still live — capped at once every 7 days, and you can stop it any time by clearing the email field.
- No change to billing, datasets, input schema, send gating for other runs, or locked-identity masking.
- Email and report buttons now open your result report directly and reliably. Removed an intermediate redirect step that could leave some devices on a blank Google page instead of the report — the button now goes straight to the report (or upgrade/run/setup page) it names.
- No change to billing, datasets, send gating, input schema, email row previews, or locked-identity masking.
- Fixed tracked email/report links when the Apps Script URL includes a Google account segment. The actor now canonicalizes
script.google.com/macros/u/N/s/.../exec to the stable web-app URL form script.google.com/macros/s/.../exec, so email and report CTA redirects open correctly on mobile and desktop.
- No change to tracking behavior, billing, datasets, send gating, input schema, or locked-identity masking.
- Email and report CTA clicks are now measurable without PII. Primary email buttons and
report.html primary buttons can route through a durable tracking redirect that records only run/message/category/surface/CTA/build/plan/origin metadata.
- Report links still work after the run exits. The click wrapper redirects to the original report, billing, setup, run-details, or support destination even if analytics logging fails.
- No change to tracking behavior, billing, datasets, send gating, input schema, email row previews, or locked-identity masking.
- Emails now open a durable result report when one exists. Result, locked-value, limit, and recovery emails can point to
report.html, a clean hosted page that stays available after the run exits.
- The report becomes the focused upgrade surface. Free reports show only already-revealed preview rows plus locked-count summaries, while paid reports show safe profile rows with links and one clear next action.
- No change to send gating, tracking behavior, billing, datasets, input schema, Live Status, PDF/CSV exports, or email click analytics.
- Emails now show useful result rows directly in the inbox. Paid change emails include compact preview rows with clickable Instagram profiles, while free emails show only already-revealed preview names plus locked-count summaries.
- Non-mutual and engagement audit emails are clearer. Inbox previews now show revealed non-mutuals and top fans, keep ghost identities locked for free users, and move full-detail language to run details.
- No change to send gating, tracking behavior, billing, datasets, analytics payloads, Live Status, input keys, or email delivery mechanics.
- Email alerts now use account-centered result copy. Change, non-mutual, and audit emails now describe what happened to the tracked account instead of implying the recipient owns it.
- Upgrade buttons are clearer and less noisy. Free locked-change, free-cap, and free-week-ended emails now use outcome-based CTAs and no longer repeat raw billing links when a primary upgrade button is already present.
- Mobile inbox previews are better. Transactional emails now include a hidden preheader and plain-text preheader line for clearer inbox context.
- No change to send gating, tracking behavior, billing, datasets, analytics payloads, Live Status, input keys, or email delivery mechanics.
- The mobile input form is easier to scan. The intro copy is shorter, the daily email setup link now sits on its own line, and the Accounts to Track bullets are trimmed to fit better on mobile.
- No change to tracking behavior, billing, datasets, email delivery, analytics, Live Status, input keys, or field validation.
- The input form now points to daily email setup. The top copy links directly to Start daily email tracking, so Console users land on the shortest setup path.
- Daily setup now starts with why it matters. The README explains the baseline, verification run, run-3 alerts, free 50,000-follower window, and Run now path before the visual guide.
- Free-plan wording is more accurate. First-run copy no longer implies every free-plan change is named; counts and first few names are free, and a paid plan reveals every name.
- No change to billing, datasets, analytics payloads, Live Status behavior, email delivery mechanics, input keys, or field validation.
- The input form is visually balanced again. The short setup bullets are back inside Accounts to Track, where they scan better in the Apify form UI.
- The form intro is shorter and clearer. It now gives a brief actor summary, the Daily schedule free perk, and a link to the visual setup walkthrough.
- No change to tracking behavior, billing, datasets, email delivery, analytics, input keys, or field validation.
- The input form is less noisy. Setup guidance now lives in the short form intro, while the Accounts to Track section focuses on fields only.
- Field help is shorter and easier to scan. Tracking option descriptions now explain the outcome and limits without long tooltip text.
- The email field is more visible. The title now uses 📩 Email me the changes to match the inbox-alert action.
- No change to tracking behavior, billing, datasets, email delivery, analytics, or input keys.
- Live Status is now state-driven. Completed pages focus on the one useful next step for each tracker state: baseline saved, one more verification run, confirmed changes, all quiet, or input recovery.
- Progress copy is clearer while runs are active. The status page now exposes a plain-language current step and keeps percentages secondary unless a list read is actually progressing.
- Live Status views are now measurable without PII. The page reports only aggregate mode/action/build/origin/plan metadata; no raw handles, email, or input URLs are sent.
- No change to tracking behavior, billing, datasets, email delivery, or input fields.
- The test-run Live Status page is now focused on the next step. Empty-input test runs no longer show a completed dashboard with 0% progress and all-zero counters; the page now shows only the test-run explanation and the Add a handle action.
- No change to tracking behavior, billing, datasets, email delivery, or input fields.
- Live Status no longer breaks after the run exits. The Output tab now opens the saved
status.html page from Storage instead of the short-lived container URL, so the final test-run banner stays readable after completion.
- Final status buttons now use durable links. Completed status pages no longer route CTA clicks through the container-only
/track redirect after the run has finished.
- No change to tracking behavior, billing, datasets, email delivery, or input fields.
- Test runs now keep the Live Status page visible. Empty-input test runs launched from Apify Console now hold the live page open for at least one minute, clearly saying no Instagram data was fetched, the run cost $0, and the next step is to add a public Instagram handle.
- No change to tracking behavior, billing, datasets, email delivery, or input fields.
- The Live Status progress bar now moves during long reads. While a followers or following list is being collected, the progress percentage now advances from the current list read instead of staying at 0% until the account finishes.
- No change to tracking behavior, billing, datasets, email delivery, or input fields.
- Live Status now appears in the run Output. The live status page is now exposed as a Live Status Output tab next to Run Summary and Changes, so you can open the conversion-focused run screen directly from the run results.
- No change to tracking behavior, billing, datasets, email delivery, or input fields.
- The live status page now guides the next step. Completed runs now explain the exact state: intro, baseline saved, run 2 verification, confirmed changes, no-change checks, or input problems.
- The status page now uses the tracker funnel. Manual run 1 / run 2 nudges focus on adding email and scheduling Daily; upgrade prompts stay for locked-value and limit moments.
- The live status API contract is clearer. The web server schema now documents the status JSON, CTA redirect tracker, and client-info endpoint used by the live page.
- No change to tracking behavior, billing, datasets, email delivery, or input fields.
- The input form is faster to fill in. The first field now says Instagram account to track, uses a clearer placeholder, and has a shorter description focused on the one action needed to start.
- The setup bullets are shorter. The form now explains the flow in three quick steps: add a public account, add email for inbox alerts, and schedule Daily to keep tracking.
- The tracking toggles are clearer. Track Followers is now Track New followers & unfollowers, and Track Following is now Track Following changes.
- No change to how tracking works, what's tracked, or pricing.
- The email field is easier to spot. The input form now labels it ✉️ Email me the changes, so the inbox setup stands out while you fill in the account to track.
- No change to how tracking works, what's tracked, or pricing.
- The email field now says exactly what it does. It is titled Email me the changes and explains that new followers and unfollowers go to your inbox automatically when the task runs daily.
- The input form now makes the tradeoff clearer. If you skip email, you have to open the Apify Console Output by hand to see changes.
- No change to how tracking works, what's tracked, or pricing.
- The setup form is now one clear section. The email field now sits with Accounts to Track, so you can add the account and the alert address in one pass instead of opening a separate email section.
- Clearer daily-alert setup. The input form and setup instructions now present the same flow: add the account, add your email, then schedule Daily so follower changes come to your inbox.
- No change to how tracking works, what's tracked, or pricing.
- Upgrade links now land on the right page. Every "Upgrade" link and button across run messages, emails, and the live screen now opens your Apify plan page directly (the old link form could land on the wrong billing tab).
- No more mystery clicks. Every Upgrade button now says what's behind it, right underneath: paid plans start at $29/mo with $29 in platform credits, and the button opens your plan page in Apify Console.
- The completed screen now tells you the one next step. After a run finishes you get a clear action box: on the demo — add your own account; after your first real run — add your email and schedule it daily (with the free 50,000-follower week); when a run hits a free-plan limit — the upgrade that removes it. The bottom "next action" link is also easier to read.
- Your first run now leads with getting the results emailed. The first-run message asks for your email + a daily schedule right after showing your results — upgrading stays one line below. The email field's description in the input form is clearer about what you get.
- Fresher email subjects and buttons. "1 more run reveals who changed", "your free week is up, here's what changes", "Schedule it daily (3 steps)" and friends — same emails, clearer next step.
- No change to pricing.
- Your first-run results are now front and center. The store page opens with a new "What you get on your very first run" section — who you follow that doesn't follow you back, your top fans, and your ghost followers, all delivered on run 1 — and the input form now leads with the same instant value. No feature changes; the run-1 results themselves shipped in 0.0.95.
- Two new ready-made examples on the store page: See who doesn't follow you back on Instagram and Find your Instagram ghost followers — each opens a pre-configured task you can run in one click.
- The first-run email description now matches what the email actually contains: your don't-follow-back count and names, plus your top fans and ghost-follower count (when available) — not just a "tracking started" note.
- No change to pricing.
- New: find your top fans and ghost followers — on your very first run. With the new Find Top Fans & Ghost Followers option (on by default), the tracker checks who likes and comments on the account's recent posts and reports your top fans (
top_fan rows — the followers who engage the most, first few names free), your ghost followers (ghost_follower rows — followers who never engaged with your recent posts; exact count free, full list on a paid plan), and how many non-followers engage with your posts. Refreshed weekly on a schedule; no extra charge. For honesty, ghosts are only reported when every analyzed post's like list could be read in full.
- Typo rescue: "did you mean @…?" A handle that can't be found now gets close public matches suggested — with real follower counts — right in the run message, the completed screen, and the email, so a typo becomes a one-tap correction instead of a dead end. A leading
@ or stray punctuation in a handle is now cleaned up automatically too.
- Scheduling made simpler — and a myth removed. You can schedule Daily any time: your first scheduled run opens the free 7-day window (accounts up to 50,000 followers) regardless of any manual runs before it. All wording that said otherwise is gone, and the visual setup guide is now 3 steps.
- A proper goodbye to the free week. When your 7-day scheduled window ends, the next run now explains exactly what changes for your account size — instead of ending silently.
- New tiles on the completed screen: Don't Follow Back, Ghost Followers, and Top Fans.
- Fixed: run 2 no longer ends marked "failed." A run that spotted possible changes and held them for confirmation (the normal "Run 2 of 3 — verifying" step) could finish all its work and then be wrongly marked as failed. The verification step itself always worked; the wrong status is gone.
- No change to pricing.
- New: see who you follow that doesn't follow you back — from your very first run. Turn on both Track Followers and Track Following, and every run flags the accounts you follow who aren't following you back (
not_following_back rows in the Output). You get the exact count and the first few names free; a paid plan reveals every name. It's shown only when your full followers list was read, so the number is never inflated by followers that couldn't be loaded.
- No change to how existing follower/unfollower tracking works, and no change to pricing.
- A clear next step when a run finds nothing. When an account can't be tracked — it's private, or the handle doesn't exist — the live status page now shows exactly why and what to do instead of an empty results board. A run that couldn't read anything is never charged.
- A reminder to switch on the free bonus. After your first run, the status page now shows the one-tap way to schedule daily and unlock the free 50,000-follower window for 7 days — so it's easy to keep tracking running on its own.
- Clearer email setup. The email field and the first-run note now make it obvious that your email is simply where the alerts are sent — add it and every new follower and unfollower comes straight to your inbox.
- Clearer on public-only tracking. The input field now states up front that only public accounts can be tracked, since Instagram hides a private account's follower list.
- No change to how tracking works, what's tracked, or pricing.
- Clearer next step after your first run. The first-run note and the "checking a change" note now point to the 6-step visual setup guide (add your email and turn on a daily schedule, with screenshots), so it's obvious how to make tracking run on its own.
- No more silence after a quiet second run. If your second run finds nothing changed, you now get a short "list verified — tracking is live" confirmation instead of hearing nothing — so you know it's working before the first named change arrives on run 3.
- Tightened the wording of the first-run and verify messages.
- No change to how tracking works, what's tracked, or pricing.
- Clearer free plan vs free bonus. The page now states the always-free limit (1 account, 15 runs a month, up to 2,500 followers) separately from the scheduling bonus (your first 7 days track up to 50,000 followers free), and the setup walkthrough now says up front that it's how you switch that bonus on.
- No change to how tracking works, what's tracked, or pricing.
- Corrected the step numbers on the setup walkthrough screenshots so each image matches its written step, and refreshed the images.
- No change to how tracking works, what's tracked, or pricing.
- The visual setup walkthrough now ends with a "Run now" step (with screenshot) — after you create the daily schedule, open Schedules and press Run now to start tracking today instead of waiting for the first automatic run.
- No change to how tracking works, what's tracked, or pricing.
- The visual setup walkthrough now starts with a one-tap link to open the ready-made task, and the sign-up step says plainly to skip it if you already have an Apify account — so the first-time setup is easier to follow.
- No change to how tracking works, what's tracked, or pricing.
- A clearer next step when an account is private. A private account's follower list can't be read by anyone, so re-running never helps — instead of suggesting a re-run, the message now points you to track a public account, and shows how to put it on a daily email schedule once you switch.
- Email is framed as the way changes reach you — on the input form and in the first-run note. Add it and every new follower or unfollower lands in your inbox; leave it off and changes wait in the Apify Console until you open it.
- The free size-limit message now spells out exactly what's locked (the rest of the list plus ongoing change tracking) and tailors the upgrade step to whether you're already on a daily schedule.
- README: makes it clear up front that tracking works on public accounts only, and adds an FAQ answer for an empty result (almost always a private account). No change to pricing.
- Fewer false "can't reach" results, and clearer ones when they happen. A single-account run now keeps retrying a brief lookup failure on its own for up to ~3 minutes before showing anything — so a momentary glitch is absorbed for you instead of asking you to re-run. And when an account truly can't be tracked, the message now says exactly why: private accounts are reported as private (a follower list can only be read for a public account), and unknown handles as not found — instead of a generic "couldn't be reached."
- Clearer run messages. When an account can't be reached, the message now leads with "this is usually temporary — re-run in a minute" and only suggests checking spelling or visibility if it keeps happening — instead of implying the account is gone on the first try. A successful first run now gives one clear next step — add your email and put it on a daily schedule — tailored to whether you've already set those up, so there are no mixed signals.
- More first runs succeed when an account briefly fails to load. If a target account momentarily can't be looked up, the tracker now double-checks it through a second route before reporting it as unreachable — so a temporary hiccup no longer makes a real, public account look deleted or misspelled. Accounts that really are deleted, private, or mistyped are still reported the same way.
- The free plan now tracks bigger accounts — up to 2,500 followers (was 1,000) and 1,000 following (was 500) per account, so most small and personal accounts are tracked in full for free. Larger accounts still save their most-recent portion at no charge.
- The free scheduled window also tracks the whole following list (up to 1,000) during your first 7 days.
- Clearer prompts to add your email when a schedule is running without one — so changes reach your inbox instead of only landing in the Apify Console.
- No change to paid plans or pricing.
- Setup screenshots are now their own "Visual setup walkthrough" section, with a short text caption next to each image so the steps read clearly even before you look at the picture.
- No change to how tracking works, what's tracked, or pricing.
- Added a step-by-step visual walkthrough to the setup guide — four annotated screenshots show exactly what to click: sign up, fill in the account + email, open the menu, and schedule it (Daily → Create).
- No change to how tracking works, what's tracked, or pricing.
- One-click setup link. "Open the ready-made task" now drops you straight into your own copy of the task (you'll sign up free first if you're new) instead of a separate example page.
- Clearer setup steps that match what you actually see — fill the account + email, then schedule it (don't press Start): scheduling is what starts tracking and opens the free 50,000-follower window.
- No change to how tracking works, what's tracked, or pricing.
- The page now opens with what the tracker does, before pricing — so you understand it before the numbers.
- The free 50,000-follower head start is its own clear callout — and the setup is corrected: schedule it FIRST. Putting it on a daily schedule before the first run is what opens the free window; a manual run first only tracks 1,000 followers. The page, the run messages, and the input form now all say schedule-first.
- Shorter cost section — same prices, less to read.
- The "Email me the changes" field is documented as the high-value setting — it's how changes reach you.
- No change to how tracking works, what's tracked, or pricing.
- The page is reorganized so the essentials come first. What you get free, what it costs, and how to set up email tracking are now near the top — you can size it up without scrolling to the bottom.
- The "Email me the changes" field is now documented in the Input section (it was missing there before).
- Less repetition. Pricing and email setup used to be restated across many sections; now there's one clear place for each, so the page is shorter and easier to scan.
- A tighter "what each run message means" reference, moved down with the other reference material instead of sitting in the middle.
- No change to how tracking works, what's tracked, or pricing.
- Free runs now show up to 3 unfollower names (was 1) — so you see who's actually leaving sooner, not just the count.
- One clear path, everywhere. The page and the run messages now point to the same simple setup: add your email and schedule it daily, and changes come to you automatically — no manual checking.
- Friendlier messages at every step. The first run, the "still verifying" run, quiet runs, and even error runs now tell you the win first and the next step plainly.
- Sharper email subjects so the ones that matter stand out in your inbox.
- No change to how tracking works, what's tracked, or pricing.
- The page now reads as one clear setup, not a feature list. It opens with "Start daily email tracking" — add an account, add your email if you want alerts, run once, then schedule it daily — so the path to automatic tracking is the first thing you see.
- Every run now tells you the single next step. Run messages, emails, and the live status page all show one clear "next action" — schedule it daily, add your email, reach run 3, or upgrade to see every name — instead of a generic free-plan or review prompt.
- Messages adapt to your setup. Once you're on a daily schedule, the copy stops nagging you to schedule and confirms tracking is running; if you haven't added an email yet, it points that out instead.
- Up-to-date scheduling steps. Setup instructions match the current Apify Console: on a task it's ⋯ → Schedule, on the Actor it's ⋯ → Schedule Actor, then Daily → Create.
- No change to what's tracked, how confirmation works, or pricing.
- A clear "How to get your free perks" guide, right up top. Three numbered steps — run it once, put it on a daily schedule (the exact clicks), and your 7-day window tracking accounts up to 50,000 followers opens by itself — so it's obvious how to switch on everything the free plan includes.
- Tighter intro. The opening "free" line is shorter and now links straight down to those steps, instead of cramming every detail into one sentence.
- No functional changes — copy and store listing only.
- The page now leads with what's free. A clear "Free to start" line up top shows the free plan at a glance — 1 account, 15 runs a month, accounts up to 1,000 followers, and the 7-day daily-schedule bonus — so you know what you get before you read further.
- More helpful FAQ. Added plain answers to the questions people actually ask: how to see who unfollowed you, whether there's a free tracker, why a follower tracker works better than the official API, and how it compares to login-based unfollower apps.
- No functional changes — copy and store listing only.
- Over-frequent schedules keep working. A schedule set to run more than once a day now still runs about once a day, instead of stopping after the first run — and a resumed run is no longer mistaken for a too-frequent one.
- Clearer wording when a baseline is reset. If an established account's baseline has to be re-saved (for example, when Instagram changes how much of a list it shows), the message now explains the reset and that tracking resumes on the next run — instead of greeting you with "Run 1 of 3".
- Fewer duplicate emails. The "verifying — 1 more run" email now arrives once per account instead of before every change.
- Heads-up for paid schedules that run too often. If a paid schedule runs more than once a day, the run now adds a friendly note that Daily is plenty and saves cost (it still runs normally).
- Tightened the email-privacy note for accuracy.
- Smarter heads-up when you run a scheduled account by hand. If an account is already on your daily schedule during the free 7-day window, a manual run now reminds you the schedule already tracks it for free — so you don't run (or pay for) it by hand unnecessarily.
- Refined email design. Brought back the richer card layout in a cleaner, more restrained style — a formal header, calmer colors, and tidy result rows. Same clear wording.
- Email design reverted to the previous, cleaner layout. Kept all the clearer wording from 0.0.65 — just the simpler look you preferred.
- Every run tells you exactly how far along you are. Because tracking compares one run to the next, it takes 3 runs to start — so each run now says plainly how many more are needed (run 1 of 3, then 1 more) instead of leaving you wondering why there are no changes yet.
- Schedule it daily and get a free head start. On the free plan, putting it on a daily schedule unlocks a 7-day window that tracks accounts up to 50,000 followers, free. Schedules that run more often than once a day are now flagged with a one-step fix (Instagram lists don't change that fast).
- Your email stays private. The optional email field now spells out that your address is never stored, shared, or seen by us — it's used only to send you the alerts, then discarded.
- Refreshed email design that's clearer and easier to read, with a heads-up "verifying — 1 more run" note on the second run so it never goes quiet.
- See your follower changes at a glance, free. Every run now shows how many people newly followed and unfollowed you — with a preview of who. See every name on a paid plan, and once you upgrade your next run lists them all automatically.
- Friendlier, clearer emails. The welcome/baseline email now explains in plain language what just happened and what's next, and the change emails lead with what matters.
- Faster free runs on large accounts. A large public account is no longer re-read on every free run.
- Shorter scheduling hint. The email-alerts line in the input form now tells you in one line how to schedule it (top-right three dots → Schedule) instead of linking out.
- Clearer email-notifications hint in the input form — it now points you straight to the "Email me the changes" field.
- Clearer alert emails. The change emails are restructured so you can scan them at a glance — a short headline, bullet points for exactly what changed, and only what's relevant (no setup steps once you're already set up). Each "needs attention" email now has a specific subject line, and the sender name is friendlier.
- Email alerts with no setup. Add your address in the new "Email me the changes" field and each run emails you that run's new and lost followers — plus a clear heads-up (with how to fix it) if a run couldn't fully track an account. The first run's email explains how tracking works. No Gmail connection or integration setup needed: enter your email, schedule the task, and the changes come to your inbox.
- Simpler first run and setup. Starting with no accounts is now a quick, free intro run that doesn't fetch anything and doesn't charge you — it just explains what the actor does and the fastest way to begin, instead of running a sample. Setup is streamlined to three steps built on the ready-made "Track who unfollowed you on Instagram" task: add your handle, turn on email, and schedule it — the saved task carries both your handle and the email alerts to every scheduled run.
- Better first run with no setup. Starting with no accounts now tracks a small public demo account, so you immediately see a full follower list in the Output — instead of a truncated slice of a huge account. The in-run message also leads with what you got and spells out, in two steps, exactly how to track your own accounts and put it on a schedule.
- Clearer Store description and README intro that lead with what you get on the very first run — see who follows any public account, then schedule it to catch new followers and unfollowers automatically. No functional changes.
- Simpler setup — removed the "Max Followers to Track" and "Max Following to Track" fields. The tracker now always reads each account's full list (up to 150,000 followers / 1,000 following) so new and unfollowed accounts are detected accurately — reading only part of a list could misreport who joined or left. Two fewer settings to fill in, and your saved schedules and tasks keep working unchanged.
- Large public accounts now deliver value on the free plan instead of being skipped. Before, if you picked an account bigger than the free limit (1,000 followers), the free run skipped it and you got nothing. Now the free plan saves the most-recent 1,000 followers of a larger account to the Output — free, never charged — with a clear note that a paid plan tracks the whole list and confirms new / unfollowed accounts over time.
- Free runs now reset every month. The free plan gives you 15 tracking runs per calendar month (it resets on the 1st), instead of a one-time allowance that ran out for good. A daily schedule keeps working month after month — so you reach the point where confirmed changes start showing (run 3 onward) and keep getting them.
- Clearer free-plan messages. When you reach the monthly free-run limit, the run says so plainly (nothing is charged) and tells you the reset date; a heads-up also appears as you approach the limit.
- Large accounts are now tracked on a paid plan instead of skipped. Before, a followers list over 150,000 (or a following list over 1,000) was skipped and nothing was delivered. Now a paid plan reads the most-recent portion of the list, writes those rows to the Output, and charges only for what was actually read — with a clear note that precise new / lost can't be confirmed above that size, and how to track changes (pick a smaller account, or turn the over-cap list off and keep the other one on). The free plan still skips an over-size list without charge.
- New optional caps: "Max Followers to Track" and "Max Following to Track". Set a lower number to control cost on large accounts — the tracker reads the most-recent portion up to your cap and charges only for what's read. Leave empty to read up to the limit (150,000 followers / 1,000 following). When your cap is below an account's size, the run note says so and points at raising it to confirm precise changes.
- A follower-growth summary on runs that find changes. When a run confirms new or lost followers, the note now leads with the net change (for example, "+9 followers this run: 12 new, 3 unfollowed") and calls out follower milestones as accounts cross them.
- Every run ends with a clear note now. A run that couldn't track anything this time — a temporary read issue, or a free-plan limit — no longer finishes silently: it explains what happened, points at the per-account reasons, and confirms nothing was charged.
- New "Example tasks" section in the README linking ready-to-run example tasks — one-click, pre-configured use cases (track unfollowers, detect new followers, monitor competitor following, watch follower changes, track brand growth) you can run with no setup.
- The run summary now reports the real observed follower count per tracked account — the actual visible/declared number, before the billing floor is applied — so it's available even on a run that detects no changes. Billing, stop reasons, input fields, and output columns are unchanged.
- Clearer scheduling setup — fixed instructions that could leave a schedule turned off. Apify creates a new schedule in a paused state, but the in-app notes and the README told you to click "Save" and stopped there — so a schedule could be set up and then silently never run. Every place that explains scheduling now ends on the step that actually starts it: click Enable. The steps are also simpler and honest about timing (about a minute to set up; emailed alerts are an optional extra step on the schedule's Integrations tab).
- The first run reads less like an empty run. The baseline note now leads with what was captured ("we saved a complete baseline of the current list") and puts the one-step "make it automatic" call to action up front, instead of opening with "there's nothing to compare against yet."
- Run 2 shows what's coming and offers to finish it for you. The "possible changes" note now headlines what was spotted ("3 possible changes spotted — confirming on the next run") and, on a manual run, shows how to put it on a schedule so the next run confirms automatically.
- A "nothing changed" run now reads as reassurance, not a dead end ("Audience stable — no changes since the last run") — and if you're already on a daily schedule, it points out you can track less often to save.
- Tracking now works for accounts whose followers list Instagram limits. Instagram restricts how much of the followers list it shows for some Meta Verified and Business accounts (you can see the note inside the app: "We limit the number of followers shown for certain Meta Verified and Business accounts"). Before, such an account failed every run as "Temporary Unavailable" and suggested re-running — which could never succeed. Now the tracker recognizes the limit, tracks the visible portion of the list (the most recent followers, where new follows and unfollows actually show up), and tells you plainly what's visible versus what Instagram hides. Billing for these accounts reflects the followers actually read, not the larger number the profile declares. Failed reads still cost $0, and if Instagram ever lifts the limit the tracker returns to full-list tracking on its own.
- More patient when Instagram briefly returns a server error on the first account lookup. The account-resolution step now uses the same long retry window the follower-list reads already use — short upstream hiccups no longer abort the run as "Temporary Unavailable". No change to behavior on successful runs; no change to billing.
- One-time review invitation after a run finds confirmed changes. When you run the tracker by hand and it surfaces confirmed new or lost followers — the moment it's clearly done its job — the end-of-run note now ends with a short line inviting a review on the Store page. It shows at most once per user, and never on scheduled, demo, or no-change runs, so it never becomes noise.
- Finished the "every / later / next run lists changes" sweep started in 0.0.39 — the baseline
USER_MESSAGE title now matches the body. 0.0.39's grep was too narrow ("every run / each run"), so seven equivalent wordings were missed — the baseline message title still read "Baseline saved — changes start from the next run" (the body had already been fixed to "From your 3rd run onward"), plus the Output sample header ("Every later run → just the changes"), two run-log console lines, the "What you'll see" action cells, and the pricing table's Account Checked tail. All now match the single framing — confirmed new / lost rows from run 3 onward. No behavior change.
- Fixed the "every run lists new and lost follows" inaccuracy across the Store card, input form, README opener, README email section, FAQ, and baseline-run welcome message. None of those surfaces had the run-2 caveat — user reads them, baselines, runs again, gets an empty Output with "N pending" and thinks the actor's broken. Now every opener-style claim explicitly says "from run 3 onward" so the timing matches what
🔧 How it works and the live status page have always said. No behavior change.
- Simplified README and Input Schema — removed duplicate language and stopped repeating the run 1 / run 2 / run 3 mechanics in every section. The input form no longer repeats the actor's Store-page description; the "🎯 Accounts to Track" header is down to three bullets (confirmed changes from run 3, public accounts only, free-plan limits). The README's eight sections that re-explained the two-run check inline now all link to the single canonical explanation in
🔧 How it works — opener, first-run callout, Quick start, "What you'll see" table, email setup callout, and pricing paragraph each lost a redundant inline restatement. No behavior change.
- Run 2 now previews the candidate usernames it's holding for confirmation. The
USER_MESSAGE lists them by name (e.g. +3 candidate new: @alice, @bob, @charlie), and the live status page swaps the all-zero stat row for a "Verifying candidates" panel showing the same preview while the run is in progress. The two-run noise filter is unchanged — anything that doesn't reappear on the next run is still dropped — this is a pure UX change so a verifying run doesn't read like an empty run.
- Honest run-count throughout — confirmed
new / lost changes start from run 3, not run 2. Older builds said "changes start from the second run", but the two-run noise filter actually holds run 2's candidate changes one more run before emitting, so run 2's Output is always empty (with a "N pending" note in the run summary) and the first confirmed rows land at run 3. Every place that referenced "run 2" or "the second run" was rewritten across the Input tab, README, and email setup notes. The 🔧 How it works section now leads with a run-by-run table so the timing is obvious in one glance — Run 1 saves the baseline, Run 2 detects and holds, Run 3 reports.
- Cleaner Input tab — the "🎯 Accounts to Track" header is now a 3-bullet quick-start instead of a 6-bullet block. The top-of-form description and the section header both trimmed: the form now leads with what the actor does and the three things every first-touch user needs to know (first run = baseline, public accounts only, free-plan limits). Per-account ceilings and the two-run noise filter still live in the field descriptions, the runtime Storage-tab note, and the README — just no longer doubled up on the form.
- README free-plan callout now notes when confirmed changes start. The free-plan note used to mention only "5 tracking runs to try it out". It now adds one sentence — that because of the two-run noise filter, confirmed changes start from the third run — so a free-trial user knows in advance which of the 5 runs will report confirmed changes.
- Friendlier handling when both Track Followers and Track Following are off. Submitting a run with both list toggles turned off used to end the run with a generic error. The run now finishes successfully with a short note in the Storage tab — explaining that the input has nothing to track, and what to fix — instead of a failed-run banner. No accounts are checked and nothing is charged either way.
- Storage tab description now reads in plain language. The Storage tab in Apify Console used to describe the snapshot store with developer jargon and a raw internal record-key pattern. It now explains the same thing in one sentence — that each run saves a long-lived snapshot of the tracked account's lists so the next run can compare against the previous one — without the internal detail.
- "What you'll see after each run" table covers the following-only first-run case explicitly. The table already documented the followers-only first run (lists every current follower as
tracked rows + saves a baseline) but didn't have a dedicated row for the alternate case — only Track Following enabled on a first run. The Output is empty by design (following gets only new / lost changes from run 2 onward), and the table now spells that out so a user starting in following-only mode doesn't think the first run silently broke.
- Pricing intro now glosses "Pay Per Event" in plain language. The pricing section's first sentence used to say "The actor uses Apify's Pay Per Event model" and assume you knew what that meant. It now adds a one-clause gloss — "you pay only when the actor actually does the work it's billed for" — so a first-time reader doesn't have to look up the term.
- Input form's free-plan bullet is no longer misreadable as "5 different accounts". The bullet used to say "Free plan — 1 account, 5 runs, up to 1,000 followers / 500 following," which could be parsed as "5 accounts × 1 each." It now says "track 1 account across 5 runs total."
- README hook says "Instagram's internal user ID" instead of "stable account IDs". The opening sentence's account-matching guarantee is a key trust signal — but "stable account IDs" reads as jargon. The plainer phrasing makes the same point a fresh reader will grasp on the first read.
- OUTPUT table column header relabeled from "Change" to "Change Type". When you open a finished run's OUTPUT tab, the column showing
tracked / new / lost was titled just "Change", which is ambiguous (change of what?). The header is now "Change Type" — matching the field's underlying change_type name and the dataset schema's own title.
- Internal-only build (analytics field plumbing). No user-facing changes shipped — the README/INPUT_SCHEMA polish intended for this build was deferred to 0.0.33.
- README "📧 Get the changes emailed to you" section rewritten. It used to say "save these settings as a task, add the Gmail integration to the task, then put the task on a schedule" — three places to set up. The end-of-run notes already moved to a simpler "one Schedule does both" flow in 0.0.30; the README now matches: open the Schedules tab → Create new schedule (paste accounts, keep the daily preset) → on its Integrations tab turn on Gmail → Save. Same three clicks, one screen.
- "Two-run confirmation" explanation no longer reads like a delay confession. It used to end with "a real follow / unfollow lands in the Output one run after it actually happened" — which sounded like a bug. The wording now leads with what the check does for you (filters Instagram's list-ordering noise so you never see ghost follows / unfollows) and only then mentions the one-run wait.
- Input form now spells out "Public accounts only". The 🎯 Accounts to Track section's bullet list now includes a one-line bullet saying the followers / following lists have to be visible to anyone — and reminds users tracking their own account to turn off Instagram's Private Account switch. Previously this was only stated once in the top-of-form description.
- End-of-run messages now spell out the 3-click Schedule setup. Every place a message suggests adding this Actor to an Apify Schedule (the paid-plan welcome, the baseline-saved note, the no-changes note, the test-run hint) now shows the literal 3 clicks: open the Schedules tab → "Create new schedule" → paste your accounts → Save. Before, the link dropped you on an empty Schedules tab and the next step was on you to figure out.
- The "get your changes emailed" tip is now a single Schedule flow. Previously it told you to save a task, then turn on Gmail on the task, then schedule the task — three separate places. The note now points to one Schedule that does both: pick a daily schedule, enable Gmail on it, Save.
- Free-trial messages now include a one-click upgrade link. The "last free run coming up" and "free trial used up" notes used to tell you a paid plan is needed but left you to find the billing page — they now end with a direct link to it.
- End-of-run messages now link straight to the Schedules tab. Every place a message suggests adding this Actor to an Apify Schedule (the paid-plan welcome, the baseline-saved note, the no-changes note, the test-run hint) now ends with a clickable link that opens this Actor's Schedules tab — one click instead of hunting for it.
- Runs already on a Schedule no longer get nagged to set one up. When a run was triggered by an Apify Schedule, the end-of-run message acknowledges that and skips the "tip: add this Actor to a Schedule" line. The two-run-confirmation pending note also rewords from "run it once more or wait for the next scheduled run" to "the next scheduled run will confirm it — no action needed on your side" so the next step is obvious.
- Clearer messages when a run can't produce changes. A run that finishes without any new / lost rows now always says why. The previously silent case — a target account's followers list is over the 150,000 cap or its following list is over the 1,000 cap — now ends with a clear "Account too large to track" note plus what to do next (track the other list, or pick a smaller account). The unread list is not charged.
- Free-plan trial heads-up. On the run before the free trial runs out, the run notes how many free runs are left and what a paid plan unlocks — no more abrupt "trial used up" surprise.
- Onboarding messages no longer overshadow run results. The paid-plan welcome and the "how is it going?" check-in now step aside on any run that has something specific to report (a saved baseline, detected changes, an over-cap target, no-changes-confirmed, …) — so a Run 3 with a real baseline shows "Baseline saved", not the unrelated check-in.
- Baseline run says what was skipped, too. When the first run saves a baseline for an account but its other list was over the cap, the baseline message now lists that skipped list directly, instead of leaving it silently dropped.
- Input form: "How it works in 30 seconds". The Input tab now opens with a short explainer — first run is a baseline, run 2 onward lists changes, each change confirmed across two runs to filter list-ordering noise, with per-list size caps stated up front. The Track Followers and Track Following fields now state their caps and the followers-vs-following baseline asymmetry directly.
- README restructured. A new "How it works" section now covers the baseline + two-run confirmation + followers / following asymmetry + caps in one place at the top, instead of being buried in the FAQ. A new "What you'll see after each run" table maps every end-of-run message to what to do next.
- Large follower / following lists now finish reliably. Reading a big account's full list takes many sequential pages, and a single page occasionally hiccups partway through (a brief rate-limit or a network blip). Before, one such hiccup could throw away the whole read — so the very first run on a large account could fail near the end and never establish its baseline. The run now waits and retries that page before giving up, so a large account's first run completes and tracking starts as expected. Nothing is charged for a list that still can't be finished.
- Clearer message when a list can't be finished. If an account is reachable but its follower / following list can't be read in full on a given run — a temporary rate-limit, or a page that times out partway through a long list — the run now says so directly ("couldn't finish reading, please re-run") and the unread list isn't charged. Previously a run like this could be misreported as if the account didn't exist. A username that truly returns "not found" (deleted, renamed, or misspelled) still gets the existing 404 message, so the two situations are no longer confused with each other.
- Every run now ends with a clear status message — a run that finds no follower changes no longer finishes blank. It either tells you that a possible change was detected and will be confirmed on the next run (a change is reported only after it shows up on two runs in a row, which filters out Instagram's list-ordering noise), or confirms that nothing changed since the last run. The run summary also now includes a
pending count.
- Added the Instagram Profile MCP Server (connect Claude / Cursor / ChatGPT to live Instagram data via MCP tools) to the Related Actors section. No change to input, output, behaviour, or pricing.
- Following-list tracking is now surfaced throughout the docs — the cost section states that tracking the following list is included at no extra charge (the bill is follower-count based; a following-only run is the flat $0.30 minimum), the Output sample now shows a
following change row, and several sections and FAQ entries mention following alongside followers.
- Output sample now shows two concrete examples — a baseline
tracked row and a later-run new / lost change set — instead of one sample plus a written description.
- Documentation fixes — corrected the Output description (one row per follower / change, not one item per account) and added separate baseline vs. later-run output examples; fixed the free-plan follower-cap wording; clarified change-confirmation timing; documented an additional run storage record.
- Simplified the input form description — the form now shows just the essentials (schedule, baseline, size limits, free plan). Full pricing and size details live in the README.
- Pricing is now shown and billed per 1,000 followers (previously per 10,000-follower block) — the same rate, now billed for your account's exact follower count, with a 10,000-follower minimum. Most accounts pay the same; the Console price now reads clearly as $0.03 per 1,000 followers instead of a per-block figure. Round sizes are unchanged (10k = $0.30, 50k = $1.50, 150k = $4.50).
- The first run now lists all of an account's current followers in the Output as it reads them, in batches — so a large account visibly fills up instead of finishing on an empty screen. These rows are marked
tracked; the new / lost change rows still start from the second run onward.
- Live progress in the log and on the status page. A long run now logs a running follower count with elapsed time (e.g. "1,000 collected so far… (1m 12s)") and an up-front time estimate, and the live status page shows the account currently being read and how many followers have been collected.
- Now tracks much larger accounts — up to 150,000 followers (was 10,000). A very large account is read page by page, so its run can take up to ~1 hour.
- Pricing now scales with account size. You're billed per 10,000 followers: a small account still costs $0.30 per run, a 50,000-follower account $1.50, a 150,000-follower account $4.50. The first run for an account is a one-time Baseline Snapshot that records the starting list (no rows yet); every later run reports new / lost — both priced the same per 10,000 followers, because each run re-reads the whole list.
- More reliable change tracking on big lists. If a list comes back incomplete (a read error, or far fewer accounts than last time), the actor now keeps the previous snapshot and reports no changes for that list instead of showing false unfollows — and doesn't charge for it.
- Following lists are still tracked up to 1,000 and included at no extra charge.
- Documentation: corrected an internal storage-schema note so it matches the snapshot key format the actor actually uses.
- Documentation cleanup: removed a redundant "Tips & Best Practices" section from the README to keep the page focused.
- Runs now finish and exit right away instead of pausing on a "completed" screen at the end.
- The run's Output tab now shows a Run Summary (accounts checked, new / lost counts, baselines) even on runs that find no changes — so it's no longer blank on a first/baseline or quiet run. The Changes table still appears whenever there are follow/unfollow changes.
- Fixed an issue that could mark a run as failed at the very end, after it had already finished checking accounts. Runs now complete cleanly.
- Free plan now tracks 1 account for the whole trial (across its 5 runs) instead of 1 account per run — which matches what the trial is for: watching one account's follower changes over time. Paid plans are unchanged (multiple accounts, larger lists, no run limit).
- The "📧 Get the changes emailed to you" link in the input form now opens the setup guide directly.
- Slimmed the input form: the free-plan summary now lives in the README's Free vs paid plan section instead of repeating in the form.
- The input form now links straight to the "📧 Get the changes emailed to you" setup guide, so it's one click to put the actor on a schedule and have each run's new / lost followers emailed to you.
- Free plan is now a focused trial: 1 account per run and 5 tracking runs to try the actor, then a paid plan is required. Paid plans are unchanged (multiple accounts per run, no run limit).
- Free plan tracks accounts up to 1,000 followers / 500 following; larger accounts need a paid plan (skipped on free, never charged). Paid plans keep the full 10,000 / 1,000 ceilings.
- Fixed an outdated "raise the Max … to Track field" message shown for skipped over-size accounts — that field was removed in 0.0.7.
- Readability: the Accounts to Track section description is now a quick-scan bullet list (schedule, baseline, size limits, public-only) instead of one long paragraph. No change to how the actor runs.
- Simpler setup: removed the Max Followers to Track and Max Following to Track fields. The actor already checks each account's list size automatically and skips lists too large to diff reliably (over 10,000 followers or 1,000 following) without charging for them — same protection, two fewer settings to fill in.
- The Accounts to Track section now states the limits up front: public accounts only, lists up to 10,000 followers / 1,000 following, and the first run per account is a baseline.
- Run notes now point you to email notifications: the first-run message and a new "changes found" note suggest putting the actor on a schedule with the built-in Gmail integration so each run's new / lost followers land in your inbox automatically (setup is in the README's "📧 Get the changes emailed to you" section).
- Clearer cost explanation: the price is flat $0.30 per account regardless of follower count, with a schedule → monthly-cost table (cost scales with run frequency, not list size).
- New guide: get each run's new/lost followers emailed to you via Apify's built-in Gmail integration on a scheduled task — full point-and-click setup.
- Pricing updated to $0.30 per account checked per run.
- Per-list size caps: separate Max Followers to Track (up to 10,000) and Max Following to Track (up to 1,000), replacing the single combined cap — the following list is read in smaller pages, so its ceiling is lower.
- A list larger than its cap is now skipped up front and not charged — previously such lists were read and billed without producing reliable change tracking. If only one list is over its cap, the other is still tracked.
- More reliable change detection on large lists: a follow/unfollow is now confirmed across two consecutive runs before it's reported, which removes the occasional false change that could appear while reading a big, actively-changing list. A real change shows up on the next run after it happens.
Initial release.
- Tracks new and lost followers and following for public Instagram accounts over time.
- Compares each run against the previous run's snapshot and outputs one row per change (
new / lost), per list (followers / following), with a detection timestamp.
- Snapshots persist between runs in a named key-value store, so tracking accrues when the actor runs on a schedule.
- Changes are matched on stable account IDs, so username changes don't produce false unfollows.
- First run per account establishes a baseline (no rows); changes start from the second run.
- Single Pay Per Event charge: Account Checked ($0.10 per account per run). Unreachable accounts are not charged.
- Free plan: up to 3 accounts per run.