Instagram Profile Stats Scraper avatar

Instagram Profile Stats Scraper

Pricing

from $0.45 / 1,000 scraped profiles

Go to Apify Store
Instagram Profile Stats Scraper

Instagram Profile Stats Scraper

Scrape Instagram profile stats from public usernames, @handles, or profile URLs. Export followers, following, post counts, bio links, recent posts, related profiles, and timestamps.

Pricing

from $0.45 / 1,000 scraped profiles

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

📊 Instagram profile stats scraper for public profiles

Instagram Profile Stats Scraper gets public profile stats from Instagram. Add Instagram usernames, @handles, or full profile URLs, then export followers, following, post counts, account flags, bio links, recent post previews, related profiles, source URLs, and scrape timestamps to an Apify dataset.

Use this Instagram profile stats scraper when you already know the profiles you want to check and need a clean, repeatable export for influencer research, creator shortlists, brand monitoring, competitor tracking, lead review, or social media reporting. Instead of opening each profile by hand, you get structured rows you can download as JSON, CSV, Excel, XML, RSS, or HTML, call through the Apify API, schedule, or send to integrations.

For a small first run, keep the prefilled public profiles and the default preview limits. The Actor works with public Instagram profile data only and does not require Instagram cookies, a login, or an Instagram API key.

✅ What this Actor does

  • Scrapes public Instagram profile stats from usernames, @handles, and profile URLs.
  • Saves one dataset row per successfully found public profile.
  • Extracts profile identity, biography, external URL, profile image URLs, and source URL.
  • Extracts follower count, following count, post count, media count, highlight reel count, and IGTV video count when Instagram exposes them.
  • Adds account flags such as private, verified, business, professional, category, clips, guides, channel, and country block fields.
  • Can include recent public post or reel previews with captions, shortcodes, URLs, likes, comments, view counts, timestamps, and thumbnails.
  • Can include Instagram related-profile suggestions.
  • Can extract visible email and phone-like contact hints from the profile bio and public bio links.
  • Skips invalid, private, missing, unavailable, or temporarily unreachable profiles without saving failure rows.

This Actor is focused on profile-level Instagram data. It does not scrape followers, following lists, comments, stories, highlights, hashtags, search results, private profiles, or full media downloads.

📦 Data you can export

Each output row represents one public Instagram profile. Core fields include:

  • sourceInput, inputIndex, username, profileUrl, and instagramId
  • fullName, biography, externalUrl, bioLinks, and profile picture URLs
  • publicEmails and publicPhoneHints when visible contact hints are enabled
  • followersCount, followingCount, postsCount, mediaCount, highlightReelCount, and igtvVideoCount
  • isPrivate, isVerified, isBusinessAccount, isProfessionalAccount, and category fields
  • businessEmail, businessPhoneNumber, and business contact fields when visible in the public profile data
  • recentContent with public post or reel previews when requested
  • relatedProfiles with public related-profile suggestions when requested
  • sourceUrl and scrapedAt

Fields can be null or empty when Instagram does not expose that value for a public profile.

🚀 How to run it

  1. Open the Input tab.
  2. Add one public Instagram profile per line in Profiles.
  3. Keep Recent posts at 3 for a small preview, or set it to 0 if you only need profile-level stats.
  4. Set Related profiles above 0 if you want Instagram related-profile suggestions.
  5. Start the Actor and open the dataset.

Accepted target examples:

{
"profiles": [
"instagram",
"@nike",
"https://www.instagram.com/google/"
],
"maxProfiles": 25,
"recentContentLimit": 3,
"relatedProfilesLimit": 2,
"extractPublicContactsFromBio": true
}

🛠️ Input

FieldWhat to enter
profilesPublic Instagram usernames, @handles, or profile URLs.
maxProfilesMaximum number of submitted profiles to check in the run.
recentContentLimitMaximum number of recent public posts or reels to include per profile. Use 0 to skip recent content previews.
relatedProfilesLimitMaximum number of related-profile suggestions to include per profile. Use 0 to keep rows smaller.
extractPublicContactsFromBioExtract visible email and phone-like strings from the profile bio and public bio links.

Keep the first run small, then raise the profile limit once the output shape matches your workflow.

📄 Output example

{
"status": "ok",
"sourceInput": "instagram",
"inputIndex": 0,
"username": "instagram",
"profileUrl": "https://www.instagram.com/instagram/",
"instagramId": "25025320",
"fullName": "Instagram",
"biography": "Example public profile bio",
"externalUrl": "https://about.instagram.com/",
"bioLinks": [
{
"title": "Example link",
"url": "https://about.instagram.com/",
"linkType": "external"
}
],
"publicEmails": [],
"publicPhoneHints": [],
"followersCount": 123456789,
"followingCount": 123,
"postsCount": 1234,
"isPrivate": false,
"isVerified": true,
"isBusinessAccount": false,
"isProfessionalAccount": true,
"recentContent": [
{
"shortcode": "EXAMPLE",
"url": "https://www.instagram.com/p/EXAMPLE/",
"isVideo": false,
"likesCount": 120000,
"commentsCount": 2400,
"takenAt": "2026-06-04T00:00:00.000Z"
}
],
"relatedProfiles": [
{
"username": "creators",
"fullName": "Creators",
"profileUrl": "https://www.instagram.com/creators/",
"isPrivate": false,
"isVerified": true
}
],
"sourceUrl": "https://www.instagram.com/instagram/",
"scrapedAt": "2026-06-04T00:00:00.000Z"
}

Counts and previews vary by profile and by what Instagram exposes publicly at run time.

💳 Pricing

This Actor uses pay-per-event pricing. You are charged for each public Instagram profile that is successfully found and saved as a dataset row. Invalid, missing, private, unavailable, or skipped profiles are not saved as output rows.

⚠️ Limits and caveats

  • Public Instagram data can change between runs.
  • Some public profiles expose fewer fields than others.
  • Private, deleted, restricted, or temporarily unavailable profiles are skipped.
  • Recent content previews are limited to the number you set in the input and are not a full profile post scraper.
  • Contact hints are extracted only from visible bio text and public bio links. The Actor does not visit linked websites or enrich contacts from other sources.
  • Instagram can occasionally return partial or unavailable public profile data. When that happens, the run continues through the rest of your list.

❓ FAQ

🔐 Do I need Instagram cookies, login, or an API key?

No. The Actor is designed for public Instagram profile data and does not ask for Instagram credentials.

🔒 Can it scrape private Instagram profiles?

No. Private, deleted, restricted, or unavailable profiles are skipped without saving failure rows.

📥 Does it download Instagram photos or videos?

No. This Actor returns profile stats and optional recent content previews. Use an Instagram media downloader when you need direct media download URLs.

🕒 Can I run it on a schedule?

Yes. You can schedule the Actor on Apify and compare exported rows over time in your own sheet, warehouse, dashboard, or workflow.

📝 Changelog

  • 0.1: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

🔗 Other actors

Made with ❤️ by Maxime Dupré