Instagram Profile Stats Scraper avatar

Instagram Profile Stats Scraper

Pricing

from $0.90 / 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.90 / 1,000 scraped profiles

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

1

Bookmarked

14

Total users

1

Monthly active users

17 days ago

Last modified

Share

📊 Instagram profile stats for known public accounts

Instagram Profile Stats Scraper is for marketers, researchers, creator teams, and developers who already have Instagram profiles to check. It returns one structured row for each eligible public profile, with identity, audience and activity counts, public bio links, account flags, and other fields that Instagram exposes.

Use the dataset to review creator candidates, compare brands, support lead research, social media reporting, or keep a repeatable profile record without opening every profile by hand. Results are available through standard Apify dataset exports and API access.

📦 Public Instagram profile rows

Saved row

Each saved row represents one eligible public Instagram profile. It keeps normalized identity, the canonical profile URL, a stable Instagram ID, public bio and link data, audience and activity counts, account flags, and profile images. It can also include visible contact hints, recent public post or reel previews, and related public profiles when Instagram exposes them. Private, invalid, missing, and unavailable profiles do not become successful rows.

▶️ Check known public profiles

Run steps

  1. Open the Input tab.
  2. Add one known public Instagram username, @handle, or profile URL per line.
  3. Set any follower, verification, or recent-engagement qualification filters.
  4. Start the Actor and open the dataset or API output.

The Actor checks each submitted target and continues after an individual lookup fails. Source blocks or challenges are treated as Source Instability, not as a normal no-match. After retries, if blocked access prevents remaining truthful work, the run reports the problem. If the same profile is submitted more than once, the first eligible occurrence is kept and later matches are ignored. Post, reel, Story, hashtag, and private-profile URLs are skipped.

For a small first run, keep the prefilled profiles and the initial profile limit.

⚙️ Input

Input fields

FieldTypeWhat it does
profilesarray of stringsRequired. Enter one known public Instagram username, @handle, or profile URL per line. Up to 1,000 submitted values are supported. Post, reel, Story, hashtag, and private-profile URLs are skipped.
maxProfilesintegerOptional maximum number of submitted profiles to check. Leave it empty to return all available results until the source is exhausted. The form starts at 25.
minimumFollowersintegerOptional minimum follower count for a profile to match. Leave it empty to skip this check.
maximumFollowersintegerOptional maximum follower count for a profile to match. Leave it empty to skip this check.
verificationStatusstringChoose any, verified, or notVerified. any keeps both verified and unverified profiles.
minimumRecentEngagementRatenumberOptional minimum average engagement rate for recent posts, as a percent. Profiles without enough recent posts do not match.
matchedOnlybooleanKeep only profiles that meet every qualification you set. When false, keep all eligible public profiles and show whether each one matches.

Default input example

This is the public input from a successful current-beta default-input run:

{
"profiles": [
"instagram",
"nike",
"https://www.instagram.com/google/",
"@cristiano",
"natgeo",
"nasa",
"adidas",
"puma",
"spotify",
"netflix",
"airbnb",
"duolingo",
"hubspot",
"canva",
"shopify",
"figma",
"notionhq",
"zapier",
"buffer",
"hootsuite",
"latermedia",
"github",
"semrush",
"ahrefs",
"producthunt"
],
"maxProfiles": 25,
"verificationStatus": "any",
"matchedOnly": false
}

🧾 Output

The Output panel opens the default dataset. It uses one profile-row shape. Optional values can be null, and array fields can be empty when Instagram does not expose that data.

Dataset link

FieldTypeWhat it does
resultslinkOpens the public Instagram profile rows in the default dataset overview.

Profile row

FieldTypeWhat it does
usernamestringNormalized Instagram username.
profileUrlURLCanonical URL for the public profile.
instagramIdstringStable Instagram profile ID.
fullNamestring or nullPublic display name shown on the profile.
biographystring or nullPublic biography text.
externalUrlURL or nullPublic external URL shown on the profile.
bioLinksarray of objectsPublic links shown in the profile biography.
bioLinks.titlestring or nullOptional title shown for a bio link.
bioLinks.urlURLURL opened by the bio link.
bioLinks.linkTypestring or nullLink type reported by Instagram when available.
publicEmailsarray of email stringsEmail addresses visible in the biography or public bio links.
publicPhoneHintsarray of stringsPhone-like contact text visible in the biography or public bio links.
followersCountinteger or nullNumber of followers reported by Instagram.
followingCountinteger or nullNumber of accounts followed by the profile.
postsCountinteger or nullNumber of posts reported by Instagram.
highlightReelCountinteger or nullNumber of profile highlights reported by Instagram.
isPrivateboolean or nullWhether Instagram reports the profile as private. Successful rows are for eligible public profiles.
isVerifiedboolean or nullWhether Instagram reports the profile as verified.
isBusinessAccountboolean or nullWhether Instagram reports the profile as a business account.
isProfessionalAccountboolean or nullWhether Instagram reports the profile as a professional account.
categoryNamestring or nullPublic profile category name when available.
categoryEnumstring or nullPublic profile category code reported by Instagram when available.
businessCategoryNamestring or nullPublic business category name when available.
businessContactMethodstring or nullPublic business contact method reported by Instagram when available.
profilePicUrlURL or nullURL for the public profile image.
profilePicUrlHdURL or nullURL for the high-resolution public profile image when available.
pronounsarray of stringsPublic pronouns listed on the profile.
recentContentarray of objectsRecent public posts and reels returned for the profile.
recentContent.urlURLURL for opening the post or reel.
recentContent.typestring or nullContent type reported by Instagram when available.
recentContent.captionstring or nullPublic caption text for the content.
recentContent.likesCountinteger or nullNumber of likes reported for the content.
recentContent.commentsCountinteger or nullNumber of comments reported for the content.
recentContent.videoViewCountinteger or nullNumber of video views reported for the content.
recentContent.takenAtdate-time string or nullPublication time reported for the content.
recentContent.displayUrlURL or nullURL for the main public content image when available.
recentContent.thumbnailUrlURL or nullURL for the content thumbnail when available.
relatedProfilesarray of objectsPublic profiles suggested by Instagram as related to this profile.
relatedProfiles.usernamestringUsername of the related profile.
relatedProfiles.fullNamestring or nullPublic display name of the related profile.
relatedProfiles.profileUrlURLURL for opening the related profile.
relatedProfiles.isPrivateboolean or nullWhether Instagram reports the related profile as private.
relatedProfiles.isVerifiedboolean or nullWhether Instagram reports the related profile as verified.
relatedProfiles.profilePicUrlURL or nullURL for the related profile image when available.

Public counts, links, and previews can vary by profile and by what Instagram exposes at run time.

Genuine profile row

This complete row comes from the successful current-beta default-input run:

{
"username": "nike",
"profileUrl": "https://www.instagram.com/nike/",
"instagramId": "13460080",
"fullName": "Nike",
"biography": "Just Do It.",
"externalUrl": "http://empli.fi/nike",
"bioLinks": [
{
"title": null,
"url": "http://empli.fi/nike",
"linkType": "external"
}
],
"publicEmails": [],
"publicPhoneHints": [],
"followersCount": 291152713,
"followingCount": 266,
"postsCount": 1667,
"highlightReelCount": 5,
"isPrivate": false,
"isVerified": true,
"isBusinessAccount": true,
"isProfessionalAccount": true,
"categoryName": null,
"categoryEnum": "SPORTSWEAR_STORE",
"businessCategoryName": null,
"businessContactMethod": "CALL",
"profilePicUrl": "https://scontent-ord5-2.cdninstagram.com/v/t51.82787-19/551608484_18567162979020081_1135468084872726555_n.jpg?stp=dst-jpg_e0_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4zOTkuYzIifQ&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gHwxkju-Xs1kJ-dPrt4f4DgtJfSI_KyT9sY-yKq_AfCfhxZO8ttJuALSTdPaU-kSfw&_nc_ohc=dM3CBntuvR8Q7kNvwHKWqji&_nc_gid=6u-XW0eacxBusRGEvyZTDQ&edm=AOQ1c0wBAAAA&ccb=7-5&oh=00_AQKr7tHENla9zlDd00MqF1KDkRUwFul-cwHONRR2mdCHPw&oe=6AB94FFA&_nc_sid=8b3546",
"profilePicUrlHd": "https://scontent-ord5-2.cdninstagram.com/v/t51.82787-19/551608484_18567162979020081_1135468084872726555_n.jpg?stp=dst-jpg_s320x320_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4zOTkuYzIifQ&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gHwxkju-Xs1kJ-dPrt4f4DgtJfSI_KyT9sY-yKq_AfCfhxZO8ttJuALSTdPaU-kSfw&_nc_ohc=dM3CBntuvR8Q7kNvwHKWqji&_nc_gid=6u-XW0eacxBusRGEvyZTDQ&edm=AOQ1c0wBAAAA&ccb=7-5&oh=00_AQKvgFuatK2TuKdmqFsvfaUTeGHBwfKyRzNXzagq_vNwOg&oe=6AB94FFA&_nc_sid=8b3546",
"pronouns": [],
"recentContent": [
{
"url": "https://www.instagram.com/reel/Ddl5eH-u4le/",
"type": "GraphVideo",
"caption": "*Just a normal day for @caitlinclark22.\n\nWake up. Eat cereal. Lace up the Caitlin 1. Sell out arenas. Repeat.",
"likesCount": 49925,
"commentsCount": 705,
"videoViewCount": 302307,
"takenAt": "2026-09-22T14:00:04.000Z",
"displayUrl": "https://scontent-ord5-2.cdninstagram.com/v/t51.82787-15/809201733_18666457525020081_2045154896762681305_n.jpg?stp=dst-jpg_e15_fr_p1080x1080_tt6&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gHwxkju-Xs1kJ-dPrt4f4DgtJfSI_KyT9sY-yKq_AfCfhxZO8ttJuALSTdPaU-kSfw&_nc_ohc=B1MSBA3bCCoQ7kNvwH7FQw8&_nc_gid=6u-XW0eacxBusRGEvyZTDQ&edm=AOQ1c0wBAAAA&ccb=7-5&oh=00_AQIR_4kFepvKYQKutiPzPuo_xSz5mHf3ZVC6jvTZ2Gn13A&oe=6AB9773B&_nc_sid=8b3546",
"thumbnailUrl": "https://scontent-ord5-2.cdninstagram.com/v/t51.82787-15/809201733_18666457525020081_2045154896762681305_n.jpg?stp=c0.420.1080.1080a_dst-jpg_e35_s640x640_sh2.08_tt6&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gHwxkju-Xs1kJ-dPrt4f4DgtJfSI_KyT9sY-yKq_AfCfhxZO8ttJuALSTdPaU-kSfw&_nc_ohc=B1MSBA3bCCoQ7kNvwH7FQw8&_nc_gid=6u-XW0eacxBusRGEvyZTDQ&edm=AOQ1c0wBAAAA&ccb=7-5&oh=00_AQIskAjxtkcLJM-j9uEW-pwfBxLzKIrCHLKK79APy4cVDw&oe=6AB9773B&_nc_sid=8b3546"
},
{
"url": "https://www.instagram.com/p/DdcI8NLmY21/",
"type": "GraphSidecar",
"caption": "Nike Atelier for Sha’Carri Richardson reflects the beauty of London after rainfall through luminous details, weathered textures, and sculptural silhouettes defined by strength and movement.\n\nThe bespoke look debuts on the red carpet at @athlos A26 in London. \n\nBuilt to push beyond convention, the Nike FlyWeb bra uses computational design to engineer fit and support down to the millimeter. Precision-made for an athlete redefining power on and off the track.\n\nThe Nike Atelier Vomero Premium takes a performance silhouette into new territory, embellished with hand-set Swarovski® Crystals shimmering like water droplets above reflective Air Zoom units.\n\n“You don’t have to choose one version of yourself. Every side of you can be powerful.”\n\nSha’Carri Richardson\n\nLight and movement shape every detail of the Nike Atelier jacket, with hand-set Swarovski® Crystals that catch the light like raindrops across the reflective outer layer.\n\nMade in Japan from premium crackled leather, the Nike Atelier Duffel Mini is accessorized with oversized custom charms that celebrate Sha’Carri’s connection to the track.\n\nNike Atelier. One of One.",
"likesCount": 57483,
"commentsCount": 1179,
"videoViewCount": null,
"takenAt": "2026-09-18T19:01:59.000Z",
"displayUrl": "https://scontent-ord5-2.cdninstagram.com/v/t51.82787-15/796460834_18665219536020081_4779922114140616445_n.jpg?stp=dst-jpg_e15_fr_p1080x1080_tt6&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gHwxkju-Xs1kJ-dPrt4f4DgtJfSI_KyT9sY-yKq_AfCfhxZO8ttJuALSTdPaU-kSfw&_nc_ohc=M6jc0ESDyNMQ7kNvwHlrX13&_nc_gid=6u-XW0eacxBusRGEvyZTDQ&edm=AOQ1c0wBAAAA&ccb=7-5&ig_cache_key=Mzk4OTEwMTE1MDA0NDczMzg3MA%3D%3D.3-ccb7-5&oh=00_AQKu7pH5g9gR394xBnA3BqP5i40D8ds6M9vss6WodaOD7Q&oe=6AB96B7B&_nc_sid=8b3546",
"thumbnailUrl": "https://scontent-ord5-2.cdninstagram.com/v/t51.82787-15/796460834_18665219536020081_4779922114140616445_n.jpg?stp=c0.135.1080.1080a_dst-jpg_e35_s640x640_sh2.08_tt6&_nc_ht=scontent-ord5-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gHwxkju-Xs1kJ-dPrt4f4DgtJfSI_KyT9sY-yKq_AfCfhxZO8ttJuALSTdPaU-kSfw&_nc_ohc=M6jc0ESDyNMQ7kNvwHlrX13&_nc_gid=6u-XW0eacxBusRGEvyZTDQ&edm=AOQ1c0wBAAAA&ccb=7-5&ig_cache_key=Mzk4OTEwMTE1MDA0NDczMzg3MA%3D%3D.3.c-ccb7-5&oh=00_AQJOZTQxtxTqARzPU8oDenicjp6ruPzaMBX_5969G1qAgg&oe=6AB96B7B&_nc_sid=8b3546"
},
{
"url": "https://www.instagram.com/p/DdNIWqQPrFM/",
"type": "GraphImage",
"caption": "Respectfully brutal. @bokrugby tough out a series only rugby’s greatest can produce.",
"likesCount": 108370,
"commentsCount": 899,
"videoViewCount": null,
"takenAt": "2026-09-12T23:09:11.000Z",
"displayUrl": "https://scontent-ord5-1.cdninstagram.com/v/t51.82787-15/808535567_18663415465020081_8300401525546067823_n.jpg?stp=dst-jpg_e35_p1080x1080_sh2.08_tt6&_nc_ht=scontent-ord5-1.cdninstagram.com&_nc_cat=109&_nc_oc=Q6cZ2gHwxkju-Xs1kJ-dPrt4f4DgtJfSI_KyT9sY-yKq_AfCfhxZO8ttJuALSTdPaU-kSfw&_nc_ohc=aMzV8RcYo3MQ7kNvwE58oMW&_nc_gid=6u-XW0eacxBusRGEvyZTDQ&edm=AOQ1c0wBAAAA&ccb=7-5&ig_cache_key=Mzk4NDg3Nzk4Njg2MzAzNDcwMA%3D%3D.3-ccb7-5&oh=00_AQJTeyQ6shCqWKIXiZZHi-qX4eI2k2vwl6qkkjle0qapIQ&oe=6AB95155&_nc_sid=8b3546",
"thumbnailUrl": "https://scontent-ord5-1.cdninstagram.com/v/t51.82787-15/808535567_18663415465020081_8300401525546067823_n.jpg?stp=c0.500.3000.3000a_dst-jpg_e35_s640x640_sh2.08_tt6&_nc_ht=scontent-ord5-1.cdninstagram.com&_nc_cat=109&_nc_oc=Q6cZ2gHwxkju-Xs1kJ-dPrt4f4DgtJfSI_KyT9sY-yKq_AfCfhxZO8ttJuALSTdPaU-kSfw&_nc_ohc=aMzV8RcYo3MQ7kNvwE58oMW&_nc_gid=6u-XW0eacxBusRGEvyZTDQ&edm=AOQ1c0wBAAAA&ccb=7-5&ig_cache_key=Mzk4NDg3Nzk4Njg2MzAzNDcwMA%3D%3D.3.c-ccb7-5&oh=00_AQIlkL8a84oGLNen2izHTkRMDIQBTNQrTQqKew-BD_6rOg&oe=6AB95155&_nc_sid=8b3546"
}
],
"relatedProfiles": []
}

💳 Pricing

Primary event

This Actor uses pay-per-event pricing. The Scraped profile event covers one public Instagram profile that is successfully found and saved as a dataset row. Invalid, missing, private, unavailable, and skipped inputs do not create rows or charges. The price shown in the pricing panel depends on your Apify plan.

🔌 Integrations

Dataset access

Open the saved rows in Apify, export them as JSON, CSV, Excel, XML, RSS, or HTML, or read them through the Apify API. You can also schedule repeat runs and compare the public profile data in your own workflow.

❓ FAQ

What happens when a submitted profile is private or unavailable?

The profile is skipped without a successful row or a Scraped profile charge. Processing continues with the other submitted profiles.

What happens if Instagram blocks access or shows a challenge?

The Actor treats a block or challenge as Source Instability. It keeps valid rows already saved and continues independent checks when it can. After retries, if the block still prevents truthful work, the run reports the problem instead of treating every profile as a normal no-match.

What happens when the same profile is submitted more than once?

The first eligible occurrence is saved. Later matches for the same profile are ignored, and the saved row reflects that first occurrence.

How do the qualification filters work?

You can set follower and recent-engagement ranges and choose any, verified, or notVerified. The Actor evaluates the settings for each eligible public profile.

What does Matched profiles only do?

When it is true, only profiles that meet every qualification you set are kept. When it is false, all eligible public profiles are kept and the match decision is still evaluated.

What happens when I leave Profile limit empty?

The Actor checks all submitted profiles and returns all available results until the source is exhausted.

What if Instagram does not expose a field?

The field can be null or an array can be empty. The Actor keeps the source value as exposed and does not invent missing data.

Where do public contact hints come from?

They come only from visible bio text and public bio links. The Actor does not visit linked websites or enrich contact data from other sources.

Does this collect private profiles, follower lists, comments, Stories, or full media files?

No. It reads public profile data and does not collect private profiles, follower or following lists, comments, Stories, highlight content, hashtags, or full media downloads. Use a media downloader when you need direct media links.

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

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

Can I run it on a schedule?

Yes. Apify schedules can run the Actor again so you can compare public profile data over time.

📝 Changelog

v1.0 (22-09-2026)

  • Add optional follower, verification, and recent-engagement filters for known profiles.
  • Save only eligible public profiles and charge once for each saved row while private, unavailable, invalid, and skipped inputs stay outside the results.
  • Keep processing after individual lookup failures with clear progress and final warnings.

v0.1

  • Initial release.

🆘 Support

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

Made with ❤️ by Maxime Dupré