All notable changes to this actor are documented here.
- An input that rules out every account now stops before anything is read, and names the fields in conflict. If every account in "Accounts to scrape" is also in "Exclude Accounts", or "Follower Count Range: Min" is higher than "Follower Count Range: Max", the run ends straight away with a message saying which fields to change — nothing is fetched or charged. Before, the first case ended as "You already have all of these", and the second read and charged every profile only to reject it.
- The note for a run whose accounts were all excluded now suggests things this actor can do — paste accounts you have not collected yet, or take accounts out of "Exclude Accounts" — instead of advice to widen a search this actor does not run.
- Clarified wording in the README and the storage record descriptions. Nothing changes in how the actor runs, what it returns or what it costs.
- The empty-run explanation promised in 0.1.18 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.
-
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.
-
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.
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.1.1.
Account Type now tells business, creator and personal apart. It read Instagram's
is_business flag, which is true for business accounts only — so every creator account,
professional and with a working Contact button, came back labelled personal. On the 44
accounts behind this actor's published contact rate, 18 are creators and 8 of them publish an
email or a phone.
- New value
creator. The column is now business | creator | personal, read from
Instagram's own account type rather than inferred from one flag.
- New filter options. «Professional (business or creator)» and «Creator only» join the
account-type filter. If you were using «Business only» to mean "someone I can contact", switch
to Professional — business only was discarding more than half the professional accounts on
your list.
- The published rates are restated by kind, because the old two-way split averaged creators
into "personal" and described neither: business 43%, creator 39%, personal 17% —
and every personal hit was an address typed into the bio, never a contact field.
No change to prices, to what is charged, or to any other column.
First release.
Reads a list of Instagram usernames and returns the contact details each account
publishes: email, phone, website, business category, bio, follower count and account
type. One read per account, no posts fetched, no login.
- 18 output columns, one row per account you submit. Accounts held back by a
free-plan ceiling come back by name as
not_analyzed rows rather than as a count.
- One paid event — $0.01 per account read, whether or not it passes your filters.
Not-found, private and failed reads are not charged, and a first run is not charged
for accounts its own filters rejected (up to 100).
- Free plan: 30 accounts per run, 15 runs per calendar month. The monthly slot is
reserved before the first read and handed back when a run ends without reading
anything, so an aborted run cannot get around it.
- A run that finds no contacts says so, and says whether that was ordinary for the
length of the list or whether it says something about the list. On accounts drawn
from real customer lists, 34% publish an email or a phone — so a short list coming
back empty is expected, and a long one is not.
- Resume from checkpoint after a migration, a timeout or an abort, without paying
again for the accounts already read.