Instagram Email Scraper
Pricing
from $1.40 / 1,000 found contacts
Instagram Email Scraper
Instagram leads — pay only for contacts found: emails, phone numbers & WhatsApp from contact buttons, bio and the Linktree or site behind the bio link, not just the bio. No login. City, category and followers in each row. From $4.95/1K found + a small check fee.
Pricing
from $1.40 / 1,000 found contacts
Rating
0.0
(0)
Developer
Instagram Data API
Maintained by CommunityActor stats
0
Bookmarked
58
Total users
24
Monthly active users
a day ago
Last modified
Categories
Features
Share
Instagram email & phone scraper — pay per contact found
🆕 New: no contact on the profile? We open the page its bio link leads to — Linktree or the website with its contact page — and take the owner's email and phone from there. Same price. Tried it? Tell us in a review.
Paste usernames of businesses or creators and get the public email, phone, city, address and website from their Instagram profiles — in clean, separate columns ready for your CRM.
- 💸 Main price only when a contact is found — $4.95 per 1,000 contacts found, plus $0.30 per 1,000 profiles checked.
- 🔎 More contacts found — the Email, Call and WhatsApp buttons, plus emails and phones written in the bio (even
name [at] brand [dot] com) and in mailto:, tel: and wa.me links. Still nothing? We check the page the bio link opens (Linktree, Beacons, Stan or the website and its contact page) —contactSourceandcontactUrlshow where. - 🧹 Clean fields — the best contact in
emailandphone, every contact inemailsandphones, andfoundInsays where they came from. Phones as + and digits. - 📍 Context for outreach — city, street address, zip, category, followers, website and bio links.
- 🔗 Emails of a brand's followers — run our Followers Scraper on the brand, then pick its dataset here.
- 🔍 No usernames? Search by keyword and city —
dentist+Austin: we find the businesses on Instagram and check each one's contacts. - 🧹 No duplicates — a username pasted twice is checked and charged once.
- 🔓 No login; usernames that don't exist are free.
Why scrape Instagram emails and phone numbers?
- B2B lead lists: public emails and phones of cafes, salons, gyms, shops and agencies.
- Influencer outreach: emails of creators in your niche — also the ones they only write in the bio.
- Pay for results: the main price only when a contact is actually found.
What data can I scrape from Instagram emails and phone numbers?
| Data | What it is |
|---|---|
| Username | Instagram username (handle) |
| Best email for outreach: the Email button first, otherwise the first email in the bio or links | |
| Phone | Best phone: the Call button first, then WhatsApp, then the first number in the bio or links (+ and digits) |
| Found in | Where the contacts were found: button (Email, Call, WhatsApp), bio (profile text), link, bio_link (Linktree or a similar page from the bio link), website (the site from the bio link) |
| City | City of the business address |
| Category | Category shown under the name, e.g. Coffee shop |
| Followers | Follower count |
| Contact found | True if at least one email or phone was found — only then the contact is charged |
Up to 37 fields per row in total — the Output tab lists every one of them.
How to scrape Instagram emails and phone numbers
- Paste usernames or links into the input, one per line.
- Press Start — rows stream into the Output tab while the run goes.
- Download them as JSON, CSV, Excel or HTML, or get them through the API.
Works with any public profile on Instagram — no login, no cookies, no Instagram account of yours.
No input at hand? Press Start with an empty input — you get a 3-row sample.
Input example
{"usernames": ["natgeo"],"onlyWithContact": false,"maxProfilesPerKeyword": 100}
Output example: Instagram emails and phone numbers data
{"username": "examplecafe","email": "hello@examplecafe.com","phone": "+15125550100","emails": ["hello@examplecafe.com","events@examplecafe.com"],"phones": ["+15125550100"],"foundIn": ["bio","button"],"publicEmail": "hello@examplecafe.com","publicPhone": "+1 512-555-0100","whatsapp": null,"city": "Austin, Texas","category": "Coffee shop","followers": 12400,"isVerified": false,"isPrivate": false,"emailType": "own_domain","contactFound": true}
Each row has up to 37 fields — the Output tab describes every one of them. Fields Instagram
doesn't show come as null, never as a fake 0.
Coming from Apify's official Instagram scrapers? Turn on Also add Apify-style field names: every row also gets
likesCount, commentsCount, videoPlayCount, timestamp, displayUrl, followersCount, followsCount, verified
and more with the same values, and the post type as Video, Image or Sidecar — your sheets, code and n8n flows keep
working. Long list of usernames? Upload it as a CSV or TXT file in Or upload a list.
Limits
- Only what the account shows publicly — contact buttons, bio and links; we never guess emails.
- Personal accounts rarely show contacts: for them you pay only the small check fee.
- A number in a bio can be anything — we skip years, dates and follower counts, but check a phone before calling it.
- Free Apify plan: the first 20 results of each run (looking through up to 15 pages of Instagram), up to 300 results a month across our Actors, from a daily free pool shared by all free users. Any paid Apify plan gets every result — no cap.
How much does it cost to scrape Instagram emails and phone numbers?
Pay per event: you pay for the rows you get, plus $0.0005 per run. No subscription to this Actor.
| Apify plan | Per 1,000 found contacts | What $5 of free credit gets you |
|---|---|---|
| Free | $4.95 | ≈ 1,000 found contacts |
| Starter | $4.95 | — |
| Business and higher | $4.95 | — |
Every event of this Actor on the Starter plan:
| Event | What it is | Price |
|---|---|---|
| Found contact | Each profile where a public email or phone was found | $4.95 per 1,000 |
| Checked profile | Each profile checked for public contacts | $0.30 per 1,000 |
Typical jobs on Starter:
- 1,000 profiles where 300 show a contact ≈ $1.79
Always free: usernames that don't exist and duplicates. Set Maximum cost per run in the run options to cap any run.
Chain it with other Actors
Use the rows of an earlier run as the input: paste its dataset ID into Or: dataset from another run. For example, run Instagram Followers Scraper on a brand, then give its dataset to Instagram Email & Phone Scraper — you get the emails of the brand's followers. Works with the datasets of Apify's own Instagram Actors too.
Instagram emails and phone numbers API: Python, n8n, Make, Zapier and AI agents
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("instagram-data-api/instagram-email-phone-scraper").call(run_input={'usernames': ['natgeo'], 'onlyWithContact': False, 'maxProfilesPerKeyword': 100})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
n8n, Make, Zapier or any HTTP client: one request runs the Actor and returns the rows —
POST https://api.apify.com/v2/acts/instagram-data-api~instagram-email-phone-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN
with the input JSON as the body.
AI agents (MCP) — your agent gets this Actor as a tool:
- Claude Code:
claude mcp add --transport http apify "https://mcp.apify.com?tools=instagram-data-api/instagram-email-phone-scraper" - Claude, Cursor, VS Code, n8n: add
https://mcp.apify.com?tools=instagram-data-api/instagram-email-phone-scraperas a remote MCP server and sign in to Apify. - Ask it: “Find public emails and phones of these 100 coffee shops on Instagram.” · “Which of these creators list an email in their bio?”
FAQ: scraping Instagram emails and phone numbers
How do I get the emails of an account's followers? Run Instagram Followers Scraper on the account, then pick that run's dataset in Or: dataset from another run here. Only followers who show a public email or phone return a contact — business and creator accounts much more often than personal ones.
How does the keyword search work? Put business types in Or: find businesses by keyword and, if you like, a City. We search Instagram accounts like the app does — about 20 per page — and check the contacts of every account found. You pay the usual price per profile checked and per contact found; the search pages are free. With a city set, profiles that show no sign of it in their address, bio or name are left out.
Where do the contacts come from?
From what each account shows publicly on Instagram: the Email, Call and WhatsApp buttons of business and creator accounts, plus emails and phone numbers written in the bio and in bio links. When the profile shows none, from the public page its bio link opens — a Linktree-style page or the website and its contact page — and only addresses of that site or a regular mailbox (Gmail, Outlook…), never a platform's or a theme developer's. Never from outside databases, and we never guess emails — foundIn, contactSource and contactUrl tell you where each row's contacts came from.
How do I get WhatsApp numbers from Instagram?
Paste the usernames — or search businesses by keyword and city — and run. The number behind an account's WhatsApp button is in whatsapp and in phones; WhatsApp links in the bio and links (wa.me) are in phones with link in foundIn. Numbers come as + and digits, ready for WhatsApp Business or your CRM.
What will a run cost? $0.30 per 1,000 profiles checked plus $4.95 per 1,000 contacts found, on Starter. Example: 1,000 profiles where 300 show a contact cost $1.79.
Why no contact for some profiles? Some accounts show no contact anywhere — no buttons, nothing in the bio or links, and nothing on the page their bio link opens. You still get the profile row and pay only the small check fee.
Can I email these contacts? You're responsible for how you use them: follow GDPR and anti-spam rules such as CAN-SPAM, and contact people only for a legitimate reason.
Do I need an Instagram account or cookies? No. You only paste usernames, links or keywords. Nothing to log in, nothing to install, and your own Instagram account is never involved.
What am I charged for — and what's free?
Only the events in the pricing table, plus $0.0005 per run. Rows with an error field are free, and duplicates are never returned or charged. Each run's SUMMARY record shows results and free rows.
Can I try it for free? Yes. On Apify's free plan you get the first 20 results of every run (up to 300 a month across our Actors), paid from the monthly free credit Apify gives every account. Paid plans get every result, with no cap.
Can I cap what a run costs?
Yes. Set Maximum cost per run in the run options — the run stops at your limit and SUMMARY shows stoppedAtChargeLimit: true.
Can I use it from n8n, Make, Zapier or an AI agent? Yes, like any Apify Actor: REST API, webhooks, the n8n, Make and Zapier integrations, and the Apify MCP server for Claude, Cursor, VS Code and other MCP clients. Short timeout in your workflow or agent? Set Return what's ready after (seconds): the run stops on time with what it has collected, and you pay only for that.
For AI agents
Actor: instagram-data-api/instagram-email-phone-scraperDoes: Instagram email scraper for lead generation: emails, phones, WhatsApp from contact buttons, bio, Linktree. Main fee per contact. No login.Input: {"usernames": ["natgeo"], "onlyWithContact": false, "maxProfilesPerKeyword": 100}Output: one JSON row per result, up to 37 fields; main: username, email, phone, foundIn, city, category, followers, contactFoundFree: usernames that don't exist and duplicatesPrice: event "contact-found" $4.95 per 1,000 on Starter + $0.0005 per runRun: POST https://api.apify.com/v2/acts/instagram-data-api~instagram-email-phone-scraper/run-sync-get-dataset-items?token=APIFY_TOKEN
More Instagram Actors from us
| Content | People | Stories |
|---|---|---|
| All-in-one Instagram Scraper · Reels · Posts · Post details · Reel views checker · Hashtags · Search · Transcripts · Tagged posts · Audio · Locations · Hashtag stats | Profiles · Followers count · Account age · Emails & phones · Similar accounts · Similar accounts with profiles · Followers · Comments · Likers · Engagement rate · Username checker · User ID · Follower checker | Stories · Highlights |
What changed and when — see the Changelog tab.