All notable changes to this actor are documented here.
- 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.
- 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.
- 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.
- 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.
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.
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.
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.
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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).
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.
- 20+ post-fetch filters: follower band, engagement floor, Reels view ratio, language, business category, contact-channel presence, posting cadence, verification.
- Single paid event,
PROFILE_ANALYZED at $0.01 per analyzed account. Accounts that could not be read are not charged.
- An empty input runs a small capped demo search instead of failing, and says so in the log, in
USER_MESSAGE, in RUN_SUMMARY and on the status page.
- Free plan: 5 accounts per run, with a row per search term reporting how many candidates it still had.
- Offline Mode re-applies filters to already-fetched accounts without new requests or charges.
- Resume from checkpoint after an interruption; analyzed accounts are never re-billed.