Instagram Profile Email Scraper avatar

Instagram Profile Email Scraper

Pricing

$2.99 / 1,000 results

Go to Apify Store
Instagram Profile Email Scraper

Instagram Profile Email Scraper

Instagram Profile Email Scraper SD - Instagram Profile Email Scraper is a powerful tool that extracts public bio emails, names, bios, avatars, external links and follower, following and post counts from Instagram profile URLs or usernames - public profiles only, no login, no private data.

Pricing

$2.99 / 1,000 results

Rating

0.0

(0)

Developer

Neuro Data

Neuro Data

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

5

Monthly active users

2 hours ago

Last modified

Categories

Share

Instagram Profile Email Scraper turns keywords, or a list of Instagram profile URLs and handles, into a clean dataset of public contact emails, bios, follower counts and avatars — an Instagram email finder and Instagram profile scraper in one Actor.

There are two ways in. Give this Instagram profile scraper keywords and it looks for accounts that publish a contact address, then enriches every one it finds. Give it profile URLs or usernames and it goes straight to the accounts you already know.

A keyword run does not return accounts that merely match a word. The Instagram Profile Email Scraper targets pages that publish an address beside it, so most rows arrive with an email attached. Both inputs can be combined in one run.

There is no login, no cookies, no session token, no private or official API, and no browser or JavaScript rendering. Only public profile data is collected by the Instagram Profile Email Scraper.

One honest note up front, because it shapes your runs. Instagram rate-limits shared proxy pools, so some profiles in a large run come back blocked. Lower maxConcurrency and re-run those rows.

That is the normal rhythm for any Instagram email scraper working from a shared residential pool without a login.


What the Instagram Profile Email Scraper does

The Instagram Profile Email Scraper both finds the audience and enriches it. It runs in two phases, and the order is the whole design.

Phase 1 — Google harvest, on the GOOGLE_SERP proxy. Given keywords, the Instagram Profile Email Scraper searches Google with an email dork — site:instagram.com wedding photographer "@gmail.com" — expanded across keyword x modifier x address domain, paging up to maxPagesPerKeyword per query.

Each result block yields the account handle and the address published on that page, in one request. Google rarely prints the target URL now, so the handle comes from the site label, the breadcrumb, or a Name (@handle) title.

This is where the volume and most of the addresses come from. Asking Google for pages that already carry an address is one request per ten accounts; fetching every profile hoping for one is a request each, and most bios have none.

Phase 2 — profile enrichment, on the RESIDENTIAL proxy. Every account the Instagram Profile Email Scraper finds is then fetched for its real profile data — followers, avatar, bio, verified flag — and merged into one row with the address from phase 1. Accounts you supply skip phase 1 and start here.

Search for an Instagram email scraper and you will find tools that promise to invent contacts. The Instagram Profile Email Scraper does not. It is an Instagram contact scraper for addresses creators chose to publish.

In order:

  1. Reads keywords and/or profileUrls and usernames, plus your limits and filters.
  2. Runs phase 1 and queues every handle harvested.
  3. Normalises every target to one canonical URL — https://www.instagram.com/username/. A bare handle, an @handle and a full URL resolve to the same target, and duplicates are dropped.
  4. Fetches each profile through the Apify residential proxy, several in parallel, with a fresh exit IP on every retry. The first attempt sends a full browser header set, as a browser asks for a public page; a retry falls back to a plainer one.
  5. Parses the response with a regex-first cascade, each step filling only what the previous could not.
  6. Extracts any further emails from the bio, display name and external URL, then pushes one row per profile.

The Instagram Profile Email Scraper cascade runs a regex battery against the raw HTML matching key names directly ("biography", "follower_count", "is_verified"), then the Instagram-specific parser, then Open Graph and link-preview meta tags.

Matching key names rather than following an object path is a deliberate design choice. Platforms move those objects between releases; the key names survive.


Why choose this Instagram Profile Email Scraper

Most tools sold as an Instagram bio email extractor either need your logged-in session or hand you raw HTML. The Instagram Profile Email Scraper does neither.

What separates a usable Instagram email finder from a noisy one is the filtering, not the fetching. Here is what this Instagram email scraper does with the text.

Obfuscation-aware hygiene. Creators hide addresses on purpose. The Instagram Profile Email Scraper undoes [at], (dot), spaced a @ b, zero-width characters and full-width before matching.

Boundary-correct domains. @gmail.com will not match inside @gmail.company, so your CRM does not fill with the malformed addresses a naive Instagram email extractor produces.

Junk filtered, role addresses kept. Placeholder locals such as email@, yourname@ and noreply@ are dropped, as are prose words like the@. Real role addresses — hi@, hey@, hello@ — are kept, because that is what creators publish for partnerships.

Every row saved as it lands. Results stream: each account goes to profile enrichment the moment the Google search finds it, so the first rows are saved seconds into a run and keep arriving while the search continues.

Each saved row is logged as it is written, naming the handle, address and counts found, and every row carries the same field set whether it came from a keyword or a URL you supplied.


How to use the Instagram Profile Email Scraper step by step

Running the Instagram Profile Email Scraper takes about a minute of setup.

  1. Open the Actor on Apify and click Try for free or Start.
  2. Start from a keyword. Type a niche, job title or industry into Search keywordswedding photographer, manager — and the harvest finds accounts in it that publish an address. Add a Location, or raise Pages per keyword to find more.
  3. Or paste your targets into Instagram profile URLs. Full URLs, bare handles and @handles all work, and every list is combined and de-duplicated.
  4. Set Email domains to steer which address domains the search asks for, and to filter what is kept. Empty means the common free-mail providers.
  5. Toggle Only save profiles that have an email if a row without contact details is worthless to you.
  6. Set Max profiles to cap the run.
  7. Set Max concurrency conservatively. The default is 10, and the range is 1–30. Because Instagram rate-limits shared proxy pools, lowering this is the most effective change when you see blocks.
  8. Leave the proxy on RESIDENTIAL. Profile pages block datacenter IPs. Add a Proxy country only if you need a specific region.
  9. Click Save & Start. Rows appear in the dataset as they land.
  10. Re-run the blocked rows with lower concurrency.
  11. Export to CSV, JSON, Excel or XML, or pull the dataset into your CRM through the Apify API.

At the end of an Instagram Profile Email Scraper run the log reports counts of ok, blocked, not found and errors, so you know what to re-run and how to tune concurrency next time.


Input schema

Every field the Instagram Profile Email Scraper accepts, nothing invented:

FieldTypeDefaultMeaning
keywordsarrayprefilled with example termsSearch terms. The Actor finds matching Instagram accounts and scrapes each one.
locationstring""Added to every keyword search, e.g. New York. Keyword search only.
maxPagesPerKeywordinteger 1–305Google results pages read per query. Raise to find more accounts. Keyword search only.
expandQueriesbooleantrueSearch each keyword in several phrasings (keyword + "email", + "contact", …). Keyword search only.
queryModifiersarrayemail, contact, business inquiries, collab, booking, dmExtra words combined with each keyword when expansion is on.
profileUrlsarray[]Full Instagram profile URLs. Bare usernames also accepted.
usernamesarray[]Handles without the URL. Combined with the list above.
customDomainsarray[]Address domains the search asks Google for, and a filter on the results. Empty searches the common free-mail providers and keeps every address found.
onlyWithEmailbooleanfalseSkip profiles whose public bio contains no address.
maxProfilesinteger 1–100000100Stop after this many profiles are saved.
maxConcurrencyinteger 1–3010How many profiles are fetched in parallel, and how many Google searches run at once. Higher is faster; lower it if rows come back blocked.
proxyGroupselectRESIDENTIALRESIDENTIAL, BUYPROXIES94952 or UNBLOCKER.
countryCodestring""Two-letter proxy country (US, GB, DE…). Empty for any.

That is the complete list — no data-source switch, no hidden options. Supply at least one of keywords, profileUrls or usernames; with none of them the Instagram Profile Email Scraper stops and tells you to add one.

Input examples for the Instagram Profile Email Scraper

Starting from keywords, with no list of accounts yet:

{
"keywords": ["wedding photographer", "florist"],
"location": "Austin",
"maxPagesPerKeyword": 5,
"expandQueries": true,
"onlyWithEmail": false,
"maxProfiles": 500,
"maxConcurrency": 3,
"proxyGroup": "RESIDENTIAL"
}

Starting from accounts you already know, or mixing both ways in one run:

{
"keywords": ["home baker"],
"profileUrls": ["https://www.instagram.com/juliabakes/", "@paintwithlee"],
"usernames": ["treklinescarl"],
"onlyWithEmail": true,
"maxProfiles": 500,
"maxConcurrency": 3,
"countryCode": "US"
}

Note maxConcurrency: 3. On a long Instagram lead generation run, going slower usually returns more rows than going wide.


Finding accounts from a keyword

Keyword search in the Instagram Profile Email Scraper is a real search, not a filter over URLs you supplied. Give this Instagram email finder a niche, job title or industry and the harvest looks for accounts in it that publish a contact address.

With expandQueries on, each keyword is combined with every entry in queryModifiers and every address domain, and each combination is paged separately. Location narrows the search; maxPagesPerKeyword sets how deep each query is read.

The harvest runs on the Apify GOOGLE_SERP proxy, the profile fetch on the RESIDENTIAL proxy. Neither group can do the other's job — Google is reachable only through GOOGLE_SERP, and Instagram needs residential exit IPs.

Every account the Instagram Profile Email Scraper finds this way is enriched exactly like one you pasted in yourself. Accounts you supplied are queued first, then whatever the harvest discovers, and keyword and query record which search produced each row.


Output schema

Every dataset row from the Instagram Profile Email Scraper has all of these fields:

FieldMeaning
successTrue when the profile was fetched and parsed, or an address was found for the account. A blocked fetch still yields a usable row when the harvest gave an address.
networkPlatform name
dataSourceWhich path produced the profile data — always page here
keywordThe keyword that found this account, or null for a supplied URL
queryThe exact Google query that found it, or null
descriptionThe result snippet Google showed, cleaned of labels and counters
profileUrlThe canonical profile URL that was requested
urlThe URL actually returned, after redirects
usernameHandle
fullNameDisplay/real name as published
displayNameHandle or title the platform shows
emailFirst public email found, or null
emailsEvery public email found, deduplicated
emailSourceWhere the addresses came from: search (the Google harvest), bio (the profile), bio+search, or null. search is the common value on a keyword run
bioPublic bio / description text
followersCountFollowers, when published
followingCountAccounts followed, when published
postsCountPosts, when published
isVerifiedVerified badge, when published
isPrivatePrivate account, when published
avatarUrlProfile picture URL
userIdNumeric/string platform id, when published
errorWhy a row failed, or null
scrapedAtISO 8601 UTC timestamp

A field Instagram does not publish is not part of the row at all. Normal, and not hidden.

Output example from the Instagram Profile Email Scraper

A realistic row from a keyword run:

{
"success": true,
"network": "Instagram",
"dataSource": "page",
"keyword": "home baker",
"query": "site:instagram.com home baker email \"@gmail.com\"",
"description": "Home baker in Austin. New recipe every Friday. Collabs: hello@juliabakes.co",
"profileUrl": "https://www.instagram.com/juliabakes/",
"url": "https://www.instagram.com/juliabakes/",
"username": "juliabakes",
"fullName": "Julia Baker",
"displayName": "juliabakes",
"email": "hello@juliabakes.co",
"emails": ["hello@juliabakes.co"],
"emailSource": "bio+search",
"bio": "Home baker in Austin 🍰 new recipe every Friday | collabs: hello (at) juliabakes.co",
"followersCount": 84210,
"followingCount": 913,
"postsCount": 1204,
"isVerified": false,
"isPrivate": false,
"avatarUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/4b7c1e9a.jpg",
"userId": "1794456321",
"error": null,
"scrapedAt": "2026-08-31T09:41:12.508Z"
}

Notice that keyword and query show which search found the account, and description is the snippet Google printed beside it.

The bio wrote the address as hello (at) juliabakes.co, normalised by the Instagram Profile Email Scraper before matching. And likesCount is null while secUid is "", because Instagram publishes neither.


Use cases for the Instagram Profile Email Scraper

Influencer marketing outreach. Search a niche keyword and the Instagram Profile Email Scraper returns creators who publish a contact address, already enriched — the classic Instagram creator email scraper job.

Agency prospecting. Run a keyword for the vertical you sell into and build a pipeline of accounts publishing a business email: a straightforward Instagram lead generation workflow.

UGC sourcing. Use it as an Instagram contact scraper to find creators whose audience size and posting volume match your budget, then reach them directly.

Lead enrichment for an existing CRM. You already have handles on your contact records. Point the Instagram Profile Email Scraper at them and it fills the empty email column.

Local business prospecting. Many small businesses run their storefront on Instagram and publish a booking address, which makes this a clean B2B discovery source.

Talent management. Track roster handles, follower count and contact route in one dataset, and re-run monthly to keep it fresh.

Competitive and market research. Measure audience size and posting volume across a peer set — an Instagram profile scraper use case with nothing to do with email.

Affiliate and partnership recruiting. Run it as an Instagram bio email extractor across a shortlist and hand sales a ready contact list.


Limitations of the Instagram Profile Email Scraper

Read these before you run. Honest constraints of the Instagram Profile Email Scraper:

Rate limiting is the main one. Instagram rate-limits shared proxy pools, so some profiles in a large run come back blocked. Lower maxConcurrency and re-run those rows. Expected behaviour, not a defect.

Yield varies, and it is not a promise. The Instagram Profile Email Scraper harvest asks for pages that publish an address, so most rows on a keyword run carry one. How many depends on the platform, the niche, and how many accounts in it publish an address at all.

A row is still returned when only profile data is available, with email: null — honest, not a failure. Addresses no longer come only from bios: the harvest and the profile are independent sources, and emailSource says which answered.

The harvest needs the GOOGLE_SERP proxy. It is the only route to Google. A keywords-only run fails without that proxy group; a run that also has profile URLs logs a warning and carries on with those.

Public data only. No login, no cookies, no private or official API, no browser, no JavaScript rendering. Anything a signed-out visitor cannot see is out of reach.

Private accounts stay private. A private profile publishes almost nothing, so no Instagram email finder — this one included — returns a bio for it.

Some fields come back empty. likesCount and secUid are not published by Instagram, and any other field the page does not carry is returned as null or "".

Retries help but do not eliminate blocks. The Instagram Profile Email Scraper makes up to four attempts per page with exponential backoff and a fresh exit IP, and a redirect to a login page counts as rate limiting, not a missing profile. Some rows still fail.

Free plan cap. On a free Apify account an Instagram Profile Email Scraper run is capped at 100 profiles. Paid plans are uncapped by the Actor.

Nothing is guaranteed. Platforms change their markup. This Instagram bio email extractor is built to survive that, not to be immune to it.


Pricing and run behaviour of the Instagram Profile Email Scraper

The Instagram Profile Email Scraper uses pay-per-event billing: actor-start once per run and profile-scraped for each saved row.

Instagram Profile Email Scraper runs are resumable. Progress is keyed to a hash of the input, so a migrated or restarted run continues instead of refetching profiles you paid for. Changing the input starts a clean run.


FAQ

How does keyword search work? In two phases. A Google harvest on the GOOGLE_SERP proxy searches with an email dork — site:instagram.com wedding photographer "@gmail.com" — expanded across your keywords, queryModifiers and address domains, and each result returns a handle with the address published beside it. Every account found is then fetched on the RESIDENTIAL proxy for its profile data, and the two are merged into one row.

Why does a row have success: true when the fetch was blocked? Because success now means the run produced something usable: the profile was fetched, or an address was found. A profile Instagram declined to serve still yields a row with the email from the harvest, and error records what happened.

Do profile URLs and usernames still work? Yes, unchanged. Keywords are an additional way in, not a replacement, and both can be combined in one run — supplied accounts are queued first, then whatever the harvest discovers.

Does it need my Instagram login, cookies or an API key? No. The Instagram Profile Email Scraper never logs in, never uses cookies or a session, and never touches a private or official API. It reads only public profile data.

Why did some rows come back with success: false? Because neither route produced anything: the fetch was blocked and no address was found. Lower maxConcurrency, keep the proxy on RESIDENTIAL, and re-run them.

What is a good maxConcurrency value? The default is 10, and the range is 1–30. If the run summary shows a lot of blocked rows, drop to 2 or 3 — slower and complete beats wide and patchy.

Will it find an email that was never made public? No. This Instagram email finder reads public pages — bio, display name, external URL, plus what Google indexed. Addresses never published stay out of reach.

What if a creator wrote their address as name (at) domain (dot) com? It is still matched. Obfuscation is undone before extraction, including [at], (dot), spaced a @ b, zero-width characters and full-width .

Why are likesCount and secUid empty? Instagram does not publish a total like count, and secUid is TikTok's identifier. Both exist in every row for schema consistency across the family.

How many profiles can one run process? Free Apify plans are capped at 100 profiles per run. On paid plans maxProfiles accepts up to 100000.

Can I filter to only business domains? Yes. List them in customDomains. That both steers which domains the search asks Google for and keeps only addresses on them.

Does it work as a general Instagram lead generation tool? Yes. Start from a keyword and the Instagram Profile Email Scraper harvest builds the list, then enrichment fills it in; or supply handles and it enriches those.


ActorLink
Facebook Profile Email Scraperhttps://apify.com/neuro-data/facebook-profile-email-scraper
TikTok Profile Email Scraperhttps://apify.com/neuro-data/tiktok-profile-email-scraper
YouTube Profile Email Scraperhttps://apify.com/neuro-data/youtube-profile-email-scraper
X Profile Email Scraperhttps://apify.com/neuro-data/x-profile-email-scraper
Pinterest Profile Email Scraperhttps://apify.com/neuro-data/pinterest-profile-email-scraper
Snapchat Profile Email Scraperhttps://apify.com/neuro-data/snapchat-profile-email-scraper
Threads Profile Email Scraperhttps://apify.com/neuro-data/threads-profile-email-scraper
Tumblr Profile Email Scraperhttps://apify.com/neuro-data/tumblr-profile-email-scraper
Telegram Profile Email Scraperhttps://apify.com/neuro-data/telegram-profile-email-scraper
Twitch Profile Email Scraperhttps://apify.com/neuro-data/twitch-profile-email-scraper
Kick Profile Email Scraperhttps://apify.com/neuro-data/kick-profile-email-scraper
Substack Profile Email Scraperhttps://apify.com/neuro-data/substack-profile-email-scraper
Patreon Profile Email Scraperhttps://apify.com/neuro-data/patreon-profile-email-scraper
Behance Profile Email Scraperhttps://apify.com/neuro-data/behance-profile-email-scraper
Dribbble Profile Email Scraperhttps://apify.com/neuro-data/dribbble-profile-email-scraper
DeviantArt Profile Email Scraperhttps://apify.com/neuro-data/deviantart-profile-email-scraper
SoundCloud Profile Email Scraperhttps://apify.com/neuro-data/soundcloud-profile-email-scraper
Mixcloud Profile Email Scraperhttps://apify.com/neuro-data/mixcloud-profile-email-scraper
Mastodon Profile Email Scraperhttps://apify.com/neuro-data/mastodon-profile-email-scraper
Bluesky Profile Email Scraperhttps://apify.com/neuro-data/bluesky-profile-email-scraper
Linktree Profile Email Scraperhttps://apify.com/neuro-data/linktree-profile-email-scraper
Gumroad Profile Email Scraperhttps://apify.com/neuro-data/gumroad-profile-email-scraper
Buy Me a Coffee Profile Email Scraperhttps://apify.com/neuro-data/buy-me-a-coffee-profile-email-scraper
GitHub Profile Email Scraperhttps://apify.com/neuro-data/github-profile-email-scraper
GitLab Profile Email Scraperhttps://apify.com/neuro-data/gitlab-profile-email-scraper
Hugging Face Profile Email Scraperhttps://apify.com/neuro-data/hugging-face-profile-email-scraper
DEV Community Profile Email Scraperhttps://apify.com/neuro-data/dev-to-profile-email-scraper
Hashnode Profile Email Scraperhttps://apify.com/neuro-data/hashnode-profile-email-scraper
Flipboard Profile Email Scraperhttps://apify.com/neuro-data/flipboard-profile-email-scraper

Support

Questions about the Instagram Profile Email Scraper, a bug report, or a custom Instagram lead generation build? Write to neurodata.apify@gmail.com.

Include your run ID and the input you used for a faster answer. Feature requests are welcome too.

You are responsible for how you use the data this Instagram profile scraper returns, including compliance with privacy and marketing law in your jurisdiction.