instagram profile scraper pro avatar

instagram profile scraper pro

Pricing

from $2.50 / 1,000 results

Go to Apify Store
instagram profile scraper pro

instagram profile scraper pro

Extract clean public Instagram profile data from usernames, profile URLs, or profile IDs. Get followers, bio, links, public contact clues, business signals, and profile status in a ready-to-download dataset.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Muhammad Qaseem Iqbal

Muhammad Qaseem Iqbal

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

3

Monthly active users

2 months ago

Last modified

Share

Instagram Profile Scraper Pro 🚀📸

Turn public Instagram profiles into clean, organized data in minutes. ✨

Instagram Profile Scraper Pro helps you collect public profile information from Instagram usernames, profile links, numeric profile IDs, or an existing Apify dataset. Add a list of profiles, run the Actor, and get structured results you can download, analyze, send to Google Sheets, connect to automations, or use in your own apps. 📊⚡

This Actor is built for public Instagram profile data only. It does not log in, use cookies, bypass private accounts, or collect hidden/private information. 🔒✅

What does Instagram Profile Scraper Pro do? 👤

This Actor extracts useful public information from Instagram profile pages, including:

  • 👤 Username, profile URL, profile ID, and full name
  • 📝 Bio text and profile category
  • 📈 Followers, following, and post counts
  • ✅ Verification and privacy status
  • 🏢 Business/professional account signals
  • 🔗 Website links and public bio links
  • 📬 Public contact clues such as listed emails, phone numbers, domains, mailto links, or WhatsApp links
  • 🖼️ Profile picture URLs
  • 🎞️ Optional latest public post/video previews
  • 👥 Optional related or suggested profiles
  • 🕵️ Optional public "About this profile" metadata, when available
  • 🔁 Optional change detection against a previous dataset
  • 🧾 Clear status records for profiles that are missing, blocked, private, skipped, or unavailable

In short: give it Instagram profiles, and it gives you clean profile intelligence. 🎯

Why use this Instagram profile scraper? 💡

Instagram profiles contain useful public signals for many teams and workflows. This Actor is especially helpful for:

  • 🛍️ Brand research - understand public brand accounts, websites, categories, and audience size
  • 🤝 Influencer discovery - collect public creator profile details and follower counts
  • 📊 Market research - compare public profiles in a niche, region, or industry
  • 🧲 Lead research - find public websites, domains, and listed contact clues
  • 🕵️ Competitor monitoring - track changes in public profile data over time
  • 🧰 No-code automation - send profile data into Google Sheets, Make, Zapier, Airbyte, n8n, or webhooks
  • 🧪 Data enrichment - enrich a list of Instagram handles from another Apify Actor or your own dataset

Quick start 🚦

You do not need to code. 🧡

  1. 📝 Open the Actor on Apify.
  2. 👤 Enter one or more Instagram usernames, profile URLs, or profile IDs.
  3. ⚙️ Keep the default settings for the cheapest quick run.
  4. ▶️ Click Start.
  5. 📥 Download your results as JSON, CSV, Excel, XML, RSS, or HTML.

Example inputs you can paste:

nasa
@instagram
https://www.instagram.com/apifytech/
528817151

What can you scrape? 🧾

Data typeIncluded?Notes
👤 Basic profile details✅ YesUsername, ID, full name, URL, bio
📈 Public metrics✅ YesFollowers, following, posts, highlights, IGTV/video count when available
✅ Account signals✅ YesVerified, private, business/professional status
🔗 Public links✅ YesWebsite and bio links
📬 Public contact clues✅ YesOnly if publicly listed on the profile or links
🎞️ Latest posts/videos⚙️ OptionalOff by default to keep runs cheaper
👥 Related profiles⚙️ OptionalOff by default to reduce extra data and cost
🕵️ About-profile data⚙️ OptionalOnly when publicly available
🔁 Change detection⚙️ OptionalCompare against a previous dataset
🔐 Private profile content❌ NoPrivate content is not collected
🍪 Logged-in/cookie-only data❌ NoThis Actor does not log in

Input settings explained ⚙️

The most important setting is Instagram profiles. Add usernames, profile URLs, or IDs there. Everything else is optional.

SettingPlain-English meaning
👤 profileInputsThe Instagram profiles you want to scrape
📦 inputDatasetIdRead profile names from another Apify dataset
🏷️ inputDatasetFieldThe dataset column that contains the username or URL
🔢 maxProfilesMaximum number of profiles to process
🎞️ includeLatestPostsAdd latest public post/reel/carousel previews
👥 includeRelatedProfilesAdd related or suggested public profiles
🕵️ includeAboutAdd public account-history metadata if Instagram exposes it
🔗 includeExternalUrlsInclude public websites and bio links
🌐 resolveExternalUrlsFollow redirected links to their final destination
📬 includeContactInfoExtract public emails, phones, domains, and messaging links if listed
📄 outputModeChoose compact, full, or split output
🚀 crawlerModeChoose the cheapest HTTP mode or browser fallback
🔁 maxRequestRetriesRetry failed profiles if needed
🛡️ proxyConfigurationOptional proxy settings

The Actor is already configured to run cheaply by default. 🪙

For the lowest-cost runs, keep these defaults:

  • crawlerMode: httpOnly
  • proxyConfiguration.useApifyProxy: false
  • includeLatestPosts: false
  • includeRelatedProfiles: false
  • includeAbout: false
  • resolveExternalUrls: false
  • outputMode: compact
  • maxRequestRetries: 0
  • ✅ Default memory: 1024 MB

These settings avoid browser startup, proxy charges, optional extra requests, and very large output rows. 🧊

Turn on richer options only when you need more data and are comfortable with the extra runtime cost. ⚡

Example input: simple profile lookup 🔎

{
"profileInputs": ["nasa", "@apifytech", "https://www.instagram.com/instagram/"],
"includeLatestPosts": false,
"includeRelatedProfiles": false,
"includeAbout": false,
"outputMode": "compact"
}

Example input: richer creator research 🌟

{
"profileInputs": ["nasa", "natgeo", "spacex"],
"includeLatestPosts": true,
"maxLatestPostsPerProfile": 12,
"includeRelatedProfiles": true,
"maxRelatedProfiles": 20,
"includeAbout": true,
"outputMode": "full"
}

Example input: use profiles from another dataset 📦

{
"inputDatasetId": "DATASET_ID",
"inputDatasetField": "username",
"maxProfiles": 1000,
"includeLatestPosts": false,
"outputMode": "compact"
}

Example input: monitor profile changes 🔁

{
"profileInputs": ["nasa", "apifytech"],
"enableChangeDetection": true,
"baselineDatasetId": "PREVIOUS_DATASET_ID",
"outputMode": "compact"
}

Output format 📤

Results are saved to the Actor's default dataset. Each profile becomes one clean record. ✅

Here is a shortened example:

{
"recordType": "profile",
"status": "ok",
"input": {
"raw": "nasa",
"normalized": "nasa",
"type": "username"
},
"id": "528817151",
"username": "nasa",
"url": "https://www.instagram.com/nasa/",
"fullName": "NASA",
"biography": "Making the seemingly impossible, possible.",
"followersCount": 104421255,
"followsCount": 91,
"postsCount": 4817,
"verified": true,
"private": false,
"isBusinessAccount": true,
"businessCategoryName": "Government Agencies",
"externalUrl": "https://www.nasa.gov/",
"latestPostsCount": 0,
"relatedProfilesCount": 0,
"publicContact": {
"emails": [],
"phones": [],
"domains": ["nasa.gov"]
},
"extraction": {
"route": "http",
"httpStatus": 200,
"retryCount": 0
},
"scrapedAt": "2026-06-15T14:22:06.553Z"
}

If a profile cannot be scraped, the Actor can still return a clear record explaining what happened. 🧭

Example:

{
"recordType": "profile",
"status": "not_found",
"statusReason": "PROFILE_NOT_FOUND",
"input": {
"raw": "missing_profile",
"normalized": "missing_profile",
"type": "username"
},
"extraction": {
"route": "http",
"httpStatus": 404,
"errorType": "NotFoundError",
"errorMessage": "Profile not found"
}
}

Output modes 📚

ModeBest forWhat you get
🧾 compactSpreadsheets, quick exports, lower-cost runsMain profile fields and counts
🧬 fullDetailed analysisFull nested profile data in one dataset item
🗂️ splitWorking with posts/related profiles separatelyProfile rows plus separate datasets for extra items

How many profiles can it scrape? 📏

You can enter a small list or process many profiles from a dataset. The default maximum is 1000 profiles per run, and the input schema allows up to 100000.

Actual results can vary because Instagram changes often and some profiles may be private, missing, blocked, rate-limited, or unavailable. For the best estimate, run a small test first, then scale up. 🧪

How much will it cost? 💰

Cost depends on:

  • 🔢 Number of profiles
  • ⚙️ Whether optional enrichments are enabled
  • 🌐 Whether proxies are used
  • 🖥️ Whether browser mode is needed
  • 🔁 How many retries you allow
  • 📦 Size of the output dataset

The default setup is designed to be inexpensive: HTTP-only, no proxy, compact output, no latest posts, no related profiles, no about-profile enrichment, and no retries. 🪙

For the cheapest workflow, start with the defaults, test a small batch, then increase the profile count once you are happy with the result quality. ✅

During the run 🏃

While the Actor runs, it:

  1. 🧹 Cleans and deduplicates your profile inputs
  2. 🌐 Visits each public profile
  3. 🧠 Extracts available public profile data
  4. 📦 Saves results to the dataset
  5. 🧾 Saves a run summary to the key-value store

The summary includes counts for succeeded, failed, blocked, skipped, not found, and invalid profiles. 📊

Integrations 🔌

You can use the results almost anywhere:

  • 📊 Google Sheets
  • 🧩 Make
  • ⚡ Zapier
  • 🛠️ n8n
  • 🌬️ Airbyte
  • 📁 Google Drive
  • 🔔 Webhooks
  • 🧑‍💻 Apify API
  • 🐍 Python
  • 🟨 Node.js
  • 🗃️ BI tools and dashboards

This Actor is designed to collect only information that is publicly visible. It does not access private profiles, does not log in, does not accept cookies, and does not bypass restrictions. 🔒

That said, public profile data can still include personal data. You are responsible for using the data lawfully and ethically, following applicable privacy laws, platform rules, and your own legal obligations. When in doubt, ask a qualified legal professional. ✅

Tips for better results 🧠

  • ✅ Use clean usernames or full profile URLs
  • ✅ Start with a small test run before large jobs
  • ✅ Keep default settings for low-cost collection
  • ✅ Enable latest posts only when you really need content previews
  • ✅ Enable proxy or browser fallback only when success rate matters more than cost
  • ✅ Use compact output for CSV and spreadsheet workflows
  • ✅ Use full output when you want the richest single profile record
  • ✅ Use split output when you plan to analyze profile, post, and related-profile data separately

Troubleshooting 🛠️

ProblemWhat it usually meansWhat to try
🚫 Profile is blockedInstagram limited access during the runLower concurrency, reduce request rate, enable proxy, or retry later
🔒 Profile is privateThe account is not publicPrivate content cannot be scraped
❓ Profile is missingUsername does not exist or changedCheck the username in a browser
🎞️ No latest postsLatest posts were disabled, unavailable, or blockedEnable latest posts and try a small test
🧾 Output is too largeFull data or optional enrichments are enabledUse compact mode
🕵️ About data missingInstagram did not expose it publiclyThis is normal for many profiles

FAQ 🙋

Can I scrape private Instagram profiles? 🔐

No. This Actor only works with public profile information.

Do I need Instagram login details? 🍪

No. The Actor does not use Instagram login, cookies, or private session data.

Can I scrape latest posts? 🎞️

Yes. Turn on includeLatestPosts and choose how many previews to collect with maxLatestPostsPerProfile.

Can I scrape contact information? 📬

The Actor extracts public contact clues only when they are listed publicly, such as emails in a bio, domains from public links, mailto links, phone numbers, WhatsApp links, or public business contact fields.

Can I compare profiles over time? 🔁

Yes. Run the Actor again later and use enableChangeDetection with a previous dataset ID.

Can I use this with Google Sheets? 📊

Yes. Download results as CSV or Excel, or connect the Actor through Apify integrations, Make, Zapier, n8n, or the Apify API.

What happens if a profile fails? 🧭

The Actor can add an error-style dataset item with a clear status such as not_found, blocked, failed, or skipped, so you can see what happened instead of wondering why a profile is missing.

Need help or want a feature? 💬

Use the Actor's Issues tab in Apify Console to report bugs, request improvements, or share feedback. Clear examples help a lot: include your input settings, what you expected, and what happened. 🧡