Instagram Profile Email & Phone Scraper avatar

Instagram Profile Email & Phone Scraper

Pricing

from $4.00 / 1,000 profile scrapeds

Go to Apify Store
Instagram Profile Email & Phone Scraper

Instagram Profile Email & Phone Scraper

Extract public emails and phone numbers from Instagram profiles by username or URL. Each row adds bio, followers, following, business category, website, bio links, verification and recent posts. Unknown usernames are not charged. No login needed.

Pricing

from $4.00 / 1,000 profile scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

151

Total users

44

Monthly active users

6 days ago

Last modified

Share

What is Instagram Profile Email & Phone Scraper?

Instagram Profile Email & Phone Scraper turns Instagram usernames or profile URLs into one clean row per profile, with the public email and phone the account publishes on its contact button or in its bio. Each row also has the display name, bio, follower and following counts, verification, business flag and category, external link, bio links and profile picture, plus hasEmail, hasPhone and contactSource so you can filter outreach-ready accounts at a glance. It also includes up to 12 recent posts with caption, comment count, media type and date. Brand teams, influencer marketers, researchers and AI agents use it to size up and enrich Instagram accounts in bulk, with no Instagram login.

You giveYou getPrice
Usernames, @handles or profile URLsOne row per profile: public email and phone with their source, bio, followers, category, links, up to 12 recent posts$4 per 1,000 profiles (profile-scraped), Apify platform usage included; unknown usernames are free

Why marketers use it for profile research

  • The numbers that matter first. followersCount, followingCount and isVerified sit at the top of every row for quick ranking.
  • Contacts when they are public. email and phone come from the contact button or the bio when the account publishes them; contactSource says which. Turn on onlyWithContact to save (and pay for) only profiles that list one.
  • Recent activity at a glance. recentPosts shows up to 12 latest posts with caption, comments, date and media type.
  • Handles or URLs, deduplicated. Paste natgeo, @nasa or a full profile URL; repeats are skipped.
  • Pay only for real profiles. Unknown usernames are listed in the run summary and are free.

How to use it

Look up a list of creators with their recent posts:

{
"usernames": ["natgeo", "@nasa", "https://www.instagram.com/humansofny/"],
"scrapeRecentPosts": true,
"maxRecentPosts": 12
}

Profile details only, smallest rows:

{
"usernames": ["nike", "adidas", "puma"],
"scrapeRecentPosts": false
}
InputWhat it controls
usernamesInstagram usernames, @handles or profile URLs. Required.
onlyWithContactSave only profiles with a public email or phone; others are skipped free (default off)
scrapeRecentPostsAdd the profile's latest posts (default on)
maxRecentPostsPosts per profile, up to 12 (default 12)
proxyConfigurationApify Proxy settings; Residential by default

Need more than 12 posts per account? Continue with Instagram Posts Scraper linked below.

Output: Instagram profile data you receive

A real row for a public creator account (email partly redacted, recentPosts shortened to one post, image URLs left out):

{
"username": "humansofny",
"fullName": "Humans of New York",
"userId": "242598499",
"biography": "New York City, one story at a time.\nCreated by Brandon Stanton\nInquiries/Collabs: h***@gmail.com",
"followersCount": 12654423,
"followingCount": 755,
"isVerified": true,
"isPrivate": false,
"isBusinessAccount": false,
"email": "h***@gmail.com",
"hasEmail": true,
"hasPhone": false,
"contactSource": "bio",
"externalUrl": "https://bit.ly/dearnewyorkbook",
"bioLinks": ["https://bit.ly/dearnewyorkbook"],
"igtvVideoCount": 1,
"recentPosts": [
{
"postId": "3741054891297971261",
"shortCode": "DPq5ZpJDZw9",
"postUrl": "https://www.instagram.com/p/DPq5ZpJDZw9/",
"caption": "Dear New York closes on October 19th. ...",
"commentCount": 974,
"isVideo": true,
"postedAt": "2025-10-11T13:27:07.000Z"
}
],
"profileUrl": "https://www.instagram.com/humansofny/"
}
FieldWhat it contains
username, fullName, userId, biography, profileUrlWho the account is
followersCount, followingCountAudience size
isVerified, isPrivate, isBusinessAccountAccount status flags
email, phonePublic contact details, included when the account publishes them
hasEmail, hasPhone, contactSourceQuick contact flags and where the contact came from (contact_button or bio)
businessCategoryThe account's public category, when shown
externalUrl, bioLinksThe website and links in the bio
recentPostsUp to 12 latest posts with URL, caption, comment count, media type and date
postsCountTotal posts when Instagram's public data reports it, mostly for smaller accounts
profilePicUrl, profilePicUrlHdProfile picture links

Fields without a value are left out of the row. OUTPUT in the default key-value store reports the run outcome and lists any usernames that were not found.

Example workflow: shortlisting creators for a campaign

An outdoor brand has 50 creator handles from a hashtag search. They run them with maxRecentPosts set to 6, sort by followersCount, and read recentPosts to confirm each creator posted in the last month. They keep creators whose email is filled for direct outreach. Then they pass the rest to Instagram Contact Scraper to look for a contact in the bio and contact button.

Pricing

This Actor uses Pay per event. Apify platform usage is included in the event price, so you pay one profile-scraped event per profile saved ($4 per 1,000 profiles) plus one start event per run. Unknown usernames and profiles skipped by onlyWithContact are free. See the Pricing tab for current rates.

  • 50 profiles = 50 profile events (about $0.20) + 1 start event.
  • Recent posts come at no extra charge.
  • The size of your usernames list sets the ceiling for each run.

Free Apify plan

Runs started from a free Apify plan return up to 25 results per run, with every input mode and output field available. Paid Apify plans have no per-run limit, so your usual result settings apply.

Profile research with AI agents (MCP)

Connect this Actor to an AI agent through Apify MCP and ask in plain language:

Look up these 10 Instagram accounts and keep only those with a public email or phone. Rank them by followers and give me each one's email, phone, category, website and the date of its latest post.

Agent checklist:

  1. Pass handles or URLs in usernames.
  2. Set scrapeRecentPosts: false when only profile numbers matter, to keep rows short.
  3. Read rows with get-dataset-items; read OUTPUT for usernames that were not found.
  4. Use profileUrl as the stable ID when joining with other data.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~instagram-profile-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"usernames": ["natgeo", "nasa"], "scrapeRecentPosts": false}'
Your next stepUseWhy
When you still need to find accounts by keywordInstagram User Search ScraperProfiles for any niche or keyword
When you want more than 12 posts per accountInstagram Posts ScraperFull post lists by profile, hashtag or URL
When you then want contact detailsInstagram Contact ScraperEmails and phones from bio and contact button
When you want to check audience qualityInstagram Fake Follower AuditorAudience-quality score per profile
When you want to know how old an account isInstagram Account Age CheckerEstimated creation date per account

Best results

Starting situationHelpful actionExpected outcome
Ranking a long list of accountsTurn off scrapeRecentPostsShorter rows with all the profile numbers
Checking how active an account isKeep maxRecentPosts at 6 to 12Recent captions and dates
Mixed handles and URLsPaste them as they areOne row per account, duplicates skipped
Needing the full post historyUse Instagram Posts ScraperEvery post, beyond the latest 12

Builder's note

I found that most people want a quick read on an account before deciding anything else, so each row starts with followers, verification and the website, followed by the latest posts. I learned that Instagram's public profile data reports a reliable total post count mainly for smaller accounts, so the Actor includes postsCount only when that number is the true total.

FAQ

Do I need an Instagram account?

No. The Actor reads public profile data and needs no login or cookies.

Why is postsCount missing for some accounts?

Instagram's public profile data reports the total post count mainly for smaller accounts. For larger ones the Actor leaves the field out so every number you get is the real one.

Does it return emails?

When an account publishes an email or phone on its contact button or in its bio, it appears in email and phone.

Can I keep only accounts with an email or phone?

Yes. Set onlyWithContact to true. Profiles without a public email or phone are skipped and not charged.

What happens with an unknown username?

It is listed in OUTPUT.notFound and is free.

Can I get more than 12 posts?

Each profile row carries up to 12 recent posts. For complete post lists, use Instagram Posts Scraper.

Responsible use

This Actor collects public Instagram profile data, which can include personal data protected by laws such as the GDPR and CCPA. Use it only with a lawful basis, honor opt-outs, and respect Instagram's terms. Read Apify's guide on whether web scraping is legal for more context. Instagram is a trademark of Meta Platforms, Inc. This independent Actor is not affiliated with, associated with, or endorsed by Instagram or Meta. For questions or bugs, open a ticket in the Issues tab.