Scrape Instagram influencers by hashtag and keyword search — influencer finder to find creators, coaches and brands in any niche, for influencer discovery and creator search. Filter by followers and engagement rate; every profile returns emails, phone, bio links and Reels views for lead generation.
AI Search: a profile the search read in the last 7 days (was 24 hours) — its profile, posts, Reels and "About this account" — is reused instead of being read again. The data is at most a week old; nothing else in the check changes.
AI Search, paid runs: the grouping of a kind of search that keeps landing outside your follower range (added in 0.0.187 for half of the runs) now applies to four runs in five.
[0.0.190] - 2026-10-24
Changed
AI Search with a median views, recent Reel or views-to-followers filter: an account whose Reels already fail the filter is turned down before its posts are read. It is the same rule on the same Reels as before, and such a turn-down stays free.
[0.0.189] - 2026-10-24
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.188. Saved tasks continue to work
identically.
[0.0.188] - 2026-10-24
Changed
AI Search: a profile the search read in the last 24 hours — its profile, posts, Reels and "About this account" — is reused instead of being read again, for every run. The data is at most a day old; nothing else in the check changes.
[0.0.187] - 2026-10-24
Changed
AI Search with a required country: an account that our saved profile data already places outside your country — Instagram's "About this account" says it is based elsewhere, and nothing on the profile (city, address, phone, links, the place of the video it was found by) points to your country — is now turned down without reading it again. It is the same rule the search applies after reading a profile, and such a turn-down stays free.
AI Search, paid runs: in half of the runs, a whole kind of search (all its hashtags, all its video searches, all related-account lists) whose accounts keep landing outside your follower range is moved behind the other searches after 50 of its accounts, the way single searches already were. Nothing else in the check changes.
[0.0.186] - 2026-10-24
Changed
The Store title is now «Instagram Influencer Search, Discovery — Instagram Search Users», and the README heading matches it. Input, output and price are unchanged.
[0.0.185] - 2026-10-24
Changed
The Store title is now «Instagram Influencer Search, Discovery — Search Users, Emails», and the README heading matches it. Input, output and price are unchanged.
[0.0.184] - 2026-10-23
Changed
AI Search with a median views, engagement rate, recent Reel or last post filter: in half of the runs, a candidate whose posts we saw in the last 3 days and which is clearly below your filter (median views or engagement more than a third under it, or no Reel or post for 7 days past your limit) is now turned down without reading the profile again, the way saved data already turns down follower counts, websites and missing emails. Such candidates were always turned down free of charge; now the run does not spend time on them and moves on to the next candidates sooner. The reason says it came from saved posts. The other half of the runs work as before, so the two can be compared. Price, input and output are unchanged.
[0.0.183] - 2026-10-23
Changed
AI Search gets its own price from November 9, 2026: each profile the AI checks against your description is an AI check, $0.028–$0.04 depending on your Apify plan (Free $0.04 · Bronze $0.035 · Silver $0.03 · Gold and above $0.028). Until then an AI check stays $0.01. Keyword search stays $0.01 per profile, and profiles turned down before the AI check stay free. Run messages, and the number of checks your maximum cost (maxBudgetUsd) allows, now use the price of your plan.
[0.0.182] - 2026-10-23
Changed
AI Search, paid runs: half of the runs now check "Profile match" candidates (accounts from our saved profile data that fit the description) before the other searches, and read up to ten pages of them instead of five, for as long as they match at least as often as the rest of the run. They are still read live and checked exactly like any other candidate. In the last days these candidates matched about three times as often as search results, yet most runs ended before checking them. The other half of the runs work as before, so the two can be compared. Price, input and output are unchanged.
[0.0.181] - 2026-10-21
Maintenance
Recent posts now have a second way to be read if the usual one is ever refused, so profiles keep their post counts, dates and engagement figures. Results, columns and price are unchanged.
[0.0.180] - 2026-10-21
Changed
AI Search: with 10,000 or more accounts in the exclusion list (excludeAccounts), a run stops after 40 AI checks without a match instead of about 67, under the same conditions as the existing early stop (never while it has a possible match, and only after its re-planned searches had their turn). A list that long usually means the request has been run many times and few new accounts are left, so the run stops before spending more on profiles that do not match. The message says how many search results were already on the list and suggests changing the description, niche, location or follower range.
[0.0.179] - 2026-10-21
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.178. Saved tasks continue to work
identically.
[0.0.178] - 2026-10-21
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.177. Saved tasks continue to work
identically.
[0.0.177] - 2026-10-21
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.176. Saved tasks continue to work
identically.
[0.0.176] - 2026-10-21
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.175. Saved tasks continue to work
identically.
[0.0.175] - 2026-10-20
Changed
AI Search: several signs a description lists for one requirement ("tags hotels, uses #işbirliği or #collab, #reklam or #ad") become one required condition that any of them proves, instead of a separate required condition each; a list of alternative kinds of accounts stays one required condition. Separate conditions only when the description says each is required.
AI Search: a request for a profession or service (coaches, trainers, dentists, photographers…) no longer adds "not a brand, store, clinic or organization page" unless the description or the form asks for individuals only. On 84 real requests the unrequested exclusion fell from 9 of 30 plans to 1.
Fixed
AI Search: a plan that keeps listing a requirement also as a preference ("Nigerian brands" after "biased toward Nigeria") no longer stops the run after three attempts: the last attempt keeps the requirement, drops the preference that restates it and says so in a notice.
[0.0.175] - 2026-10-20
Changed
A free run with filters now returns up to 5 matching accounts instead of judging only the first 5 it found. With a filter on, the free plan checks up to 25 candidates and stops at 5 matches or 20 accounts your filters rejected, whichever comes first. Before, the free plan took the first 5 accounts the search found and your filters judged only those, so a strict filter often emptied the run. Rejected accounts are charged the same way as on a paid plan; a run without filters still analyzes 5.
The free-plan note is now also in the results. When a free-plan limit stops a run that found accounts, the results end with a row (Source "Free plan") that says which limit applied and how to lift it in Apify Console. AI Search does the same: when the free plan's 5 AI checks stop the search, the results end with a "free plan limit" row. This matters most when an AI agent runs the actor, because the results are what it reads.
[0.0.173] - 2026-10-20
Fixed
AI Search: "Filter for influencers" no longer turns down a profile that has no category (a personal account has none; most of the filter's rejections in AI Search were such profiles), and Instagram's own creator categories count as influencer categories there ("Reel creator", "Creator", "Podcast", "Author", "Film Editor", "Cinematographer", "Voice Actor", "Creative Director", "Photography Videography", "Videographer"). The classic modes are unchanged.
[0.0.172] - 2026-10-20
Fixed
AI Search: size words in Turkish ("ünlü", "popüler", not "ünlü olmayan"), Korean ("유명한", "인기 있는") and Persian ("معروف", "مشهور") read as 10,000+ followers, and Russian size words before a compound noun ("начинающие фитнес-блогеры", "крупные бьюти-блогеры") are read too.
[0.0.171] - 2026-10-20
Fixed
AI Search: a condition that lists services as examples of a link ("a link in bio (Linktree, Beacons or similar)", "such as Linktree") does not require one of those services (0.0.170 would have turned down every other link).
[0.0.170] - 2026-10-20
Changed
AI Search: a required link to a service named without its domain ("a Kiwify link in bio", "uses a Linktree", "a Stan Store", "a Calendly booking link", "a Telegram or WhatsApp link") is checked for free on the profile and its link-in-bio page before the paid check, as a link with its domain already was. Services on fixed hosts only (Kiwify, Hotmart, Eduzz, Monetizze, Linktree, Stan Store, Beacons, Calendly, Patreon, Etsy, Gumroad, Substack, Ko-fi, Buy Me a Coffee, WhatsApp, Telegram, Discord); "WhatsApp in bio" without the word link is left to the check, since it is often a number.
AI Search: a condition naming several links with "or" is met by any one of them; before, every named link was required.
[0.0.169] - 2026-10-20
Fixed
AI Search: a follower range written next to "following" or with no follower word ("account following between 100,000 and 130,000") is kept again; 0.0.167 dropped it as a range the description never named. A planned range is now dropped only when the description has no number that could be a follower count (prices, view counts and years do not count).
[0.0.168] - 2026-10-20
Changed
AI Search runs on Claude by default (AI_MODEL_PROFILE=haiku): checks on claude-haiku-5-5, plan and second review on claude-sonnet-5-5, each falling back to Gemini on an outage, a refusal or a billing error. Golden set (TEST briefs): precision 93–97% / recall 78–81% at about $0.0028 a check, against Gemini flash's 93.4% / 79.2%; flash has timed out or answered 503 for most checks since 16.10. aiModelProfile: "anthropic" runs checks on Sonnet (96.8–100% / 83.3%); aiModelProfile: "gemini" keeps Gemini.
AI Search: a plan from Claude that the code refuses as a conflict (an age it cannot verify, a city written twice) is planned once more on the next model instead of ending the run. Output instructions, repeated places and an excluded example account are never conflicts.
AI Search: Claude calls have their own timeout (checks 30–45 s; the 20 s check timeout catches a hung Gemini call).
[0.0.167] - 2026-10-20
Added
AI models from a second vendor: Claude (Anthropic) can run the AI Search plan, checks, refinement and second review (aiModelProfile: "anthropic", or the AI_MODEL_PROFILE environment variable), with its own check and review instructions; an outage, a refusal or a billing error hands the call to Gemini. Off by default.
AI Search: a run that is clearly not finding matches stops early with stop reason hopeless, instead of spending the rest of its checks: after about 67 AI checks without a match (about 128 with one), and only once its own re-planned searches have been tried and while it has no possible match. Its message names the requirement most checked profiles failed and what to change (for example "Prefer" instead of "Only" for the location, a wider follower range, or one or two example accounts). In past runs this rule stopped only runs that ended with no match.
RUN_SUMMARY.aiAnalysisUnconfirmedMaxUsd and aiAnalysisReservedUsd: AI calls that got no answer (a timeout or a dropped connection) or an answer without usage are reported apart, as the most they can have cost. The AI spending allowance still counts them in full.
Changed
AI Search: in a search that requires a country, Instagram's "About this account" panel is read before the posts, and an account it places in another country, with nothing of its own (city or address field, the tag of the video it was found by, phone prefix, website, currency or link-in-bio page) in a country you asked for, is turned down free without reading its posts and Reels. Location tags on its posts no longer keep such an account; in past runs that cost about 3–4 matches in 1,000.
AI Search: with analyzeQuality: false, the separate Reels read is skipped unless a Reels filter (lastReelDays, median views, views/followers ratio) or a requirement about Reels or videos needs it; the Reels columns then come from the Reels among the latest posts. With analyzeQuality left out or true nothing changes. Every AI result row now has the Reels Count, Median Views, Last Reel and Views/Followers Ratio columns, empty when there is nothing to show.
AI Search: candidates that their search result already rules out are turned down free without reading the profile: a verified account whose follower count, as account search shows it, is more than 10% outside your follower range; an account whose type, as video search or a saved profile up to 7 days old shows it, does not match Account type. Verified accounts without a count are read after the others when the follower range ends at 50,000 or below.
AI Search: fewer profiles are read at once when one or two matches are missing, so fewer reads are paid for and then not needed when the goal is reached.
AI Search: the run's progress is saved to the key-value store less often — the full checkpoint at most every 5 seconds (and at once on migration, abort and the end of the run), the search plan when it changes, and status.html once while the live status page serves the run. Every completed check is still saved before it is charged, so a resumed run never charges a check twice.
RUN_SUMMARY.aiAnalysisUsd is now the AI analysis spend confirmed by the answers; before, it also included the reservation kept by calls that got no answer.
Fixed
AI Search: offers the AI found are no longer turned to "unconfirmed" when a post says "taking on more spots", "a few slots left", "grab … while stock lasts", "link in bio", "👉", "Marca a tua aula…", "Запрошую…", prices in South African rand ("R70 for a pack of 20", "•R1700") or only a price ("₦35,000"), or quotes a line of a post whose post carries the call to book or buy. Zoom counts as online delivery.
AI Search: the account's own website counts as its online store for creator accounts and accounts without a shop category (such as "Entrepreneur") when the profile says shop or the site's name does, and when a post sends people to it ("👉Go to ROBUST-BEAR.COM"). Marketplaces, link pages and affiliate storefronts still never count.
AI Search: a required country is now confirmed by " " at the start of the name ("Dallas Nutritionist Health Coach"), places in scripts without capital letters that the account's own location tags or address label name, labelled lists of offices or branches, street addresses in any case, a service region ("for the Saratoga Springs region"), and, in the account's own posts, its walk-in address, a 📍 place its profile or half its posts repeat, or a business naming itself with the place ("…in Dubai with ALKA Rent A Car"). A single 📍 on one post, or a post when Instagram's "About this account" places the account elsewhere, still does not.
AI Search: "No website" is no longer confirmed when the account's posts advertise its own site ("Shop online www.intra-box.co.za "); the requirement is then turned down. Marketplaces, link pages and other businesses' sites in posts do not count.
AI Search: offers written in Korean, Japanese or Chinese now confirm a required sale or service: group buys ("공구", "#…공구"), "판매", "구매", "예약", "予約", "販売", "课程", "报名", and prices in ₩ or 원, 円 and 元. Before, profiles whose posts said "…공구 내일오전 9시 종료!" or "…팔고있어요" stayed unconfirmed even when the AI had found the offer. A bare "오픈" (open) or "링크" (link) is still not an offer.
AI Search: when the AI's answer for one profile cannot be verified (a quote that is not in the profile, or an answer that is cut short, invalid or blocked after its retries), that profile is listed as unconfirmed, is not charged, and the run goes on. Before, it stopped the whole run. A run still stops when the AI fails on four batches in a row.
AI Search: when the description and the form disagree on activity, posting frequency, location mode or contact, the form's answer is used and the run says so, as for the follower range since 0.0.157. A disagreement the planner says it settled no longer ends the run. Before, "Active within 60 days" with the form's Activity at 90 days ended the run with no checks.
AI Search: "email или телефон", "желательно email", prices in грн and zł, and two-character country names such as 美国 in a preference are now read; words in Cyrillic or Chinese next to a word boundary never matched.
AI Search: "Exclude brands and stores", "Not an agency", "Exclude businesses" and "No companies" now keep brands out of the saved-profile match and stop the local business list, as the singular forms did.
AI Search: Reels or videos asked for in other languages ("vídeos", "рилс", "릴스", "영상") now take the form's Activity as their window, and a period written in those languages ("за 30 дней", "últimos 30 días", "30일") is kept.
AI Search: famous, well-known, popular or influential accounts are searched with 10,000+ followers, and up-and-coming or small creators with under 10,000, when the description gives no number; the run says how it read the word, and Account size changes it. A follower range that neither the description nor the form names is no longer applied: "small local businesses" is the size of the business, not of its audience.
AI Search: the saved-profile match has 25 seconds to answer (was 10, and most of its answers took longer) and no longer holds the first searches back: an answer that arrives later joins the queue then. A run whose searches found no one is no longer reported as "data unavailable" because the saved-profile match or the local business list failed.
[0.0.166] - 2026-10-19
Changed
AI Search: in half of the runs, the saved-profile match no longer proposes saved accounts whose public profile clearly contradicts the description — a store or brand when people are asked for (or the other way round), or the other gender when the description requires one. Accounts whose profile does not say are still proposed, and every candidate is checked as before. The two halves are compared before this becomes the default.
[0.0.165] - 2026-10-19
Changed
AI Search: when the main AI model is overloaded, a run goes back to it a few minutes later instead of checking every remaining profile with the backup model. On the backup model about one match in ten is missed.
AI Search: match reasons are shorter (one sentence with the shortest proof), and the AI check reads the first 400 characters of each post caption.
[0.0.164] - 2026-10-19
Added
AI Search: once a run has confirmed two matches, it also looks among saved accounts for the ones most similar to those matches, and once more after three further matches. Each is read and checked like any other candidate. In past runs, such accounts that were then checked were confirmed more than twice as often as other candidates checked after the first matches.
AI Search: the run's message and RUN_SUMMARY.appliedFilters now name the requirements every profile was checked for, the follower range and other filters, the preferences that only rank results, and anything in your description that no public profile text can show (for example the audience's age), which is used only to rank.
Fixed
The 0.0.160 entry said that only verified matches are charged. Every profile the AI analyzes is charged, including rejected ones, as the README describes; that entry is corrected.
[0.0.163] - 2026-10-17
Changed
AI Search: descriptions that ask for businesses without a website no longer search the local business list (its businesses nearly always show a website on their profile). Only the local business list is asked a second time when it answers slowly; the saved-profile match is asked only once, as before 0.0.162, so a slow answer does not delay the start of a run twice.
[0.0.162] - 2026-10-17
Fixed
AI Search: when the local business list (0.0.160) or the saved-profile match does not answer in time at the start of a run, it is asked once more instead of being skipped for the whole run, and the local business list no longer holds the first searches back for more than a few seconds. A city named only in a planned search ("commercial roofing") no longer narrows the list to a small town of that name; such briefs get businesses from the whole country.
[0.0.161] - 2026-10-17
Fixed
AI Search: the local business candidates added in 0.0.160 now come only from businesses of the kind the description names (yoga studios, roofers, coffee roasters), not from any business sharing a common word such as "studio"; when the description requires a public email or no website, businesses that already show one (or none) come first. A state or region written with the city ("Portland, Oregon", "Atlanta, GA") now picks that city, and a state alone searches its largest cities. The list now also answers reliably when many searches run at once.
[0.0.160] - 2026-10-17
Added
AI Search: a description that asks for a kind of local business in a city ("yoga studios in Atlanta", "barbershops in Munich") now also searches a list of local businesses that publish their Instagram account, near that city, before the Instagram searches. Each candidate is read and checked exactly like any other, and charged like any other AI check (corrected in 0.0.164: this entry first said only verified matches are charged). Descriptions that ask for creators or exclude businesses are not affected.
[0.0.159] - 2026-10-17
Fixed
AI Search: a business account with no category set now also proves "its own online store" with its own website (since 0.0.157 this needed a shop, brand or product category).
[0.0.158] - 2026-10-17
Fixed
AI Search: an exclusion of sellers who sell only on marketplaces is now passed by the account's own website. Before, a brand whose only proof was its own site link was not confirmed, and was lost as a match.
[0.0.157] - 2026-10-17
Fixed
AI Search: example accounts that are also listed in Exclude accounts are now used as examples to find similar accounts (they are still never returned). Before, such examples were skipped entirely, and the search started without them. The run says when this applies.
AI Search: a median Reel views range written in the description ("median Reel views 1,500–10,000") is now checked from each account's latest Reels before the AI check, free, with both its lower and its upper bound. Before, the upper bound was not applied, and accounts far above the range could be returned. In the API, maxMedianViews sets the upper bound directly.
AI Search: a run that had already found all the matches it was asked for no longer ends as failed when a later AI check could not be completed; it ends as a successful run with its matches. A run stopped early by an AI service outage now reports what it found, with the reason.
AI Search: when the AI service is overloaded before the search can start, the message now says the search could not start, that nothing was charged and, on the free plan, that the run does not count toward the monthly free runs. A third AI model now takes over planning when the first two are unavailable.
AI Search: Min/Max Followers set in the input now settle the account size when the description or Account size disagree with them, instead of ending the run with a conflict. Account size "nano" means under 1,000 followers.
AI Search: on the free plan, a run stopped at its 5 AI checks no longer advises raising a limit that the free plan does not allow.
AI Search: a business account with a shop, brand or product category now proves "its own online store" with its own website; a creator's affiliate collection or storefront link no longer counts as a shop of their own. Order and delivery words in Arabic now count as an offer to buy.
Changed
AI Search: profiles that cannot meet the request are now turned down free, before the AI check: when "A public email or phone number" is required and the profile shows neither (after its link page is read for one), when the description requires a website and none is listed, and when the profile names itself by a trade the description excludes ("Exclude barbers") in its handle, name or a short bio line. A required email or phone is now confirmed by the profile's own contact details, a phone included.
AI Search: a profile is no longer kept for a required country by a location tag that lies where two countries' outlines overlap and the account's own About panel names the other one, by one tag against many elsewhere, or by a country merely named in the text when the account's city and its About panel are both in another country.
AI Search: "talking-head" and "speaks to camera" requirements are treated like "on camera": they cannot be seen in public text and become preferences instead of turning down every profile. When the description asks for Reels or videos without a period of its own, the Reels window follows the activity period chosen in the form.
AI Search: when one AI batch confirms more matches than are still needed, the best-scored ones are kept.
AI Search: searches run for different end customers of one Apify account (named in the input's meta) keep separate lists of recently checked profiles.
[0.0.156] - 2026-10-16
Fixed
AI Search: when the AI service is briefly overloaded while profiles are being checked, each check now keeps retrying for up to a minute before the run stops, instead of giving up after a few seconds. In such hours a run can take longer; nothing extra is charged.
[0.0.155] - 2026-10-16
Fixed
AI Search: the two-minute retry window at the start of a search now also counts the time spent waiting for answers that never arrive, so a search that cannot start gives up after about two to three minutes instead of seven.
[0.0.154] - 2026-10-16
Fixed
AI Search: when the AI service is briefly overloaded as a search starts, the run now keeps retrying for up to two minutes before it gives up, instead of stopping after about 20 seconds. Nothing is read or charged while it waits.
[0.0.153] - 2026-10-16
Changed
Keyword & hashtag search: the private-account skip described in 0.0.152 now takes effect — the search reader passes on which accounts the search itself marks private. Results and price are unchanged.
[0.0.152] - 2026-10-16
Changed
Keyword & hashtag search: a search term's later pages are now read only when the run needs more candidates than the pages already read hold. A free-plan run (5 candidates) usually needs only the first page of each term, so it starts analyzing sooner. The candidates, their order and the results are unchanged. On the free plan, the "N more accounts were found" rows now count the accounts on the pages that were read, so the number can be lower than before.
Keyword & hashtag search: an account the search itself lists as private is skipped without opening its profile. Private accounts were already skipped and never charged; results are unchanged.
AI Search: profiles still being read when the run reaches its goal stop after the profile itself, instead of reading posts and Reels that could not be used. When your description requires a particular link on the profile, the link is checked before the profile's posts are read. Results, reasons and price are unchanged; a profile without the required link is now turned down even when its posts could not be read at that moment.
[0.0.151] - 2026-10-16
Fixed
Reels columns: a profile whose newest Reel is pinned to the top of its grid could show an older Reel as its last one in Last Reel (Days Ago), and one Reel fewer in Reels Count (since 0.0.150). The pinned Reel now counts like any other recent Reel.
[0.0.150] - 2026-10-16
Changed
Reels columns (Reels Count, Last Reel (Days Ago), Median Views, Views/Followers Ratio): when a profile's latest posts already include at least three Reels, these columns are computed from those Reels, and the run finishes faster. Median Views can read somewhat lower than before, because the newest Reels are still gathering views. Runs with a Reels filter on are unchanged.
The "Reels Count" column is now described as what it is: how many of the profile's most recent Reels the Reels columns were computed from (usually 12 or fewer), not the profile's lifetime total.
[0.0.149] - 2026-10-15
Changed
AI Search: a profile check that gets no answer within 20 seconds now moves to the backup check at once (before: 30 seconds). A normal check answers in about 10 seconds, so a stalled one no longer takes as much of a short run's time. Results, columns and price are unchanged.
Maintenance
Internal maintenance. Results, columns and price are unchanged.
[0.0.148] - 2026-10-15
Changed
New Store title: Instagram Influencer Search, Discovery — Hashtag Search, Emails. Results, columns and price are unchanged.
[0.0.147] - 2026-10-15
Changed
AI Search reads fewer profiles for the same matches. An account seen recently outside your follower range, with a website when you asked for accounts without one, or with no email and no link when you asked for an email, is now turned down without being read again. It is free, it does not count against the run's limit of profiles read, and Checked Profiles lists it as filtered with the reason and "from saved profile data". An account close to the edge of your follower range is still read, because it may have grown. Results, columns and price are unchanged.
[0.0.146] - 2026-10-15
Maintenance
Internal maintenance. Results, columns and price are unchanged.
[0.0.145] - 2026-10-15
Changed
AI Search: a run that ends on its timeout or on its maximum cost now says how many matches it found, how many profiles it checked, which limit ended it and what to raise. Before, a run stopped by its timeout said only "The run is approaching its time limit." A run started with a timeout under 10 minutes says so in the log at the start: AI Search often needs up to about 10 minutes.
AI Search: when "Describe who to find" is empty, the Search Queries and Search Hashtags you filled in are used as the description, instead of the run failing.
AI Search spends less of a run on searches that rarely find anyone in your follower range: such account-name searches now wait behind the other searches, and a country written in two words ("United States", "New Zealand") is no longer split when a search is shortened.
AI Search: profiles you already paid to have checked in the last 7 days are checked after new candidates. They are still checked, and charged as usual, when a run gets to them.
[0.0.144] - 2026-10-14
Maintenance
Internal maintenance. Results, columns and price are unchanged.
[0.0.143] - 2026-10-14
Maintenance
Internal maintenance. Results, columns and price are unchanged.
[0.0.142] - 2026-10-14
Fixed
Checking the page behind a bio link is now always capped in time: a page that never finished loading, or a very large page full of text, could hold up the run on one profile. Results and price are unchanged.
[0.0.141] - 2026-10-14
Added
Contacts behind the bio link: when a profile shows no email or phone on Instagram, the page its bio link opens is now checked too — a link-in-bio page like Linktree or Beacons, a WhatsApp link, or the account's own website (its home page and contact page). A contact found there fills the Email or Phone column and counts for "Filter by Contact Info Presence", so a profile that keeps its contact behind the link is no longer turned down for having none. The new Phone Source column and the Email Source column say where each contact came from (link_page, website, whatsapp). Same price per profile.
A phone number written in the bio text (for example "call (305) 555-0142") now counts like an email in the bio: it fills the Phone column and passes the "Has Phone" contact filters.
[0.0.140] - 2026-10-14
Changed
Maintenance: internal improvements. No change to inputs, results, run time or price.
[0.0.139] - 2026-10-13
Changed
Keyword Discovery: when a search query still finds no account that matches all of it — nobody at all, or only accounts that miss part of it, like tech reviewers anywhere for "tech reviewer chennai" — an AI model now rewords the query the way such creators describe themselves (other words for the role, other names of the place, hashtags they use) and the run searches those too. Only accounts whose own name and posts show they fit your query are kept; they carry «Keyword Discovery (AI-expanded): » in the Source column, come ahead of the partial matches, and are analyzed and charged like any other profile, within the same limits. Up to five queries a run are reworded this way, two on the free plan.
[0.0.138] - 2026-10-13
Changed
Keyword Discovery: a search query that returns no accounts — including a two-word one like "nutritionist girona" — is now also searched in what creators write under their videos. Only creators whose username, name or video caption uses every word of your query are kept; they carry «Keyword Discovery (video captions): » in the Source column and are analyzed and charged like any other profile, within the same limits.
Search Hashtags: a hashtag typed with spaces ("Jastip Korea") is searched as one tag (#JastipKorea), and the log says so. Before, it was searched with the space and found nobody.
[0.0.136] - 2026-10-13
Fixed
AI Search no longer spends its search allowance on its own candidate list: on the free plan two runs stopped early on the search page limit without having searched everything. Candidates from your examples' related accounts and from the candidate list now take turns by how often each one matches in your run.
[0.0.135] - 2026-10-12
Changed
AI Search picks its first candidates more precisely: each niche in your description is matched on its own, accounts are matched by country and language before they are read, and your example accounts bring accounts like them. These candidates now take turns with the accounts related to your examples and matches instead of waiting behind them. Every candidate is still read live and checked before it is delivered or charged. No change to inputs, results or price.
[0.0.132] - 2026-10-12
Changed
AI Search starts from a wider set of candidate accounts that fit your description, so a paid run can reach good matches with fewer checks. Every candidate is still read live and checked against your requirements before it is delivered or charged. On the free plan, the run's own searches keep the first checks. No change to inputs, results or price.
[0.0.131] - 2026-10-11
Changed
Maintenance: internal improvements. No change to inputs, results, run time or price.
[0.0.130] - 2026-10-11
Changed
Maintenance: internal improvements. No change to inputs, results, run time or price.
[0.0.129] - 2026-10-11
Changed
Maintenance: internal improvements. No change to inputs, results, run time or price.
[0.0.128] - 2026-10-11
Maintenance: groundwork for faster, better-targeted searches. No change to inputs, results, run time or price.
[0.0.127] - 2026-10-11
On the free plan, AI Search now says first what it found, that it stopped at the free plan's limit for one run (5 AI checks, or the profiles it may read for them), and how many more profiles a paid run of the same input would check, followed by a link to upgrade. The status page shows the same, with the link. Before, the run ended on a technical stop reason.
On the free plan, a "Max profiles to check (AI cost control)" above 5 is now named at the start of the run: it applies on a paid plan.
A follower range written in your description, such as "50,000-100,000 followers", now wins over the form's Account size when the size includes it. Before, the wider size was searched (10,000–100,000). When the two disagree in any other way, the run, its log and the status page say which range the search used.
The upgrade hint now shows Apify's current starting price: $19/month with $19 in platform credits.
[0.0.123] - 2026-10-09
An example account written in your description without "@" (for example "in the style of selena.sgo") now counts as named when its handle has a dot, an underscore or a digit. An account your description does not name is left out and the run goes on, saying which ones it left out; before, the run stopped before searching and returned nothing.
A requirement about what posts are about, such as "Pilates practice in at least two distinct posts", now always stays a requirement checked from captions. It could be taken for something visible only in photos and turned into a preference.
The verification version is now bl440-v27: run an existing AI description online once before using Offline Mode.
[0.0.122] - 2026-10-09
A profile's city or address field now counts by where that place actually is: a business listed in Portland, Oregon whose About panel says United States is turned down free for a brief that requires the Nordics, as a location tag elsewhere already was.
[0.0.121] - 2026-10-09
An account whose own "About this account" panel places it in another country is now turned down free before the AI check even when it tags places, unless its city or a tag is in a country you asked for. Before, any city or location tag, including the tag of the video it was found by, sent it to a paid check.
"Turkey", "Hong Kong" and a few other country names in the About panel are now recognised.
Accounts related to your examples or to a match are still searched first, but a group of related accounts that has had five checks without a match now waits while your other searches get their turn. Before, the friends of one example could take every check of a run.
Your own search hints (searchQueries, searchHashtags) are always searched in AI Search, ahead of the AI's own searches. If you give more than a run takes, it names the ones it left out.
"Prefer, but others are fine" now keeps the location a preference even when the description also says where the accounts are based, and the status page says so.
When a three- or four-word search finds nobody, its shorter version keeps the topic: "beauty creator france" is asked again as "beauty creator", not "creator france".
The verification version is now bl440-v26: run an existing AI description online once before using Offline Mode.
[0.0.120] - 2026-10-09
When you ask for accounts from several different niches, no single group of related accounts fills more than half of your results: the search keeps looking in your other niches instead of returning five lookalikes of one example.
When a run has found almost nothing yet, the accounts related to a profile that met everything except what its posts show (for example a local filmmaker whose recent posts are not music videos) are searched too, to reach the local scene behind it.
With a follower range set, a search that keeps returning accounts outside the range is read last, so more of the run goes to searches that return accounts of the right size.
When your description excludes any way of monetizing the audience, affiliate links and codes, "shop my finds" storefronts, paid collaborations and "collab" invitations now count as monetizing, unless you allow them.
When Instagram's About this account panel places an account in another country, a city named in its bio no longer outweighs it; a local phone number, prices in the local currency or a local address still do.
The verification version is now bl440-v25: run an existing AI description online once before using Offline Mode.
[0.0.113] - 2026-10-09
When your description requires a country, AI Search also reads Instagram's own "About this account" panel. "Account based in" counts as proof of the country, so accounts that never write where they live can now match. An account Instagram places in another country, with nothing on its profile pointing to yours, is turned down free before the AI check, which leaves more of your checks for accounts that can match. Pages run from abroad that show your country themselves (a local phone number, prices in the local currency, a city) are still checked.
An example account based outside the required country is still used to understand what you want, but accounts related to it are no longer searched first.
A required checkout link (for example "a pay.kiwify link in bio") is now confirmed by the link itself on the profile, its bio links or its link-in-bio page, including the service's short checkout links such as kiwify.app. Before, profiles with exactly that link could be left unconfirmed.
When a description requires a checkout link such as Kiwify or Hotmart, searches now look for the guides, e-books and challenges such pages sell instead of the bare niche.
The verification version is now bl440-v23: run an existing AI description online once before using Offline Mode.
[0.0.109] - 2026-10-09
Asking for small, beginner or new pages, or saying big or long-established pages are not wanted, now limits results to pages under 10,000 followers (under 1,000 for nano or tiny pages) when you give no number. "Small businesses" or "small brands" describes the business and sets no limit.
An influencer, community, group or academy needs an audience: unless you ask for new or tiny accounts, a page with fewer than 50 followers no longer passes as one.
Possible matches are offered more carefully: a near-empty account (under 50 followers) is no longer offered unless you asked for tiny pages, and a profile whose required posts could not be seen is offered only when it has at least 10,000 followers.
The verification version is now bl440-v22: run an existing AI description online once before using Offline Mode.
[0.0.107] - 2026-10-09
A required country is now confirmed by a place the bio or the profile name gives as part of describing the account, such as "Coach in Madrid", "Wisconsin Sports Photographer" or "Sophie | Cleveland, OH". Trips, clients or press elsewhere, a place someone loves, a language, a lone flag or hashtag, and a surname in the name field still do not count.
A public phone number confirms its country for every country whose calling code is its own (Angola, Australia, Indonesia, the Philippines, Pakistan and many more were missing). Shared codes such as +1 and +7 still do not decide a country.
The verification version is now bl440-v21: run an existing AI description online once before using Offline Mode.
[0.0.105] - 2026-10-09
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.103. Saved tasks continue to work identically.
[0.0.103] - 2026-10-09
New Live Status page for AI Search: a progress ring toward your result goal, matches appearing as cards with the quotes that prove them, a live feed of what the AI is reading and checking, your requirements as readable chips, and every search source with its own counts. While the run is running the page updates every second; afterwards it stays as the run's report.
New optional questions in the AI Search form: example accounts, where they should be based (required or preferred), people or businesses, account size, required contact, what they must sell, and how recently they posted. Answers are added to your description, so either way of saying it works. Example accounts alone run a lookalike search.
Your example accounts are now starting points, never results: they are read free, not charged, and accounts related to them are searched first. Up to ten examples are used (was three).
The search plan is made by a stronger model and comes out the same when the same description is run again. It knows today's date, so "posted since the end of June" becomes an activity filter, and "active" means posted in the last 60 days.
Every profile the check accepts gets a second, skeptical review before it is delivered: one that is only next to the niche you asked for, a brand when you asked for people, or that breaks one of your exclusions is turned down and the search goes on. The review is part of the check you already pay for.
Profiles are checked by a more careful model. A price or "back in stock" in a post, or a link that is itself a shop or checkout (Shopify, Etsy, a .store address, Hotmart, Kiwify and similar), counts as selling online. The links on a link-in-bio page (such as Linktree) are read and can prove a sale or a country. Prices in R$ or naira, PIX, and WhatsApp links with a country's number count as location evidence. Instagram's own category label no longer decides whether a page is a brand or a person. A requirement about what an account does not do ("doesn't sell anything") is met when its bio, links and posts show none of it.
When a run ends short of its goal, the results are topped up with possible matches: profiles that met every requirement except one the profile simply does not show (for example what it sells), with nothing contradicting it. They are labeled with AI Match Level: possible and AI Missing Proof, never count toward the goal and cost nothing extra; confirmed matches are labeled confirmed.
A link the description requires by its address (for example "a pay.kiwify link in bio") is checked before the AI check: profiles without that link, on the profile or its link-in-bio page, are turned down free.
When you ask for bloggers, creators or influencers, the pages of brands, stores, clinics, apps, organizations and media outlets are turned down; a store selling other brands' products no longer passes as a brand. A niche you name must be what the account mainly makes, sells or posts: a general store or a neighbouring category no longer passes, and a near-empty account is not a creator. Specific cities you list are required, not just their countries. "Gaming too" adds gaming accounts instead of requiring them. Posting Reels regularly is checked from the account's latest Reels.
Example accounts are read before planning, so "find accounts like these" works without naming the niche. Several allowed countries or a region (Africa, English-speaking countries) are one requirement. A business email on its own domain counts as a listed website.
Requirements no public profile can show (where the audience lives, whether the creator appears on camera, someone's day job) are kept as labeled preferences instead of turning every profile down.
When the first searches run dry or rarely match, the run plans new searches from what it has learned in the same run.
Much faster: profiles are read and checked side by side instead of in rounds, the next search pages are fetched while profiles are read, and private accounts are skipped without reading.
When the AI service is slow, a stalled request moves to the backup model after 30 seconds instead of waiting up to three minutes, and a request never runs past the run's own time limit, so the run ends with its results saved.
A run that reaches your maximum charge now ends cleanly one check before it instead of being stopped by the platform; a failing later page of one search no longer marks the whole run as failed.
The verification version is now bl440-v20: run an existing AI description online once before using Offline Mode.
The price per AI check is unchanged.
[0.0.90] - 2026-10-08
A quote made only of hashtags, mentions or links no longer confirms a role, published content, an offer or an exclusion; at least one quoted phrase must say it in words.
This build releases the AI Search changes of 0.0.85–0.0.89 to everyone: profiles turned down by the follower, contact or website filters before AI analysis are free and do not count toward maxCountAiDiscovery; runs read and check several profiles at once; Reels search and related accounts of every match are used; a country can be confirmed by a stated city, region, post location tag, the country's web domain or an international phone number.
The verification version is now bl440-v16: run an existing AI description online once before using Offline Mode.
Inputs, outputs and the price per AI check are unchanged.
[0.0.89] - 2026-10-08
A store that names what it sells together with a call to buy, order or get delivery (for example "home appliances · cash and installments · delivery nationwide") now counts as offering those products; a category alone still does not. Persian calls to action such as contact, direct message, link and payment are recognized.
Products a description lists as examples of what a store sells describe its category instead of becoming a separate requirement for each item.
Personal, online or individual coaching sold to a client counts as one-to-one coaching unless it is stated to be group-only. A trader inviting people into a Telegram, Discord or WhatsApp group where trades or signals are shared counts as a trading signal room, free or paid.
The verification version is now bl440-v15: run an existing AI description online once before using Offline Mode.
Inputs, outputs and the price per AI check are unchanged.
[0.0.88] - 2026-10-08
Fixed: in 0.0.87 an AI Search that named an example account the AI turned down on a required condition could stop making progress and run until its timeout without results. The run now continues with the other sources, and a run that can make no further progress ends with a stop reason instead of waiting.
Inputs, outputs, verification version and pricing are unchanged.
[0.0.87] - 2026-10-08
A search source that has not produced a match yet gets at most about five AI checks while other sources still have accounts to check; accounts related to an example the AI turned down on a required condition (for example a store in another country) are not searched.
An academy, school, training, class or signals service offered with a call to action such as "Click to start" or "Learn forex trading" is recognized as an offer.
The verification version is now bl440-v14: run an existing AI description online once before using Offline Mode.
Inputs, outputs and the price per AI check are unchanged.
[0.0.86] - 2026-10-08
AI Search reads each profile's latest posts through a faster route, so a run spends less time waiting.
A search source whose first five AI checks found no match is set aside: its remaining accounts wait behind other sources and no more of its pages are read. An example account with no bio and fewer than 100 followers is not used to find related accounts.
A required country can also be confirmed by an international phone number written in the bio or a caption (for example +234 for Nigeria), and by delivery or service stated across that country (for example "Envíos a toda España"). Nigeria, Iran and about 40 more countries were added to the calling codes that name exactly one country.
A required paid course, academy or mentorship counts when it is offered for enrollment and not stated to be free; a price on the profile is not required. A store counts as selling a product category when its bio names the category with an order, delivery or contact line. Posts sharing a specific client's result count as testimonials; the author's own transformation still does not.
An answer to a question such as "Any country focus, or anywhere?" is treated as a preference, not a requirement, unless the description says only, strictly or must.
The verification version is now bl440-v13: run an existing AI description online once before using Offline Mode.
Inputs, outputs and the price per AI check are unchanged.
[0.0.85] - 2026-10-08
In AI Search, profiles turned down before AI analysis by the follower range, a required email or a required absence of a website are now free and no longer count toward maxCountAiDiscovery. Only profiles the AI analyzes cost $0.01, as before including rejected ones. A run reads at most four profiles per AI check plus 20.
AI Search is faster: several profiles are read at once and several AI checks run at the same time. When the goal is reached, checks still in progress are not charged and not added to the results.
Accounts related to every confirmed match and every example account you name are searched right away and checked first, instead of after most checks were spent.
AI Search also searches Reels by what creators say in them, for example "personal trainer são paulo", not only account names. An account search of three or four words that finds nothing is retried in two-word parts.
A required country can now be confirmed by a place the profile states as its own: a city, state or region next to 📍 or "based", "serving" and similar words, the profile's city or address field, location tags on its own posts, or a website or email ending in the country's domain (for example .com.br or .co.uk). Language, flags, hashtags and trips still do not count, and a place in another country never does.
The verification version is now bl440-v12: run an existing AI description online once before using Offline Mode.
Inputs, outputs and the price per AI check are unchanged.
[0.0.84] - 2026-10-08
An online service named in the profile's name line (for example "ENTRENADOR ONLINE" or "DIETISTA ONLINE") now counts as an offer when the bio carries a call to action such as "Escríbeme" or "Trabajemos juntos". A title without any call to action still does not.
More Spanish calls to action are recognized: "contáctame", "escribime", "trabajemos juntos", "hablemos".
The verification version is now bl440-v11: run an existing AI description online once before using Offline Mode.
Inputs, outputs, defaults and pricing are unchanged.
[0.0.83] - 2026-10-08
In AI Search, a profile that cannot be read right now is skipped without charge and the run continues. Before, one such profile ended the whole run as failed, even when the other profiles could be read. The run still stops if reads keep failing.
An online offer written in Spanish, Portuguese, French, German or Italian (for example "Escríbeme para tu plan de entrenamiento", "asesorías online", "a distancia") is now recognized like the same offer in English. The rule itself is unchanged: a job title alone is not an offer.
When fewer matches are found than requested, the run message also says how many profiles were skipped because they could not be read.
The verification version is now bl440-v10: run an existing AI description online once before using Offline Mode.
Inputs, outputs, defaults and pricing are unchanged.
[0.0.82] - 2026-10-08
A required country can now be confirmed by the profile's public contact phone when its international prefix belongs only to that country (for example +34 for Spain). Before, a coach with a Spanish business number and no "based in Spain" line was left unconfirmed. Shared prefixes such as +1 and +7 do not count.
Searches for a required country now use shorter forms that Instagram's account search actually answers, for example "entrenador españa" next to "entrenador personal españa".
The verification version is now bl440-v9: run an existing AI description online once before using Offline Mode.
Inputs, outputs, defaults and pricing are unchanged.
[0.0.81] - 2026-10-08
When AI Search requires one country, the search itself now names that country. Short role searches are repeated with the country's own name (for example "entrenador personal españa") and run first, and one hashtag gets a country variant when none had one. Before, a search in the country's language could spend most checks on accounts from other countries that share the language.
Searches the plan already narrowed, such as one with a city name, are kept as they are. How a country is confirmed on a profile is unchanged.
Inputs, outputs, defaults and pricing are unchanged.
[0.0.80] - 2026-10-08
When AI Search finds fewer matches than requested, its run message now explains why: the most common reason checked profiles were turned down, how many of them show a public contact email when the description asked for an email in the bio, and which limit stopped the run. The same explanation is saved as shortfall in RUN_SUMMARY.
The README now explains the difference between asking for "a public email" and "an email in the bio".
Matching rules, inputs, outputs, defaults and pricing are unchanged.
[0.0.79] - 2026-10-08
When Instagram data briefly fails to load, a read now keeps trying for up to about two minutes of waiting, with growing pauses, instead of giving up after about 9 seconds. A read that had just waited out a rate limit no longer gives up on its first temporary error. This covers both the classic modes and AI discovery. Nothing waits into the run's timeout.
If reads keep failing twice in a row, the run stops asking and reports what is left as not read this time, instead of waiting on each remaining account. Accounts that were not read are never charged.
AI planning diagnostics saved with the run now pass through the same error filter as every other message.
Inputs, outputs, defaults and pricing are unchanged.
[0.0.78] - 2026-10-08
Retries invalid structured responses with the exact schema error or response-format failure, within the existing attempt and spending limits. Planning errors now identify planning rather than profile verification.
Records the response stage, finish/block reason and safe schema path in diagnostics; blocked responses stop without repeated requests. Raw model output and thinking are not included.
Replans invented example accounts, duplicate conditions and source-less plans before discovery; all original requirements and source validation remain enforced.
Sends AI inputs, elapsed time, cost and bounded response/plan diagnostics through existing analytics fields so these survive both ingestion paths when a customer run is inaccessible to the owner.
Preserves classic inputs, defaults, pricing, verification version and saved AI checks. This is recovery/observability hardening; the inaccessible customer run pTPbBlsUormCS8BmT has not been reproduced.
[0.0.77] - 2026-10-07
Enforces an explicitly required bio email in code before captions/LLM and during evidence validation; an email only in the public contact field cannot satisfy it.
Versions this source-field requirement as bl440-v8; existing AI descriptions need one online run before Offline replay. Classic inputs and pricing remain unchanged.
[0.0.76] - 2026-10-07
Starts related-profile discovery from checked user-named examples before broad search spends the verification allowance, including examples outside the requested follower range. Result filters still apply to every returned profile.
Prioritizes local search terms for country-specific requests and correctly handles follow-up corrections and alternative countries.
Checks absence of a publicly listed website in code, including links written in bios and additional bio links; rejects conflicting website filters before discovery.
Adds Persian and Polish country-name evidence without inferring an author's country from their language.
Prevents disabled form defaults from becoming invented negative search requirements and explains early AI-budget exhaustion.
Requires a quoted service/product offer independently of a professional title, avoiding adjacent-niche mentorship false positives.
Retries contradictory optional/mandatory plans before reading profiles and bounded transport failures after HTTP 200.
Requires explicit online delivery and current caption offers, rather than inferred delivery from a contact link or past-client recap.
Versions stricter AI checks as bl440-v7; older AI Offline caches require one new online run. Classic Offline and old input contracts remain unchanged.
Rejects country preference contradictions despite different wording and recognizes explicit free trial offers.
Allocates discovery passes from the affordable check allowance when a monetary budget is smaller than the profile cap.
Keeps prioritized contact email optional and accepts the requested alternative food-content types without inventing a complete-recipe requirement.
Prioritizes supplied search names matching explicitly required online delivery, while preserving source diversity and full profile verification.
Requires text of client feedback for testimonials; a coach-authored before/after announcement or unseen screenshot is insufficient.
Starts related discovery immediately after the first verified match when no examples were supplied, and prioritizes explicitly requested online-role hints across sources.
Scales structured-response output allowance to batch size/requirements, splits token-truncated batches without repeating completed checks or charges, and records bounded response diagnostics within the existing analysis spending cap.
Fixes AI Search failing on requests with several requirements or exclusions.
Keeps validation of every required condition, source and quote before a profile is returned or charged.
Checks a required public email in code so profiles without one do not consume the AI verification budget.
Improves candidate discovery for global searches written in any language.
Preserves search-pass limits for early rejections and starts no additional profile charges after an abort.
[0.0.54] - 2026-10-07
Highlights Mode 2: AI Search with 🆕 in the form and README.
Keeps shared section headings short; descriptions explain that their settings apply to both modes. Input keys, defaults and behavior stay unchanged.
[0.0.53] - 2026-10-07
Groups the form into Mode 1: Keyword / Hashtag Search and Mode 2: AI Search, followed by shared extraction, filters and run options. The mode selector and README use the same names.
Adds an AI-only check limit, maxCountAiDiscovery, inside Mode 2. A positive value takes precedence; omitted or zero preserves maxCountDiscovery as the existing AI limit, falling back to 100. Existing keys, defaults, Tasks, keyword/hashtag search and AI input semantics remain compatible.
[0.0.51] - 2026-10-07
AI Search is available in the default latest build after source-evidence and operating-cost acceptance. Classic remains the default mode; pricing remains $0.01 per analyzed profile.
Removes the beta-build selection step from the AI instructions. Runtime code is identical to the validated 0.0.50 beta.
[0.0.50-beta] - 2026-10-07
Applies documented zero-cost billing exemptions to received rate-limit and server-error responses that omit a unit header. Paid responses and network interruptions without observed units remain unconfirmed.
[0.0.49-beta] - 2026-10-07
Records declared source request units for each received response, including paid empty lookups and retry responses. Interrupted or missing observations remain explicitly unconfirmed in the run summary.
Preserves the cost ledger across recovery and avoids repeating a successful source request if saving its cost fails. Offline replay reports zero new source costs.
[0.0.48-beta] - 2026-10-07
Saves and bills independently validated checks before retrying a different profile’s invalid citation. A retry or exhausted analysis budget preserves valid results and never repeats their analysis or charge.
[0.0.47-beta] - 2026-10-07
Checks role, service and published content independently. Caption requirements need caption evidence; output extraction options and stated preferences do not become mandatory filters.
Rejects country statistics, destinations and generic country mentions as evidence of an author’s base. Verification version v2 requires a fresh online search before offline replay.
[0.0.46-beta] - 2026-10-07
Recognizes an example account mentioned at the end of a sentence without including the sentence punctuation in its username.
[0.0.45-beta] - 2026-10-07
Successful recovery clears a previous source-failure diagnostic from the current summary. Saved checks, evidence and charges remain unchanged.
[0.0.44-beta] - 2026-10-07
A profile without Reels can complete AI verification using its public profile and latest captions. Required Reel metrics still reject missing values; unavailable or malformed sources remain explicit errors.
[0.0.43-beta] - 2026-10-07
Extended error redaction to cover the analysis service and guarded the search failure report. Successful planning, discovery, verification and billing behavior is unchanged from 0.0.42.
[0.0.42-beta] - 2026-10-07
Fixed shared JSON-schema objects that incorrectly linked profile, condition, source and quote constraints. Verification now requires the complete profile/condition batch and preserves independent field schemas.
Recovery retains the original total analysis allowance as profiles are charged. Unreadable offline storage is reported as a storage failure.
[0.0.41-beta] - 2026-10-07
Verification retries invalid citations with source feedback within the existing AI spending limit. Typography and whitespace equivalents are mapped to the exact original source span; paraphrases and invented quotes remain rejected. Structured responses restrict profile, condition and source identifiers.
[0.0.40-beta] - 2026-10-07
AI discovery now samples each initial query and hashtag fairly before checking profiles, and actually searches the related-profile and additional-query passes even while earlier candidates remain queued. All passes share the page and profile budgets.
[0.0.39-beta] - 2026-10-07
AI Search now reconciles platform charges at recovery, preserving acknowledged counts during a running process. Recovery waits for delayed platform metadata instead of mistaking it for a missing charge. AI charges use a persisted idempotency key; an ambiguous charge past the safe retry window is retained for review and never retried blindly.
[0.0.38-beta] - 2026-10-07
Added optional AI Search: describe the profiles you need; the actor builds an effective search plan and returns only profiles whose mandatory conditions are confirmed by public profile data and eight latest captions.
Added independent maxResults, AI defaults and check limits, exact source quotes, ranking and a separate Checked Profiles report with rejection reasons and payment status. Classic remains the default with empty AI fields.
Preserved $0.01 per completed profile check, first-run rejection waivers, Free limits, customer budgets and offline replay. Added durable checks before sequential billing and platform-count reconciliation after interruption.
AI analysis/source failures and spending limits are explicit in the run summary. Beta promotion requires quality and contribution gates.
[0.0.37] - 2026-10-03
A search query of three or four words that finds no accounts is now searched again in its two-word parts. Instagram's account search looks for your words in account names, so a phrase that describes a niche — "dog grooming studio", "vegan bakery london" — often finds no one as typed. The run now searches the phrase's two-word parts ("grooming studio", "dog grooming") and keeps only accounts whose name carries at least two of the phrase's words. Those profiles say Keyword Discovery (broadened): <your query> in the Source column, so you can tell them apart from exact matches. They are analyzed and charged like any other profile, within your usual limits. The extra searches stay inside "Max pages per query / hashtag", happen only when the search answered with no accounts (never when it could not be completed), and the run's message names each query and the searches it became.
When a query finds no one, the message now names shorter versions to try. If the two-word parts find no one either, the message says what was searched. If "Max pages per query / hashtag" left no room for them, or the query has five or more words, it lists the shorter versions you can search instead.
[0.0.36] - 2026-10-02
A profile whose posts or Reels could not be read is no longer judged without them, or charged for. At a busy moment, when a profile's posts or Reels could not be read in time, the profile went on to your filters without them. A Reels or views filter then rejected it as having no recent Reel, and that rejection was charged. Without such a filter it came back with empty engagement and views columns, also charged. Now such a profile is not delivered and not charged, and SKIPPED_ACCOUNTS lists it as not read this time.
A busy moment no longer ends a read after a few seconds. When many runs ask for Instagram data at once, a request used to be given up after about 7 seconds. It now waits its turn, never past the run's own timeout. A dropped connection or a temporary error is asked again before anything is given up.
[0.0.35] - 2026-09-30
Excluded accounts are removed before selecting discovery candidates, so known accounts no longer consume the free plan's five analysis slots. Selection preserves fair source ordering and existing search, page and budget limits.
Discovery deduplicates equivalent handles before the cap. Free-limit notices count only eligible accounts still available; a run whose available candidates are all excluded explains that outcome without charging for profile analysis.
[0.0.34] - 2026-09-24
On a paid plan, when a run returns results but your filters kept fewer than 1 in 5 of the 20 or more profiles it analyzed, the dataset now ends with one "Run diagnosis" row: the kept share, the filters that rejected the rest, and how to get more rows — so apps and AI agents that read only the results see it too. It is not a profile and is never charged.
On a paid plan, a run that keeps few profiles now says so near the top of the results. Once a run has analyzed 100 or more profiles and your filters have kept fewer than 1 in 10 so far, a free "Run diagnosis" row goes in right away, within the first 20 rows: the numbers so far, the filters rejecting most, and how to get more rows. Apps and AI agents that read only the first page now see it. The last row still gives the final count, and says so if the share recovered. Neither row is charged or counted as a profile.
[0.0.33] - 2026-09-24
Runs that keep only a small share of the profiles they check now say so in the run's status message, with how to re-check them for free using Enable Offline Mode.
Offline Mode: re-filtered rows keep the Source of the search that found the profile instead of "Cached". Profiles saved by earlier versions still show "Cached".
Offline Mode runs no longer open with the narrow-filter cost warning — re-filtering is not charged.
Runs started at the same moment as another run, or from inside another Actor, no longer stop at startup; a run that still cannot start now says why in the Storage tab instead of pointing at your API token.
Two runs started close together no longer undo each other's progress. Each run keeps its own record of the accounts it has analyzed. A run restarted by the platform no longer analyzes — or charges — an account twice, and a run that was still working when you started another one fresh keeps saving its profiles for Offline Mode. Unchecking "Start a Fresh Run" still skips everything analyzed since your last fresh run.
A run now stops at its "Maximum cost per run" (or at what is left of your account's credit): nothing past it is analyzed or charged, and the run ends with a message saying what the maximum paid for, how many accounts were left, and how to get the rest.
A run that stops on an error before saving any profile now says there are no results, instead of calling the dataset empty.
[0.0.32] - 2026-09-23
A search that could not be completed is no longer reported as "no profiles found". When the search did not respond for any of your terms, the run now says exactly that: the problem was on our side, it is almost always temporary, your terms were never checked (so there is nothing to change in them), and nothing was charged. Re-run in a few minutes — a Schedule rides this out automatically. Until now such a run told you your terms were too narrow and suggested broadening them.
When only some terms could not be searched, the run says which. The run's message lists the terms that were searched and found nobody, and names the ones that could not be searched this time, which a re-run may still find accounts for. The run log and the SKIPPED_ACCOUNTS storage record name them too, and a run that still found accounts from your other terms says in its log which terms added nothing.
Search terms with no matching accounts finish sooner. The run stops asking as soon as the search reports there is nothing to find, so an empty term no longer holds the run up. The no-results message and the README no longer suggest raising "Max pages per query / hashtag" for a term that found few or no accounts — the search has nothing further to give for such a term.
[0.0.31] - 2026-09-15
A free run whose filters reject every profile it checks now returns those profiles instead of an empty dataset. On the free plan a run checks 5 of the profiles your search finds, and a narrow filter can reject all of them. Those profiles now come back as full rows marked filtered_out, and Why Not Analyzed names the filter each one did not pass, the value you set and the account's own value — for example: Did not pass "Follower Count Range: Min" (100,000) — this account has 12,400 followers. When your search had more accounts than the free plan checks, the results also say how many. The run's message says the same, and explains how to re-filter these profiles for free with Offline Mode.
These rows are not results and add no charge. A filtered_out row costs nothing of its own, the run still reports that no profile matched your filters, and runs on a paid plan are unchanged.
The free-plan note at the start of a run names the limit a free run actually meets. It said a free run can analyze up to 50 profiles, while a free run stops finding accounts at 5 first. It now says that a free run analyzes at most 5.
A demo run on the free plan now says it analyzed at most 5 profiles. The note it leaves in the run's Storage tab said the output was capped at 10 — a cap a free demo never reaches, because it stops at 5 first. Demo runs on a paid plan read exactly as before.
The welcome box on your first paid run now fits inside its border. Long tips wrap onto the next line instead of running past the right-hand edge.
A free run that read profiles now counts as one of the month's free runs, even when nothing was charged. On your first run, profiles your filters reject are not charged, and a run like that was being treated as one that had read nothing — its log even said it had fetched nothing. That includes a run that returned those profiles as filtered_out rows. The log of a free run now ends by saying whether the run counted.
[0.0.30] - 2026-09-15
Several search terms typed into one row are now searched separately. A comma or a line break inside a "Search Queries" row separates terms, so "fitness, yoga coach" searches for "fitness" and for "yoga coach". A "Search Hashtags" row pasted from a caption, such as "#beagle #corgi #dachshund", is read as three hashtags. A phrase is never split on its spaces: "yoga coach" stays one search. A term repeated in the same field is searched once, and the run log lists every row it split.
A search term sent under another field name no longer starts the demo search. An input that left "Search Queries" and "Search Hashtags" empty but put the term under a name like hashtags, searchQuery or query used to run the demo search for "fitness coach" — and charge for it. The run now stops before searching, charges nothing, and says which field name to use instead. The value is not moved across for you: guessing wrong would spend your money on a search you did not ask for.
On the free plan, an empty run now says when the free limit shaped it. The free plan checks at most 5 profiles per run, chosen before your filters run, so a narrow filter can reject every one of them. When that is what happened, "No profiles matched your filters" now says so, and says that a paid plan keeps going. Runs on a paid plan read exactly as before.
The free-plan limit is now recorded on empty runs too. When the 5-profile limit cut a run short and the run then returned nothing, the run's FREE_LIMITS_APPLIED record left the limit out, as if it had not applied. It now lists it.
The free-plan limit message talks about your search terms. When the limit stopped a run that did return profiles, the message said "your seed kept producing matching profiles" — wording from an actor that starts from accounts, not searches. It now says your search terms had more profiles than the free plan checks in one run.
Runs whose accounts were already in "Exclude Accounts" now explain themselves. When every account a run found was already excluded, the run now says "You already have all of these" — nothing was fetched and nothing was charged — instead of saying it could not tell why it was empty. When some accounts were excluded and your filters rejected the rest, the run now gives the filter explanation it should have given.
The free plan's monthly run allowance is now counted when a run starts, not when it ends. A free run you stop part-way now uses one of the month's free runs, the same as a run that finishes. A run that ends without charging or delivering anything still gives it back, and demo runs and Offline Mode re-filters still don't count.
Advice that pointed at the wrong thing is corrected. The "no profiles found" message told you to increase "Max Pages Per Source", a field this actor doesn't have; it now names "Max pages per query / hashtag". The narrow-filter warning told free-plan users to set "Max profiles to process" to 100–200 for a test run, which the free plan doesn't allow; on the free plan it now suggests checking this run's own numbers and re-filtering for free in Offline Mode. The same warning now calls the business-address filter by its current name.
The README no longer says Reels analytics need a paid plan, and now lists the free plan's monthly runs. The free-vs-paid table and the FAQ said Reels metrics are blanked on the free plan. They aren't: the free plan returns them exactly like a paid plan. The table now also shows the free plan's 15 runs per calendar month, and that a run you stop part-way uses one of them.
The run's own messages now describe this actor, not modes and account handles it doesn't have. The first-paid-run tips point at "Max profiles to process", "Max pages per query / hashtag", "Search Queries" and "Search Hashtags". The demo-run note and the TEST RUN banner in the log say that no search term was given and where to put one, and on the free plan the banner names the limit a demo actually stops at. The run log, the live status page and the free-plan limit record no longer mention modes.
The input form and the output column descriptions describe this actor too. The "Exclude Accounts" description no longer mentions a mode this actor doesn't have. The Source column's description lists exactly the values this actor writes, Why Not Analyzed talks about search queries and hashtags, and Account says it holds "N/A" on the notice rows. The README's list of common wrong field names now names them — startUsernames, targetUsernames, profileUrls — instead of pointing at another actor.
A run the platform restarts after writing its notice rows still delivers what it owes. The rows that report a free-plan limit, and the row that explains a run with no results, are not profiles. A run restarted after writing them counted them as profiles it had already delivered, so it could skip restoring a profile you were charged for and report more profiles saved than it returned. It now counts only real results.
[0.0.29] - 2026-09-11
Offline Mode no longer rejects a saved profile over "Min Engagement Rate (%)" just because its posts were never downloaded, when "Calculate Engagement Rate (ER)" is off. A normal run with engagement analysis off doesn't apply that filter to such a profile, but re-filtering saved profiles treated the filter as needing posts and rejected every one of them — so a free re-filter could come back empty where the same filters in a normal run return rows. Those profiles are now judged the way a normal run judges them.
The same fix for a run that resumes after a restart. With that combination of settings, results the run had already found, but whose posts hadn't been downloaded, were discarded instead of being restored. They are now restored.
[0.0.28] - 2026-09-10
Clarified wording in the README, the input form and the storage record descriptions. Nothing changes in how the actor runs, what it returns or what it costs.
[0.0.27] - 2026-09-09
The empty-run explanation promised in 0.0.26 now actually reaches the results. In that build the row was written but never emitted — it was placed earlier in the run than the explanation it carries, so the check that guards it was always false. The run's status line worked; the results row did not. Nothing else changed.
[0.0.26] - 2026-09-09
A brief hiccup no longer makes a real, public account look deleted. When an account can't be looked up on the first try, it is now double-checked through a second, independent route before being reported as unreachable. Accounts that really are deleted, private, or mistyped are still reported exactly as before.
Honest wording above the filter section. It used to say filters "save on processing costs". They don't: filters run after each profile is read, so they shape your results, not your bill. The Pricing section has always said this; the input form now agrees with it.
A run that returns nothing now says why in the results themselves. Until now the explanation went to the run log, the status page and the USER_MESSAGE record — none of which an API or MCP caller receives. An empty run now also returns one row carrying the same explanation, and the run's status line carries its headline.
Clearer wording when nothing could be scraped. The end-of-run note no longer says "Nothing was charged" on runs where some accounts were read and then rejected by your filters — reading is what the charge is for, so the note now says which part was charged and which wasn't.
[0.0.25] - 2026-09-09
When a run cannot finish because something outside this actor refuses the request, it now
says so in one plain sentence instead of passing along whatever text came back. Input
fields, output columns, defaults and pricing are unchanged from 0.0.24.
[0.0.24] - 2026-09-04
Fixed
Creator accounts were being reported as personal, and the account-type filter dropped them.
Instagram has three kinds of account — business, creator and personal — and the first two are
both professional: both can publish a Contact button with an email or a phone number. This actor
had been reading a single business/not-business signal, so every creator fell into the personal
bucket. On 60 accounts taken from this actor's own search results, 53% were creators — the
majority. Business only was discarding all of them, and Personal only was returning them
under the wrong name.
Added
Account Type column, on every analyzed row: business, creator or personal, read from
Instagram's own account type. The README has listed this column for some time; it now exists. It
is the last column, so every column you already read keeps its position.
Two new choices in Filter by Account Type: Creator only, and Professional (business or
creator) for when you want everyone with a Contact button and do not care which kind. Searching
for influencers? Choose Creator — the old advice to choose Personal was wrong.
[0.0.23] - 2026-09-04
Documentation only. The Related actors table now lists Instagram Email Scraper, for the
contact details a list of usernames publishes — email, phone, website and business category,
one row per account. No change to this actor's behaviour, input, output or prices.
[0.0.22] - 2026-09-04
Documentation only. The Related actors table now lists Instagram Comments Scraper, for
reading what a post's comments say — every comment and reply as a row, with @mentions and
#hashtags in their own columns. No change to this actor's behaviour, input, output or prices.
[0.0.21] - 2026-09-03
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.20. Saved tasks continue to work identically.
[0.0.20] - 2026-09-02
Fixed
The rows explaining what the free plan held back were never reaching you.
On the free plan the actor adds a row per search term that still had accounts left when the run
stopped, saying how many more there were. Those rows were being written in a shape the dataset's
own column types reject — three columns are declared numeric, and a text placeholder in any one
of them makes the whole batch refused. So they vanished, and quietly: the failure was only a
warning in the run log, while the README and the dataset schema both said the rows were there.
This has been true since the actor was published.
A blank cell now takes the form its column actually accepts: "N/A" in a text column, null in
a numeric one. Nothing about your result rows changes. A test now checks every cell of these
rows against the published column types on every commit — nothing in this actor read its own
dataset schema before, which is how a shipped feature stayed dead with a green test suite.
[0.0.19] - 2026-09-01
Changed
Related actors section updated to include Instagram Likes Scraper — paste a post or reel
link and get the accounts that liked or commented on it, enriched the same way this actor
enriches its own results.
[0.0.18] - 2026-08-31
Fixed
If a billing call fails mid-run, the run now shuts down in an orderly way instead of stopping
dead. Everything already collected is saved to the dataset and the run summary, and profiles the
platform did not actually bill for are no longer counted as charged.
A failure during start-up — before the first profile is read — no longer ends the run without
explanation. The reason is now written to the log and to the run's status.
The live status page can no longer take the run down with it if its port is unavailable.
Changed
Runs now get 1 GB of memory by default instead of 512 MB. The busiest run measured used 87% of
the old ceiling, and a run that runs out of memory stops without saving anything.
[0.0.15] - 2026-08-26
Fixed
A run that returned nothing because of the last-post filter now says what the rejected profiles
actually looked like — "7 of 10 had no posts we could read, and this filter needs posts to judge
an account" — instead of naming the filter and stopping there. The sentence was already written
and could never appear, so every zero-row run caused by that filter gave you the filter's name
and no number to move.
[0.0.14] - 2026-08-19
Changed
Correction to the 0.0.13 note on the Business-Address filter: full country names DO match
outside the US, Canada, Mexico and India — Instagram writes the city line as "Berlin, Germany"
or "Lagos, Nigeria", country spelled out in English; in the US, Canada, Mexico and India it
ends in the state ("Miami, Florida"). Abbreviations like "USA" or "UAE" are not what the field
carries.
The filter's input-form description, the README guidance and the run messages now teach the
shape that works: a comma-separated list of several cities plus the region written out in full,
in Instagram's own spelling, accents included.
When some profiles did publish an address and your terms simply missed them, the closing
message now says so and suggests the towns-plus-region list instead of staying generic.
[0.0.13] - 2026-08-19
Changed
The location filter is now called "Filter by Business Address — professional accounts only",
because that is what it reads. Instagram publishes an address only on professional accounts that
filled it in, so ordinary creators have none at all and this filter rejects every one of them.
Write city names: the field holds a city, so "Miami" can match and "USA" never will.
Added
A run whose location filter cannot match anything now stops after the first 25 profiles instead
of paying its way through the whole search and reporting an empty result at the end. If none of
those 25 publishes a business address, the run says so, tells you how much of the search it
declined to pay for, and points at the field to clear. The profiles already fetched stay saved,
so you can clear the filter and re-filter them for free with Offline Mode.
[0.0.12] - 2026-08-18
Fixed
The pre-run warning about narrow filters now also fires on a location filter used on its own.
Until now it only spoke up when location was combined with keywords, so a run narrowed by
location alone went ahead with no warning at all — and those are the runs most likely to fetch
profiles, charge for them and save none of them.
The expected-yield figure in that warning is now specific to the contact type you picked.
All four choices used to be quoted the same ~10%. They do not behave the same: asking for
BOTH an email and a phone — the strictest of the four — actually keeps about twice as many
profiles as asking for an email alone, and the warning now says so instead of understating it.
[0.0.11] - 2026-08-17
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.10. Saved tasks continue to work identically.
[0.0.10] - 2026-08-17
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.9. Saved tasks continue to work identically.
[0.0.9] - 2026-08-17
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.8. Saved tasks continue to work identically.
[0.0.8] - 2026-08-17
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.7. Saved tasks continue to work identically.
[0.0.7] - 2026-08-12
Runs no longer fail when you start several at the same time. If you launched two or more runs together, one of them could stop with "Could not read this run's progress record in full" — and there was nothing wrong with it. Each run keeps its own list of the accounts it has already looked at, so it can pick up where it left off; a run starting up would clear that list at the very moment another run was reading it. A run that cannot read the list now waits and tries again twice, re-opens the list so anything it saves afterwards is kept, and — if it has not analysed anything yet — carries on with an empty list instead of stopping. That check exists to protect a resumed run from being charged twice for the same account, and a run that has just started has nothing to be charged twice for. Only runs started alongside other runs were ever affected; a single run on its own was not.
[0.0.6] - 2026-08-12
The language filter and the Detected Language column now cover 44 languages instead of 13. Korean, Polish, Ukrainian, Dutch, Swedish, Serbian, Thai, Vietnamese, Greek, Hebrew, Persian and 23 others were already being recognised from the bio and captions — and then reported as "N/A", because the column only knew how to name 13 of them. They are now named, and each can be picked in Filter by Profile Language. Nothing changed for the 13 languages that already worked.
The dataset description no longer says the actor has six search modes. It has one — keyword search and hashtag search — and the description was inherited from a larger actor.
[0.0.5] - 2026-08-11
README now lists the Example tasks — ready-to-run searches you can start in one click, no setup. Five more are published in German, Korean and Portuguese and are linked from the Examples tab.
[0.0.4] - 2026-08-11
Runs started from an Example task page no longer open with "Unknown input fields were ignored". The page carries one marker field of ours in its input, and the check that names mistyped fields was counting it as one of the customer's.
Two runs of the same search are now recognised as the same search whether they were started from an Example page or from the input form.
[0.0.3] - 2026-08-11
Declared the analytics_failed_* diagnostics records in the key-value-store schema. They were already being written when a background bookkeeping call could not be delivered, and the schema did not mention them.
[0.0.2] - 2026-08-11
Output sample in the README is now a real row from a real run.
Declared Posts in Last 30 Days in the dataset schema; the column was already being written but not documented (inherited from the parent).
[0.0.1] - 2026-08-11
Initial release.
Finds Instagram accounts by keyword search and by hashtag search, then enriches each one with contact details, audience size, engagement rate, Reels metrics, business category and detected language.
Search terms are read in parallel and merged round-robin, so one broad term cannot consume the whole budget while a narrower one returns nothing.