Instagram Email Scraper
Pricing
from $3.50 / 1,000 results
Instagram Email Scraper
Find public emails of Instagram accounts by niche and location, @username or profile link. Get email, phone, WhatsApp, website, social links, bio and followers, with a lead score for each account. Export to CSV or Excel. No login or cookies needed.
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Insights Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Security
Limited permissionsShare
๐ฎ Instagram email scraper: what is Instagram Email Scraper?
Instagram Email Scraper helps marketers, agencies, sales teams and brands with Instagram lead generation and influencer outreach by turning a niche and a city into a list of Instagram accounts that show a public contact email. Type a niche such as fitness coach, add a place such as Miami or paste @usernames, click Start, and get one lead per account with email, email type, phone, website, social links, bio and follower stats, with no Instagram login or cookies.
Free plan runs have no extra limits: they work the same as runs on paid plans, and the $5 monthly Apify credit pays for the result charges and the platform usage. The easiest way to try it: keep the prefilled search (fitness coach in Miami) and click Start. The default run saves up to 10 leads.
- ๐คณ Influencer outreach and creator outreach: find creators in your niche who publish a contact address, and see the Instagram influencer email next to followers, verified badge and bio before you pitch.
- ๐ช Local business leads: search a niche plus a city, such as yoga studio in Austin, and get studios, coaches, salons and shops that list an email, a website or a phone.
- ๐ข B2B leads: set Email type to business emails only to keep Instagram accounts whose public email is on their own company domain, with website, phone and a lead score.
- ๐ค Brand partnerships and PR: build a shortlist of accounts for brand partnerships, sponsorships and PR, and sort it by followers or lead score.
- โ Lead enrichment: paste a list of @usernames or profile links and add the public email, phone and website of each account.
- ๐ Sales prospecting: send the leads to Google Sheets or your CRM and work them like any other prospect list.
What can Instagram Email Scraper do?
- ๐ Mix niches, @usernames and profile links in one list. Use a keyword to find influencers by niche, or look up the accounts you already know. Duplicates are removed.
- ๐ Add a city or country to every niche search. This is how you find Instagram influencers by location, or local shops in one town. The place words are added to the search, so you get accounts that match the niche and mention the place; the Actor does not verify where an account is based.
- ๐ฏ Filter the emails: any email, business emails only, free emails only (Gmail, Outlook, iCloud and similar) or one specific domain (which replaces the email type), plus a minimum follower count.
- ๐ Check linked websites: when the bio has no matching email, it opens the account's website or link-in-bio page to look for emails, phones, WhatsApp and social links.
- ๐ฌ Check the mail domain: every email passes format checks, and
email_validtells you whether its domain can receive mail. This is not mailbox verification: it does not prove that the inbox exists. - โญ Score each lead from 0 to 100 with
lead_score, a rule-of-thumb (heuristic) score, not a guarantee. It is in the Emails table only. - โก Live results: this Instagram email extractor saves every lead as soon as it is found, so the table fills while the run is going.
- ๐ฆ Export to JSON, CSV, Excel, XML or HTML, or run it by API, on a schedule and with integrations.
๐๏ธ What data can Instagram Email Scraper extract?
Every lead is one row of Instagram contact details: who the account is, how to reach it and how big it is. As an Instagram contact scraper, it reads only what any visitor can see: the public profile and the account's own linked pages.
| Field | What you get |
|---|---|
๐ค username | Instagram username (handle) |
๐ profile_url | Link to the Instagram profile |
๐ full_name | Display name on the profile |
๐ง email | Best matching public email for your filter |
๐ท๏ธ email_type | free (Gmail, Outlook and similar), business (own domain) or disposable (a throwaway mail service). disposable is an output flag only: there is no input filter for it, so remove those rows after export if you do not want them |
๐ฌ email_valid | true when the email domain can receive mail, false when it cannot, null when not checked or unknown. A domain check, not mailbox verification |
๐จ other_emails | Other public emails found for the account |
โ๏ธ phone | First phone found in the bio or on the linked website |
๐ฑ whatsapp | WhatsApp number found on a linked page |
๐ website | Main website of the account owner |
๐งท socials | Other social profiles found on linked pages: YouTube, TikTok, Facebook, X (Twitter), LinkedIn, Telegram |
๐ matched_keywords | Words from your searches and location found in the bio, name or handle |
๐ bio | Profile biography text |
๐ฅ followers | Follower count |
๐ฃ following | Number of accounts the profile follows |
๐ผ๏ธ posts | Number of posts |
๐๏ธ is_verified | Whether the profile has the verified badge |
๐ is_private | Whether the profile is private |
โญ lead_score | 0 to 100 rule-of-thumb estimate of how worth contacting the lead is (mail domain accepts email, business domain, reach, extra channels). In the Emails table only, not in the main table |
Note: Linked websites are opened only when the bio has no email that matches your filter. So
socialsand a phone from the website appear mostly for accounts whose email came from their website. Well-known free providers such as Gmail getemail_valid: true.email_valid: truedoes not prove that the mailbox exists. Name, bio and follower fields can benullwhen Instagram shows only part of a profile.
Phone numbers, websites and social links
- โ๏ธ As an Instagram phone number scraper, it returns the first phone in international format (with a
+) from the bio, or a phone link from the linked website. - ๐ Link-in-bio pages and short links are not counted as the
website; the account's own site is. - ๐งท Social links are taken from the linked pages, one per network.
What data can't Instagram Email Scraper extract?
- โ Emails that are not public: private data, direct messages, or an address that is not written in the bio or on the linked pages.
- โ The email behind a profile's Contact button. You get the public email shown on the account or its linked site.
- โ Mailbox checks.
email_validchecks the domain, not the inbox. - โ Posts, Reels, comments and follower lists. For posts, use Fast Instagram Post Scraper.
- โ Engagement rate and latest posts. For full profile data, use Instagram Profile Scraper.
- โ Sending emails or messages. The Actor collects leads; it does not contact anyone.
๐งญ How to scrape Instagram emails
Instagram Email Scraper is designed for an easy start, even if you have never extracted data from the web before. Here is how to extract emails from Instagram accounts in a few clicks.
- Create a free Apify account using your email.
- Open Instagram Email Scraper. To just try it, skip to step 5: the form is already filled with
fitness coach,Miamiand 10 leads. - In Searches, add one entry per row of the list: a niche such as
yoga studio, an @username such as@evaafit_, or a profile link. - Set Location (for example
Austin, or clear it to search anywhere), Max leads (for example10) and, if you want, Email type (start with any email) and Min followers. - Click Start. Each lead appears in the table and in the log as soon as it is found.
- Open Storage, then Datasets, then Export to download the leads in JSON, CSV, Excel, XML or HTML. Export the Email leads table first; it has every lead.
Words used in this README
- Actor: an app on the Apify platform, such as this scraper.
- Dataset: the results table of a run. Key-value store: a small file store of the run, used here for the run totals.
- Pay-per-event: you pay per event, here per lead saved, plus a small start fee.
- Platform usage: the computing time and memory a run uses on Apify, plus any Apify Proxy traffic (Apify's network of connections for reaching websites).
- Maximum charge limit: a cap on the result charges you set in the run options when you start a run.
- Task: a saved input you can run again. Schedule: runs a task at set times. Webhook: a message Apify sends to another app when a run finishes.
- MCP: a standard way to connect AI assistants such as Claude to tools like this Actor.
๐ฒ Instagram email scraper pricing: how much does it cost?
Instagram Email Scraper uses a pay-per-event model: you pay for each lead saved, plus a small start fee per run. Your bill has three parts:
- Results: one result is charged for every lead saved to the main Email leads table. The price depends on your Apify plan, as in the table below.
- Start fee: $0.00005 (a twentieth of a cent) per run at the default memory of 1 GB. It is the same on every plan.
- Platform usage: the compute used by the run, billed at your Apify plan's own rates. If Apify Proxy is used during the run, its traffic is part of platform usage too.
| Plan | Price per result | Price per 1,000 results |
|---|---|---|
| ๐ Free | $0.005 | $5.00 |
| ๐ฑ Starter | $0.0045 | $4.50 |
| ๐ Scale | $0.004 | $4.00 |
| ๐๏ธ Business and higher | $0.0035 | $3.50 |
The plan discount applies to the result price only. The start fee is the same on every plan, and platform usage is billed at your Apify plan's own rates.
Example: 1,000 leads on the Free plan cost 1,000 x $0.005 = $5.00 in result charges, plus $0.00005 for the start fee, plus platform usage. On Business that is 1,000 x $0.0035 = $3.50 in result charges. The default run (up to 10 leads) is at most 10 x $0.005 = $0.05 on the Free plan, plus the start fee and platform usage.
There is no typical platform usage figure here, because it depends on your searches and filters. Do a small test run (for example 10 leads) and read the total cost on the run page before you scale up.
What is not charged: rows saved with Keep profiles without email, the copies of each lead in the Contacts, Profiles and Emails tables, and accounts that were filtered out or skipped. A run that ends with 0 leads has no result charges. A run that stops early or fails is charged only for the leads it saved. The start fee and the platform usage the run used apply in both cases. See the pricing tab for the full price list.
Is there a free Instagram email finder?
You can start for free. The Free plan includes a $5 monthly credit that pays for result charges and platform usage, and Free plan runs have the same features and limits as paid runs. How far the credit goes depends on how many leads you save and the platform usage of your run, so do a small test run first and read the cost on the run page. You can also set a maximum charge limit in the run options when you start a run. The run stops cleanly when the result charges reach it, with every lead found so far saved. Platform usage is billed on top.
โฌ๏ธ Input
You need one thing: Searches, a list of niches, @usernames or profile links. Set the input in Apify Console or send it as JSON through the API.
Settings most people change
- ๐ Searches (
urls): one per line. A niche or keyword such asfitness coach, an @username such as@evaafit_, or a profile link. Required. Duplicates are removed. Used with @usernames, it works as an Instagram email finder by username. - ๐ Location (
location): a city or country added to every niche search, for exampleMiamiorGermany. It applies to niche searches only: @usernames and profile links are looked up as they are, whatever the location. In Apify Console the field is prefilled withMiami, so clear it to search anywhere. API runs that leave it out search anywhere. - ๐ Max leads (
maxItems, default 10): stop after this many leads.0means no cap (as many as can be found). If you type a number, it can be up to 100,000. - ๐ท๏ธ Email type (
emailFilter, default any): any email, business emails only, or free emails only. Business emails only keeps a public email on the account's own domain, sometimes called an Instagram business email, rather than a Gmail address. There is no option fordisposableemails; they show up only as anemail_typevalue in the output. - ๐ค Specific email domain (
customEmailDomain): keep only emails on one domain, for examplebrand.comor@gmail.com. When filled, it replaces Email type. - ๐ฅ Min followers (
minFollowers, default 0): skip accounts with fewer followers.
Four more fields are rarely needed:
- ๐ Keep profiles without email (
includeNoEmail, default off): also save accounts where no email was found. These rows haveemail: null, do not count toward Max leads and are not charged. - ๐ Check linked websites (
crawlWebsite, default on): open the website or link-in-bio page when the bio has no matching email. - ๐ฌ Check mail domain (
checkMx, default on): fillemail_valid. When it is off,email_validisnull. - ๐ก๏ธ Proxy configuration (
proxyConfiguration): optional and off by default. The Actor uses Apify Proxy when needed.
Here is a small example that looks for fitness coaches in Miami and stops at 10 leads:
{"urls": ["fitness coach"],"location": "Miami","maxItems": 10}
See the input tab for a full description of all fields.
Searches
Each line is read as one of three things: a niche or keyword, an @username, or a profile link. To use it as an Instagram contact info finder for accounts you already know, paste their usernames or profile links. Post and Reel links, and @handles that are not valid usernames, are skipped with a warning in the log.
- โ
Good:
fitness coach,@evaafit_,https://www.instagram.com/evaafit_/ - โ Bad:
https://www.instagram.com/p/<post-id>/(a post link)
โ ๏ธ With @usernames and profile links, an account without a public email is dropped unless Keep profiles without email is on.
Specific email domain
When this field is filled, it replaces Email type. A leading @ is fine, and subdomains match too. A value without a dot is ignored, with a warning in the log.
- โ
Good:
brand.comor@gmail.com - โ Bad:
brand
Min followers
When a minimum is set, accounts whose follower count cannot be read are skipped as well, because they cannot prove they meet it.
โ ๏ธ Every saved lead is one billed result. With Max leads set to
0on a broad niche, set a maximum charge limit when you start the run.
โฌ๏ธ Output
Results are stored in datasets. In Apify Console, open Storage, then Datasets, then Export to download them in JSON, CSV, Excel, XML or HTML, with only the fields you need. Each run gives you an Instagram email list you can open in Excel or Google Sheets.
The run has four tables. Most people need only the first one:
| Table | What is in it | When to open it |
|---|---|---|
| ๐ Email leads (main) | Every lead with all fields. Views: Email leads (the key columns) and All fields | Export this one for your outreach list. It is the only charged table |
| ๐ Contacts | username, email, other_emails, phone, whatsapp, website, socials | When you only want contact columns |
| ๐ Profiles | username, profile_url, full_name, bio, followers, following, posts, is_verified, is_private, matched_keywords | When you only want profile columns |
| โญ Emails | username, email, email_type, email_valid, lead_score | When you want to sort by lead_score, which is only in this table |
Contacts, Profiles and Emails are optional splits of the same leads, not extra data. You find all four in the run's Output tab and under Storage, then Datasets. The status line on the run page shows how many leads were found so far.
JSON example
Results for the input example above, shortened to one lead:
[{"username": "evaafit_","profile_url": "https://www.instagram.com/evaafit_/","full_name": "Eva Mitchell | Fitness & Wellness Coach","email": "elevatewithevaa@gmail.com","email_type": "free","email_valid": true,"other_emails": [],"phone": null,"whatsapp": null,"website": "https://www.elevatewithevacoaching.com","socials": {},"matched_keywords": ["fitness", "coach", "miami"],"bio": "Helping women build muscle & find balance ...","followers": 104461,"following": 459,"posts": 917,"is_verified": true,"is_private": false}]
Emails table example
The same lead in the Emails table, with its lead score:
{"username": "evaafit_","email": "elevatewithevaa@gmail.com","email_type": "free","email_valid": true,"lead_score": 85}
Run totals (optional)
You do not need this for a normal run. If you want the numbers behind a run, open Storage, then Key-value stores, and the Run summary record (key RUN_SUMMARY). It counts the leads saved and charged, the accounts with no matching email, the accounts under your follower minimum, the profiles that could not be read and the run time. It also says whether the run stopped at the maximum charge limit (spend_limit_reached) or the run timeout (time_limit_reached).
๐ก Tips and recurring runs
How many leads can you get with Instagram Email Scraper?
Max leads goes up to 100,000, and 0 means no cap. The real number depends on how many accounts in your niche and location publish an email, on your email type, domain and follower filters, and on whether Instagram shows profile pages during the run. Like any Instagram leads scraper, it can only return accounts that publish a contact address. Used as an Instagram leads finder for a narrow niche in a small town, a run can end with fewer leads than you asked for. The best way to know for your use case is a small test run.
If the run gets close to its timeout, it stops a little early and ends with every lead found so far saved. Raise the timeout in the run options to collect more.
Run it on a schedule
A weekly Instagram outreach list for one niche and city:
- Set up your input in Apify Console, for example
wedding photographer, LocationChicago, Max leads100and Email type business emails only. - Click Save as a new task so the input is stored.
- Open Schedules, create a schedule (for example every Monday) and attach the task.
- After each run, compare it with the previous one in your spreadsheet. Match leads by
username, keep the new ones, and check whetheremailorfollowerschanged.
The Actor does not track changes between runs by itself. The username match is a step you do in your own sheet or tool, and it is what finds the new accounts.
How to get cheaper, more focused results
- ๐ก Use a clear niche plus a city, and set Max leads to what you need.
- ๐ก Add Min followers or Email type to skip accounts you would not contact.
- ๐ก Turn off Check linked websites if the bio email is enough for you. You get fewer phones and social links.
- ๐ก Set a maximum charge limit when you start a run.
If a run ends with 0 leads or fails
A run with 0 leads still ends as succeeded, with the status "No leads found" and a next step in the log. Try these in order:
- Open the log and look for skipped entries, such as post or Reel links. Replace them with the @username.
- Clear Location, or try a broader niche such as
coachinstead ofonline fitness coach for moms. - Set Email type to any email, empty Specific email domain and lower Min followers.
- If the log says Instagram is not showing profile pages, or that the search found no profiles right now, run it again later or add @usernames directly.
A run fails right away when the input has a problem, for example a Max leads or Min followers value that is not a whole number of 0 or more. The status message says which fields to fix. If many requests in a row cannot connect, the run stops early, and the leads found so far stay saved. A failed or stopped run is charged only for the leads it saved, plus the start fee and its platform usage. If a run keeps failing, open an issue on the Issues tab with the run link.
Known issues
- โ ๏ธ The Actor reads Instagram without logging in, which is why you need no account. The trade-off is that Instagram sometimes shows only part of a profile to visitors who are not logged in.
- โ ๏ธ Some profiles show only basic stats without a bio or links. Their emails can be missed, and the log says so.
- โ ๏ธ If Instagram does not show profile pages for a while, the run continues with less detail. Try again later.
- โ ๏ธ If a search finds nothing at that moment, add @usernames directly or run it again later.
๐ Instagram email scraper API and integrations
Can I use Instagram Email Scraper as an Instagram email API?
Yes. The Apify API gives you programmatic access: start runs, schedule them and fetch results. Use the apify-client NPM package for Node.js or the apify-client PyPI package for Python. See the API tab for ready-to-use code.
Instagram email scraper Python example
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("insights_data/instagram-email-scraper").call(run_input={"urls": ["fitness coach"],"location": "Miami","maxItems": 10,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["username"], item["email"], item["followers"])
Can I integrate it with other apps?
Yes. Connect it through Apify integrations to Google Sheets, Slack, Make, Zapier, n8n and more. Workflows that fit this Actor:
- ๐ Influencer email list in Google Sheets: save your niche and city as a task, schedule it weekly, and send each finished run's dataset to a Google Sheet that your team works from.
- ๐๏ธ Leads into your CRM: in Make or Zapier, start the task, read the dataset items and create a contact for each new
usernamewith its email, phone and website. - ๐ Slack alert: add a webhook on the task that fires when a run succeeds, and post the lead count and a dataset link to a Slack channel.
- ๐ง n8n: use the Apify node to run the Actor, then pass the leads to a sheet, a database or an AI step.
This is the Instagram outreach automation part: the Actor collects and delivers fresh leads on a schedule. It sends no emails or messages; writing and sending your outreach happens in your own email or outreach tools. Use webhooks to trigger any of these when a run finishes.
Can I use Instagram Email Scraper with AI agents (MCP)?
Yes. Connect it to Claude and other AI assistants through the Apify MCP server, then ask the assistant to find leads for a niche and city. Open the MCP tab for setup steps.
๐งฉ Other Instagram scrapers
These Actors cover the Instagram data this one does not, and two more help with lead lists outside Instagram. If you need a general Instagram data scraper for profiles, posts or search, start here:
- ๐ Instagram Profile Scraper: bio, followers, following, posts, verified status, emails and phones from the bio, engagement rate and latest posts.
- ๐ Instagram Search Scraper: search Instagram by keyword, @username or link and get profiles, places, posts and reels.
- ๐งฌ Instagram Related Profiles Scraper: the similar and suggested accounts Instagram shows for a public profile, useful for influencer discovery.
- ๐ผ๏ธ Fast Instagram Post Scraper: the latest public posts of a profile with captions, likes, comments and Reel views.
- ๐บ๏ธ Google Map Scraper: places by keyword with phone, website, rating and lead flags such as no website.
- ๐ผ LinkedIn Company Employees Scraper: public employees of a company with title, seniority and optional work emails.
โ FAQ
Is it legal to scrape Instagram?
Web scraping is generally legal if you extract publicly available data, and this Actor collects only what any visitor can see. Emails and phone numbers are personal data, though. Respect personal data rules such as GDPR, have a legitimate reason to collect and use the data, follow anti-spam laws such as CAN-SPAM before you send emails, and take Instagram's Terms of Use into account. This is not legal advice.
How does Instagram Email Scraper work?
It works like a visitor browsing public profiles. For each niche it looks for public Instagram accounts that match your words, adding your location words when you set one. So results match the niche and mention the place; they are not checked against where the account is based. @usernames and profile links skip this step and are read directly. It reads each profile and takes the email from the public bio, because an Instagram bio email is the most common way accounts share a contact address. When the bio has no matching email, it opens the account's own website or link-in-bio page. Then it applies your filters, checks the mail domain and saves the lead at once.
How to find email on Instagram?
Check the bio first, then the links in the bio, such as a website or a link-in-bio page. That works for one account. To find Instagram account emails in bulk, add a niche (optionally with a city) or a list of usernames to this Actor and it does the same checks for every account.
How to find email from Instagram username?
Add the username with the @ (for example @evaafit_), or the profile link, to Searches. Without the @, a plain word is treated as a niche search, not as a username. The Actor reads that profile and its linked pages and returns the public email if there is one. If none is found, the account is dropped unless Keep profiles without email is on.
How is it different from an Instagram email finder tool you use by hand?
| Checking profiles by hand | Instagram Email Scraper | |
|---|---|---|
| Accounts per session | One at a time | A whole niche, city or list per run |
| Linked websites | You open each one | Opened when the bio has no matching email |
| Filters | None | Email type, specific domain, min followers |
| Output | Copy and paste | Table with JSON, CSV and Excel export |
| Recurring lists | Repeat by hand | Saved task plus a schedule |
How is Instagram Email Scraper different from Instagram Profile Scraper?
Instagram Email Scraper builds lead lists; Instagram Profile Scraper gives you full data for profiles you already know.
| Instagram Email Scraper | Instagram Profile Scraper | |
|---|---|---|
| Input | Niche + location, @usernames or profile links | Usernames or profile links |
| Finds new accounts by niche | โ | โ (you list the profiles) |
| Emails and phones | From the bio and the account's linked website or link-in-bio page | From the bio |
| Lead tools | Email type and domain filters, email_valid, lead_score | Not part of its description |
| Engagement rate and latest posts | โ | โ |
| What is charged | One result per lead with an email | See its pricing tab |
Use this Actor to find who to contact, and Instagram Profile Scraper to study the accounts in more depth.
Does it return the email behind the Contact button?
No. It returns the public email shown on the account or its linked site, meaning an address written in the public bio, or on the account's own website or link-in-bio page. An Instagram business contact email that appears only behind the profile's Contact button is not part of the output.
Can I get an Instagram creator email from a private account?
Only if it is public. A private account's bio is still visible, and is_private shows that the account is private, but the Actor never sees anything that requires following the account.
Why scrape Instagram emails?
- ๐คณ Influencer marketing: shortlist creators by niche, followers and verified badge, with a way to contact them.
- ๐ช Local sales: build city-by-city lists of studios, coaches and shops for your service.
- ๐ค Partnerships: find brands and creators for co-marketing and sponsorships.
- ๐๏ธ CRM upkeep: refresh the contact details of accounts you already work with.
Why am I getting fewer leads than expected?
- Only accounts with a public email that matches your filters count as leads. Try Email type any.
- Remove Location or try a broader niche.
- Lower Min followers.
- Check the log for skipped inputs such as post links.
- If the log says Instagram is not showing profile pages, run it again later.
Do I need an Instagram account or cookies?
No. There is no field for an account or cookies, and the Actor reads only public pages.
๐ Support and feedback
Found a bug or have a feature request? Please create an issue on the Issues tab.
Need a custom solution or more data? Contact us at hello.insights.data@gmail.com.
Built and maintained by insights_data.