Instagram Email Scraper - Phone, WhatsApp & Website Contacts avatar

Instagram Email Scraper - Phone, WhatsApp & Website Contacts

Pricing

$6.10 / 1,000 contact records

Go to Apify Store
Instagram Email Scraper - Phone, WhatsApp & Website Contacts

Instagram Email Scraper - Phone, WhatsApp & Website Contacts

Find emails, phone numbers and WhatsApp for Instagram accounts: reads the bio, bio links, link-in-bio pages (Linktree, Later, Sprout, Stan, lnk.bio) and the account's own website contact pages. Every contact with its source. Related-account discovery, monitor mode. No login.

Pricing

$6.10 / 1,000 contact records

Rating

0.0

(0)

Developer

Top Api

Top Api

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

What does Instagram Email Scraper do?

Instagram Email Scraper turns a list of Instagram accounts into contact records: every email, phone number and WhatsApp number each account publishes, found in its bio, its bio links, its link-in-bio page (Linktree, Later, Sprout, Stan Store, lnk.bio and more) and the contact pages of its own website. One row per account, every contact with the page it came from. Built for agencies, sales teams, PR and influencer marketers who need to reach Instagram businesses and creators without copying contact details by hand.

Instagram Contact Scraper - Instagram Email Finder - Instagram Phone Number Scraper - Linktree Email Scraper

An Instagram profile and the website contact page that Instagram Email Scraper reads into one contact record

  • Emails, phones and WhatsApp in one row: emails, phones, whatsapp, plus a best single email and phone for your CRM.
  • It reads the website, not just the bio: the account's own homepage and its contact, imprint and about pages (mailto and tel links, schema.org data, footers). On a 75-account test 97% of the contacts found came from the accounts' websites.
  • Link-in-bio pages unwrapped: Linktree, Later Link in Bio, Sprout Social, Stan Store, Emplifi, lnk.bio, direct.me, bio.site, solo.to and other services; their links are followed to the account's own site.
  • Every contact with its source: contactDetails says where each email or phone was found (bio, bio link, link-in-bio page, website page URL), whether an email is a role or personal address, whether its domain matches the website, and whether the domain has a mail server (MX).
  • Related-account discovery: optionally add the accounts Instagram suggests next to yours and get their contacts too.
  • No Instagram login, cookies or API key.
  • Export anywhere: JSON, CSV, Excel; schedules, webhooks, Make, Zapier, n8n, Google Sheets, the Apify API and MCP.

What data can you get from Instagram contacts?

πŸ“§ Emails (`emails`) and best email (`email`)πŸ“ž Phone numbers (`phones`, `phone` in E.164)πŸ’¬ WhatsApp numbers (`whatsapp`)
🌐 The account's website (`website`, `websiteDomain`)🌳 Link-in-bio service and page (`linkInBioService`)πŸ”— Social profiles by network (`socials`)
🧾 Source of every contact (`contactDetails`)βœ… Role / personal email and MX checkπŸ“ Postal address from the website (`websiteAddress`)
πŸ‘€ Username, name, bio, profile URLπŸ‘₯ Followers and following🏷️ Account type and category
πŸ”— Every bio link with its label (`bioLinks`)πŸ“„ Pages read (`pagesScanned`)🧭 Related-to account (`relatedTo`)

On a 75-account test run (4 food brands and the accounts Instagram suggests next to them), 41 accounts had at least one contact. Of those 41 records, 73% carried an email, 63% a phone number, 5% a WhatsApp number, 98% a website and 95% at least one other social profile.

How to scrape Instagram emails with Instagram Email Scraper

  1. Create a free Apify account - it comes with monthly free credit.
  2. Open Instagram Email Scraper and click Try for free.
  3. Paste usernames or profile URLs into Instagram accounts, one per line.
  4. Pick Deliver accounts with (any contact, email only, phone only, email and phone, or every account) and click Start.
  5. Open the Storage tab and Export as CSV, Excel or JSON - or let a schedule run it for you.

⬇️ Instagram Email Scraper input

ParameterTypeDescription
πŸ” What to scrape
usernamesListRequired. Usernames, @handles, profile URLs or numeric ids, e.g. lukeslobster, @nutsdotcom, https://www.instagram.com/jenisicecreams/
startUrlsFile / URL listOptional list of accounts from a text or CSV file, merged with the list above
expandRelatedAccountsBooleanAlso find contacts for the accounts Instagram suggests next to each account. Default false
βœ‚οΈ Refine results
requireContactSelectany (an email, phone or WhatsApp - default), email, phone, emailAndPhone, none (every account)
accountTypeSelectAny, professional, business, creator or personal
minFollowers / maxFollowersIntegerFollower range. 0 = no limit
excludePrivateBooleanLeave out private accounts. Default false
βž• Extra data
scanDepthSelectwebsite (bio + link-in-bio + website, default), linkInBio, profile (bio only, fastest)
maxPagesPerWebsiteIntegerPages read per website, homepage included. Default 4
includeThirdPartyContactsBooleanAlso read sites the account links to that are not its own; their contacts go to thirdPartyEmails / thirdPartyPhones. Default false
πŸ” Monitoring
monitorModeBooleanRemember every account read and skip it on the next run. Default false
monitorStoreNameStringName of the memory, one per list. Default instagram-contacts-monitor
recheckAfterDaysIntegerRe-read known accounts after N days and deliver them again only if their contacts changed. Default 0 (never)
πŸ“¦ Output
maxResultsIntegerCap on delivered records. 0 = no cap
maxProfilesToCheckIntegerCap on accounts read, including those with no contact. 0 = no cap
compactBooleanCore fields only, sized for AI agents and CRMs
includeUnavailableBooleanAdd a status row for every account that could not be read
βš™οΈ Advanced
proxyConfigurationProxyApify datacenter proxy by default
maxConcurrencyIntegerAccounts processed at once. Default 5

Input JSON

{
"usernames": ["lukeslobster", "nutsdotcom", "jenisicecreams"],
"requireContact": "any",
"scanDepth": "website",
"maxResults": 50
}

Paste usernames, profile URLs or ids in the same list

Mix bare usernames, @handles, profile URLs and numeric user ids; duplicates are read once. Do: https://www.instagram.com/lukeslobster/ Β· Don't: https://www.instagram.com/p/C1abc/ (a post link is skipped with a warning).

Pick what a record must contain before you start

requireContact decides which accounts become rows. Leave it on any for a lead list, choose email for an email campaign, or none when you want a row for every account (for example to see which ones publish nothing).

Turn on Also find related accounts and paste 3-5 accounts of the kind you want: the run adds the accounts Instagram suggests next to them (measured: 22 for one bakery, 38 for one seafood restaurant, none for some creators) and reads their contacts too. Set Max accounts to check to bound the run.

⬆️ Instagram Email Scraper output

Every account with a contact becomes one dataset item. Here are 8 real records from the 75-account test run (the JSON below is a real record of a later run):

Instagram Email Scraper output table with emails, phones, WhatsApp and websites

{
"username": "lukeslobster",
"displayName": "Luke’s Lobster",
"email": "catering@lukeslobster.com",
"phone": "+12072925946",
"emails": ["catering@lukeslobster.com", "retail@lukeslobster.com"],
"phones": ["2072925946"],
"whatsapp": [],
"website": "https://shop.lukeslobster.com/collections/shop-lukes",
"websiteDomain": "lukeslobster.com",
"linkInBioService": "Later Link in Bio",
"socials": { "facebook": ["https://www.facebook.com/LukesLobster"], "youtube": ["https://www.youtube.com/lukeslobster"] },
"contactDetails": [
{ "type": "email", "value": "catering@lukeslobster.com", "sources": ["website"], "sourceUrls": ["https://lukeslobster.com/pages/contact-us"], "emailType": "role", "matchesWebsite": true, "mxValid": true }
],
"followersCount": 129000,
"accountType": "business",
"status": "ok"
}

Instagram contact fields

FieldWhat it isFill on the 41-record test run
email, emailsBest email and all emails the account publishes73%
phone, phonesBest phone (E.164 when it has a country code or is North American) and all phones63%
whatsappWhatsApp numbers from wa.me links and "WhatsApp: +..." in the bio5%
website, websiteDomainThe account's own website that was read98%
linkInBioService, linkInBioUrl, childLinksThe link-in-bio page and the links on it32%
socialsOther profiles of the account: Facebook, TikTok, YouTube, X, LinkedIn, Pinterest ...95%
contactDetailsEvery contact with sources, sourceUrls, emailType, matchesWebsite, mxValid100%
websiteAddressStreet, city, region, postcode from the website's schema.org data or address block6 of 12 restaurants (local test)
username, displayName, biography, profileUrl, followersCount, accountTypeThe Instagram profile100%
categoryThe category Instagram shows under the name46%
pagesScannedEvery page read for the record98%

How can I use Instagram contact data?

  • 🎯 Agencies and sales teams - turn a list of local businesses on Instagram into an outreach list with emails and phone numbers.
  • 🀝 Influencer marketers and PR - find booking and press addresses for a creator shortlist.
  • πŸ“‡ CRM enrichment - add emails, phones and websites to Instagram handles you already have.
  • πŸ”Ž Lead discovery - start from 3 accounts you like and collect the contacts of the accounts Instagram suggests next to them.
  • πŸ€– AI and automation - feed compact rows to an agent or a workflow that drafts the first message.

How much does it cost to scrape Instagram emails?

Instagram Email Scraper is pay-per-result: $6.10 per 1,000 contact records, no start fee. A record is one account written to the dataset. With the default any contact setting, accounts with no email, phone or WhatsApp are left out of the dataset and are not charged (choose every account to get them too).

RecordsCost
10$0.061
100$0.61
1,000$6.10
10,000$61.00

Apify platform usage is included in the price. The actor runs on 1,024 MB with no browser: 75 accounts took 3 minutes 27 seconds at the default settings; the 3-account example input takes about 9 seconds.

Integrations, API, scheduling & MCP

  • Schedules: run a growing list daily or weekly from the Schedules tab; with monitorMode each run returns only accounts it has not delivered before.
  • Webhooks: call a URL when a run finishes and push the records to your CRM, Slack or a sheet.
  • No-code: Make, Zapier, n8n, Google Sheets, HubSpot and Airtable through Apify integrations.
  • API: start runs and read datasets from Node.js or Python with apify-client; code is on the API tab.
  • MCP / AI agents: connect Claude, Cursor or any MCP client through the MCP tab; compact keeps rows small.

More TopApi scrapers

πŸ‘€ Instagram Profile Scraper - followers, bio and engagement for a list of accountsπŸ“Έ Instagram Scraper - posts, reels and hashtags🎡 TikTok Scraper - videos, hashtags and profiles
𝕏 Twitter Profile Scraper - X followers, bio and verified badgeπŸ”Ž Facebook Search Posts Scraper - public posts by keywordπŸ’¬ Facebook Comments Scraper - comments and replies
⭐ Google Maps Reviews Scraper - ratings and owner repliesπŸ“ Google Geocoding Scraper - addresses to coordinatesπŸ’Ό Indeed Jobs Scraper - jobs with salary and company
πŸ“Š SimilarWeb Scraper - website traffic and rank🧭 All TopApi actors

Instagram contact limits & empty runs

  • Instagram's contact button: the email and phone behind Instagram's Contact button are shown to signed-in users only, so they are not part of the output; contacts come from the bio, the bio links, the link-in-bio page and the website.
  • Not every account publishes a contact: on the 75-account test run 34 accounts had no email, phone or WhatsApp in the bio, the link-in-bio page or the website pages read.
  • Link-in-bio pages that render only in a browser (Beacons, visitstore.bio, komi.io, hoo.be) give no links to read; those accounts get whatever the bio and the page HTML carry.
  • Sites that refuse automated visits: the actor retries through the Apify proxy; a site that still refuses is listed in the run summary.
  • Speed: about 3 seconds per account at the default settings; raise Parallel accounts and the run memory for large lists.
  • Empty dataset: every account had no contact, was filtered out, did not exist, or (with monitorMode) was already delivered - the status message and RUN_SUMMARY say which.

FAQ

How much does Instagram Email Scraper cost?

$6.10 per 1,000 contact records, no start fee. With the default settings accounts with no contact are not delivered and not charged.

How many Instagram accounts can Instagram Email Scraper check in one run?

As many as you paste; there is no Instagram-side cap. The 75-account test run took 3 minutes 27 seconds. Use maxResults and maxProfilesToCheck to bound a run.

Where do the Instagram emails come from?

From the account's bio, its bio links (mailto, tel and WhatsApp links), its link-in-bio page and its own website's homepage and contact pages. contactDetails lists the source page of every email and phone.

Does Instagram Email Scraper return the email from Instagram's Contact button?

No. Instagram shows that button only to signed-in users, and this actor does not log in.

Can I find contacts for accounts similar to mine with Instagram Email Scraper?

Yes. Turn on Also find related accounts: the accounts Instagram suggests next to each of yours are added to the run.

Can I run Instagram Email Scraper on a schedule?

Yes. Save your input as a task, schedule it, and turn on monitorMode so each run returns only accounts it has not delivered before; recheckAfterDays re-reads known accounts and returns the ones whose contacts changed.

Do I need an Instagram account, cookies or an API key?

No. You pass usernames or profile URLs and nothing else.

Can I use Instagram Email Scraper with the Apify API?

Yes. Use apify-client for Node.js or Python; the API tab has ready-to-paste code.

Can I use Instagram Email Scraper through an MCP server?

Yes. Open the MCP tab, connect Claude Desktop, Cursor or another MCP client, and ask for contacts in plain language.

Why did my Instagram Email Scraper run return no results?

In testing the causes were accounts that publish no contact anywhere, handles that do not exist (turn on includeUnavailable to see them), filters that removed every account, and monitor runs where every account was already delivered.

Instagram Email Scraper collects only information that is publicly visible without logging in: an account's public profile and the pages it links to. Contact details of people are personal data in most jurisdictions (for example under the GDPR), so make sure you have a lawful basis before you use them and honour opt-outs.

Your feedback

Found a bug or a contact the actor missed? Open an issue on the Issues tab and we will look at it.