Instagram Account Search — Find Accounts with Business Contacts avatar

Instagram Account Search — Find Accounts with Business Contacts

Pricing

from $3.00 / 1,000 accounts

Go to Apify Store
Instagram Account Search — Find Accounts with Business Contacts

Instagram Account Search — Find Accounts with Business Contacts

Instagram account search and Instagram user search by keyword or hashtag: find the accounts behind any phrase or tag, and read each in full for the email, phone and city a business publishes. $3.00 per 1,000 accounts. Accounts you already have are never charged twice.

Pricing

from $3.00 / 1,000 accounts

Rating

0.0

(0)

Developer

Steadyfetch Team

Steadyfetch Team

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

Instagram account search and Instagram user search by keyword or hashtag: type "dentist miami" or "#bakery" and get the accounts behind it, then read each one in full for the email, phone and city a business publishes on its own profile. $3.00 per 1,000 accounts; the full read is $2.30 per 1,000 more from Silver up.

Type search phrases, hashtags, or both. Each one is a search, and every account it finds comes back as one row: handle, name, profile link, verified and private flags, and the keyword or hashtag that found it. Switch on "Read each account in full" and the same row adds followers, following, posts, business and creator flags, category, bio, website and the public contact block. No login, no cookies, no proxy to set up. A search that finds nothing, and a read that did not go through, are never charged, and nothing is charged for starting a run.

Using an AI agent? Pin this actor in Apify's MCP server with one link: https://mcp.apify.com?tools=steadyfetch/instagram-account-search-scraper

  • Actor id: steadyfetch/instagram-account-search-scraper
  • Input: { "keywords": ["dentist miami"], "maxAccounts": 30, "enrichContacts": true } — keywords or hashtags is the one field you have to set.
  • Cap the bill: set maxTotalChargeUsd on the run (a run option, not Actor input), e.g. 0.50 — the run stops when it reaches it.
  • Price: $0.003 per account found and delivered; the full read is $0.006 per account on the Apify free plan, $0.0055 on Bronze and $0.0023 from Silver, only when you ask for it. Full table below.
  • How often it changes: search results shift week to week as accounts grow, post and rename; contact fields change only when the owner edits them. Re-running the same searches weekly with "New accounts only" on delivers just the accounts you have not had.

Unofficial. Not affiliated with, endorsed by, or sponsored by Instagram or Meta Platforms, Inc.

What you get

One row per account:

ColumnWhat it holds
username · userId · profileUrl · fullNamewho the account is
isVerified · isPrivatethe two flags Instagram's search shows
foundBy · foundByTypethe keyword or hashtag that found it
followersCount · followingCount · postsCountthe counts — full read only
isBusiness · isProfessionalAccount · categorywhat kind of account it is — full read only
biography · externalUrl · bioLinksthe bio and its links — full read only
publicEmail · publicPhoneNumber · publicPhoneCountryCode · contactPhoneNumber · whatsappNumber · cityName · addressStreet · zipthe contact block the account publishes on its own business profile — full read only, null when the account does not publish it
charged · chargedEvents · status · statusReasonwhat the row was charged, and why it says what it says

Every column is always present. A column the search does not return is null on a row that was not read in full, never missing. Nothing is guessed: every contact field is exactly what the account holder published, and an account that publishes none has none. Across three business niches (a trade, a bakery and a fitness studio search), about half of the accounts read in full published an email or a phone number.

Two ways to search:

  • Keywords run Instagram's own account search, the same list the search box shows. One phrase usually runs dry at about 30 accounts, so use several specific phrases ("dentist miami", "pediatric dentist miami") rather than one broad one.
  • Hashtags return the accounts behind the tag's top posts, each account once. Tags go deeper than a phrase search.

An account two of your terms both find is delivered once, under the first one, and charged once.

What a row looks like

{
"username": "sample_bakery_2",
"fullName": "Sample Bakery 2",
"profileUrl": "https://www.instagram.com/sample_bakery_2/",
"isVerified": true,
"isPrivate": false,
"foundBy": "bakery",
"foundByType": "keyword",
"followersCount": 12840,
"followingCount": 312,
"postsCount": 486,
"isBusiness": true,
"category": "Bakery",
"biography": "Sourdough every morning. Orders by email.",
"externalUrl": "https://bakery.example/",
"publicEmail": "hello@bakery.example",
"publicPhoneNumber": "5550100",
"publicPhoneCountryCode": "1",
"cityName": "Sample City",
"enriched": true,
"charged": true,
"chargedEvents": { "account": 1, "enriched-account": 1 },
"status": "delivered"
}

Price

You pay per event, and only for what was delivered:

EventWhen it is chargedApify free planBronzeSilver and up
accounteach new account found and delivered$0.003$0.003$0.003
enriched-accounteach account read in full, only when the read came back (opt-in)$0.006$0.0055$0.0023
checkonce per keyword or hashtag, only when a repeat search found nothing new for you$0.004$0.004$0.004

Examples: 30 accounts from one search is $0.09. The same 30 read in full is $0.159 from Silver up, $0.255 on the Apify free plan. No start fee, ever.

Re-run the same searches without paying twice

Every run remembers, in a key-value store in your own Apify account (ig-account-search-account), which accounts it delivered under which search. With "New accounts only" on (the default), a later run of the same keyword or hashtag skips those accounts: no row and no charge, and the next new account takes the slot. Accounts older than 90 days in that memory count as new again.

When a repeat search reads its pages and every account on them is one you already have, that term's row says so and is charged one check ($0.004), once, for the read. A first search is never charged a check, nor is a search that returns nothing, a search a limit of yours cut short, or any run with "New accounts only" off. Turn it off and the accounts you already have come back again, marked repeat: true, with no result fee.

Honest rows: what "not charged" actually means

Every keyword or hashtag that returns fewer accounts than you asked for gets one row saying which of these happened:

  • nothing_found — the search returned no accounts, Instagram has no such hashtag, or it returned all it had.
  • already_delivered — the search kept returning accounts you already have, so the run stopped paying for pages of them (the one row that may carry a check, and it says so).
  • your_limit_reached — your own limit (accounts per term, maximum cost, run seconds) stopped it.
  • limit_reached — this actor's own page limit for one term, or this run reached its limit; the row says which.
  • plan_limit_reached — the Apify free plan's daily allowance for this actor; the row says when it resets.
  • try_again — the read did not go through; a re-run is the fix.
  • not_accepted / not_supported — an input value it cannot use, or an answer this actor does not read yet; the row says what.

Apart from a check named on its own row, none of these is charged, and the run still finishes successfully. A time limit ends the collecting, never the delivering: accounts already in hand are always written out. The last row is the run's own summary: what was delivered, what was asked for, and what stopped it. Results may fail when Instagram changes; failed items are never charged.

How often this data changes

Search rankings move with Instagram's own activity, so a phrase finds a slightly different list each week. Follower and post counts move daily on an active account. The bio, website and contact block change only when the owner edits them, often not for months. For lead lists, a weekly run of the same searches with "New accounts only" on is what most buyers need.

Use it as an API endpoint (Standby)

Every input above also works as one HTTP request to this actor's endpoint (also on its Endpoints tab), by GET with the fields in the query string or by POST with the same fields as a JSON body:

curl -H "Authorization: Bearer <YOUR_APIFY_TOKEN>" \
"https://steadyfetch--instagram-account-search-scraper.apify.actor/?keywords=bakery&maxAccounts=20&enrichContacts=true"
SettingWhat it does
keywordsA search phrase. Repeat it for more than one.
hashtagsInstagram hashtags, with or without the #. Repeat it or separate with commas for more than one.
maxAccountsHow many accounts for each term. 50 if you leave it out.
enrichContactstrue reads every account in full (counts, category, bio, website, public contacts).
The accounts come back in the response as JSON, with the same columns as a dataset row, charged per account (and per full read) at the same prices as a run. One request takes up to 10 terms at 50 accounts each (3 terms at 20 on the Apify free plan). The endpoint keeps no memory of what you already have, so every request reads fresh and no check is ever charged there. A request that returns no accounts is not charged; if a request's charge cannot be completed, its accounts are not sent.

Limits and good manners

  • Max accounts per term: 50 by default, up to 200. Above that the run continues at 200 and one uncharged row says so.
  • Pages per term: at most 12, and a term stops after two pages in a row that added nothing new.
  • Handles are not this actor's input. It finds accounts; to read accounts you already know by handle or link, use the Instagram Bio Scraper. A handle list sent here is refused on an uncharged row that says so.
  • Only public data: what Instagram shows any visitor. Private accounts appear in search with their flag set; their posts are never read.

Reliability

Every row says what it was charged. A read that fails is tried again before it is reported; a row that cannot be delivered is never charged; and the run never ends on a limit it set itself without saying so on the last row.

Support

Questions, a search that returns something odd, or a column you need: open an issue on the Issues tab and it will be looked at.

If it earned its keep, a rating helps other buyers find it, and saving the actor keeps it one click away.