Instagram Profile Scraper + Emails & Contacts avatar

Instagram Profile Scraper + Emails & Contacts

Pricing

from $4.00 / 1,000 profile scrapeds

Go to Apify Store
Instagram Profile Scraper + Emails & Contacts

Instagram Profile Scraper + Emails & Contacts

Scrape public Instagram profiles by username or URL: name, bio, followers, posts, verification, business category, plus parsed email and phone. No login required. MCP-ready.

Pricing

from $4.00 / 1,000 profile scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

15 hours ago

Last modified

Share

Scrape public Instagram profiles at scale by username or profile URL. Get full profile metadata plus parsed email and phone for lead generation — in clean, flat JSON built for spreadsheets, CRMs, and AI agents. No login or cookies required.

What it does

Give it Instagram usernames (or profile URLs) and it returns one structured record per profile: display name, bio, follower / following / post counts, verification status, business category, profile pictures, every external link in the bio, Instagram-suggested related accounts, and the most recent posts. For business and creator accounts it also surfaces the public contact email and phone number, and it parses emails/phones out of the bio text for everyone else.

It runs over Instagram's public web profile endpoint through residential proxies, so there is no login wall, no cookie export, and no browser automation to babysit. That makes it fast, cheap to run, and stable.

When to use it

  • Lead generation — turn a list of creator/business handles into emails, phones, and follower metrics.
  • Influencer marketing — qualify creators by follower count, verification, category, and posting activity.
  • Market & competitor research — track accounts, bios, links, and recent content over time.
  • Audience mapping — follow relatedProfiles to map a niche or competitor network.
  • AI agents / MCP — a clean username → JSON tool with predictable per-profile cost.

Not for hashtags or single post URLs. Use a hashtag scraper or post scraper for those.

Output

One record per profile (null/unknown fields are omitted):

FieldTypeDescription
usernamestringInstagram handle
fullNamestringDisplay name
userIdstringNumeric Instagram ID
biographystringBio text
followersCountintegerFollowers
followingCountintegerFollowing
postsCountintegerTotal posts
isVerifiedbooleanBlue-tick verified
isPrivatebooleanPrivate account (metadata only)
isBusinessAccountbooleanBusiness / professional account
businessCategorystringCategory label
emailstringContact email (business field or parsed from bio)
phonestringContact phone (business field or parsed from bio)
externalUrlstringPrimary bio link
bioLinksstring[]All bio links
relatedProfilesstring[]Suggested related accounts
profilePicUrl / profilePicUrlHdstringProfile picture URLs
highlightReelCountintegerStory highlights
igtvVideoCountintegerIGTV / long-form videos
recentPostsobject[]Up to 12 recent posts (see below)
profileUrlstringCanonical profile URL
scrapedAtstringISO 8601 scrape timestamp

Each item in recentPosts: postId, shortCode, postUrl, caption, likeCount, commentCount, isVideo, videoViewCount, thumbnailUrl, postedAt.

Example record

{
"username": "natgeo",
"fullName": "National Geographic",
"userId": "787132",
"biography": "Inspiring the explorer in everyone 🌎 Stories from @natgeo photographers.",
"followersCount": 281000000,
"followingCount": 167,
"postsCount": 29850,
"isVerified": true,
"isPrivate": false,
"isBusinessAccount": true,
"businessCategory": "Publisher",
"email": "press@natgeo.com",
"externalUrl": "https://on.natgeo.com/instagram",
"bioLinks": ["https://on.natgeo.com/instagram"],
"relatedProfiles": ["nasa", "natgeotravel"],
"profilePicUrl": "https://instagram.com/.../natgeo.jpg",
"recentPosts": [
{
"shortCode": "C1abcDEf",
"postUrl": "https://www.instagram.com/p/C1abcDEf/",
"caption": "Photo by @example…",
"likeCount": 412000,
"commentCount": 1820,
"isVideo": false,
"postedAt": "2026-05-30T14:21:00.000Z"
}
],
"profileUrl": "https://www.instagram.com/natgeo/",
"scrapedAt": "2026-06-01T18:51:00.000Z"
}

Pricing

Pay-per-event — you pay only for what you get:

EventPrice
Actor start$0.00005
Profile scraped$0.004 / profile

A 1,000-profile run costs about $4. Each profile includes metadata, contacts, and recent posts in a single charge — no hidden add-on fees. Pay-per-usage (compute + proxy) billing is also available for very large jobs.

Input

FieldTypeDefaultNotes
usernamesstring[]— (required)Usernames, @handles, or profile URLs
scrapeRecentPostsbooleantrueInclude up to 12 recent posts
maxRecentPostsinteger120–12 recent posts per profile
proxyConfigurationobjectRESIDENTIALResidential strongly recommended
{
"usernames": ["nasa", "https://www.instagram.com/nike/", "@natgeo"],
"scrapeRecentPosts": true,
"maxRecentPosts": 12
}

Run via API

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~instagram-profile-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "usernames": ["nasa", "natgeo"] }'

Use with AI agents (MCP)

This actor is MCP-ready. Connect it through the Apify MCP server and an AI agent can call it with a single username and receive structured JSON back. Input descriptions and output keys are written for LLM consumption, and per-profile cost is predictable, so agents can budget calls reliably.

How it works & reliability

  • Reads Instagram's public web profile endpoint — no login, no cookies, no browser.
  • Residential proxies + session pool with automatic rotation on 403 / 429.
  • Honest failure: if Instagram blocks every request and nothing is scraped, the run fails clearly and you are not charged for blocked requests.
  • Cost cap is printed at the start of every run; the actual billed amount is printed at the end.
  • Private accounts return metadata only (no posts), flagged with isPrivate: true.
  • Instagram Hashtag Scraper — posts + engagement by hashtag: khadinakbar/instagram-hashtag-scraper
  • B2B Lead Finder & Enrichment — Google Maps leads + emails: khadinakbar/b2b-lead-finder-enrichment
  • Contact Details Scraper — emails, phones, socials from any website: khadinakbar/contact-details-scraper

FAQ

Do I need an Instagram account or cookies? No. It only reads public profile data through a public endpoint.

Does it work on private accounts? It returns public metadata (name, bio, counts, category) and flags isPrivate: true. Posts are not available for private accounts.

Where does the email come from? Business/creator accounts expose a public contact email and phone, which are returned directly. For other accounts, the actor parses emails/phones from the bio text when present.

Can I pass profile URLs instead of usernames? Yes — full URLs, @handles, and bare usernames all work in the usernames field.

How many profiles can I scrape? As many as you provide. Cost scales linearly at $0.004 per profile.

This actor collects only public information that any logged-out visitor can view, and is intended for lawful uses such as lead generation, research, and analytics. It does not bypass authentication or access private content. You are responsible for using the data in compliance with Instagram's Terms of Service, the GDPR/CCPA, and any other applicable laws and regulations. Do not use scraped personal data for spam or unlawful purposes. Instagram is a trademark of Meta Platforms, Inc.; this actor is not affiliated with, endorsed by, or sponsored by Meta.