Instagram Profile Scraper: Bio, Followers, Reels avatar

Instagram Profile Scraper: Bio, Followers, Reels

Pricing

from $0.69 / 1,000 profiles

Go to Apify Store
Instagram Profile Scraper: Bio, Followers, Reels

Instagram Profile Scraper: Bio, Followers, Reels

Instagram profile scraper: paste usernames or profile URLs and get one row per profile with bio, links, followers, following, posts, engagement rate, category, verified and business flags, story status, latest posts and reels with their views, and the HD picture. No login, no cookies.

Pricing

from $0.69 / 1,000 profiles

Rating

0.0

(0)

Developer

DeepMine

DeepMine

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Share

Instagram profile scraper: paste Instagram usernames or profile URLs and get one row per profile with its profile details: bio, website and bio links, category, followers count, following and posts counts, engagement rate, verified, private and business flags, story status, related profiles, its latest 12 posts and its latest reels with their views. No login.

๐Ÿท๏ธ Username๐Ÿ‘ค Name๐Ÿข Category๐Ÿ‘ฅ Followers๐Ÿ“ธ Posts๐ŸŽฌ Reel Views๐Ÿ”— Related
nasaNASAโ€“104,315,4614,9623,368,27250
humansofnyHumans of New Yorkโ€“12,648,9155,8761,212,29216
levainbakeryLevain BakeryBakery674,1413,43040,75428

$0.99 per 1,000 profiles on the Starter plan ($1.15 Free, $0.89 Scale, $0.69 Business). The prefilled run (5 profiles) costs about $0.005 ($0.006 on Free). Latest posts, latest reels with views, related profiles and engagement stats are all included. No start fee, no minimum.

What you get

  • The profile: name, full bio (and a 50-character snippet), website and every bio link with its title, category, account type (personal, creator, business), verified, private, business and professional flags, pronouns, Threads handle, linked Facebook page, HD profile picture, user id and Facebook id.
  • Exact counts: followers count, following and posts, plus average likes and comments of the latest posts, engagement rate and the last post's date.
  • Latest posts: the latest 12 (pinned ones included), in the shape of Apify's Instagram Profile Scraper: caption, hashtags, mentions, likes, comments, reel plays, video link, time, image and carousel pictures, size, alt text, location, tagged users, coauthors, sponsors, paid partnership and music.
  • Latest reels with views (up to 12): views, likes, comments and date per reel, plus the median and average reel views and views over followers.
  • Related profiles (up to 50): the accounts Instagram suggests with the profile, in Apify's shape.
  • Story and address: whether a story is up right now and when it went up, and the business address when the profile shows one.
  • One row per profile, charged once even if you list it twice. Rows land in the dataset as each profile is read; rank keeps your list's order (sort by it to get your order back). Unknown and age-restricted profiles are listed in the run summary and never charged.
  • Drop-in for Apify's Instagram Profile Scraper input: the same usernames field takes the same values (names or URLs), so a saved input runs unchanged; its paid includeAboutSection add-on is not offered and is ignored. Every field its profile rows carry has a column here, except isRestrictedProfile and restrictionReason (age-restricted profiles are listed in the run summary, never delivered or charged) and its paid about add-on. Where both have a field under the same name, it has the same shape (latestPosts, latestIgtvVideos, relatedProfiles and businessAddress items carry Apify's keys; the firstComment and latestComments of its IGTV items, always empty there, are left out). Names differ where ours follow camelCase booleans: private is isPrivate, verified is isVerified, url is profileUrl, externalUrls is bioLinks, externalUrlShimmed is externalUrlLinkshimmed, facebookPage is linkedFacebookPage, threadsNetProfile is isActiveOnThreads.
  • No login, no cookies, no account of yours involved. The Actor reads only what Instagram shows any visitor.

What every row has, and what is best-effort. Every public profile's row has the profile, the exact counts, the latest 12 posts, the latest reels with views, the story status and the related profiles (for profiles Instagram suggests any for). In our two 80-profile Apify test runs on 2026-10-12, 79 of 80 rows had 12 posts (the other 1 has fewer than 12 posts in all) and 71 of 80 had related profiles (Instagram suggests no one for the other 9, in its app record too where that answered). The related profiles are read on datacenter IPs only: if Instagram refuses that read on every IP tried, the row still goes out, with the app record's related profiles where it answered, else none. Six fields come only from Instagram's app record, which Instagram answers for some profiles and IPs and not others: highlightReelCount, igtvVideoCount, hasChannel, joinedRecently, latestIgtvVideos (the latest IGTV videos) and the posts' videoViewCount. They are null when it doesn't answer: 3-16 of 80 profiles had them in our runs, depending on how hard Instagram was throttling Apify's datacenter IPs. Instagram answers the record for natgeo and levainbakery with its own error, and in a test run on 2026-10-11 Apify's Instagram Profile Scraper returned none of those fields for them either.

Typical uses: tracking competitors' or creators' follower and posting numbers, vetting influencers before outreach, enriching a CRM list of Instagram handles, and monitoring brand accounts on a schedule.

Input

{
"usernames": ["nasa", "@humansofny", "https://www.instagram.com/levainbakery/"],
"includeLatestPosts": true
}
  • ๐Ÿ“‡ Instagram profiles: usernames, @usernames or profile URLs, one per line (up to 1,000 per run).
  • ๐Ÿ–ผ๏ธ Include latest posts: on by default, included in the price. Off = smaller rows.
  • ๐ŸŽฌ Include latest reels and views: on by default, included in the price.
  • Advanced: Max profiles (caps the run's cost), Include engagement stats (on), Proxy.

Need emails and phones from the profiles' own websites and link-in-bio pages? That's the Instagram Email Scraper. Need lookalike accounts? Instagram Related Profiles.

Output

One row per profile. The dataset's ๐Ÿชช Profiles view shows the bio, website, category, followers count, following, posts, engagement and reel views; ๐Ÿ”Ž Details, ๐Ÿ“ˆ Stats, ๐ŸŽฌ Reels and ๐Ÿ—‚๏ธ Record show the rest. The run's OUTPUT record (๐Ÿงพ Run summary) lists each input's status (found, not found, age-restricted).

Output fields

  • profilePicUrl: profile picture (150x150). Instagram signs picture links; they stop working after a few days.
  • fullName: display name.
  • biography: full bio.
  • biographySnippet: first 50 characters of the bio.
  • username: the handle, without @.
  • profileUrl: https://www.instagram.com/
  • businessCategoryName: the category the profile shows (Digital creator, Athlete, Nonprofit organization...); null when it hides it (most creators do: about a third of rows in our runs of the prefilled input have one).
  • externalUrl: the profile's website (its first bio link).
  • contactEmail: an email address written in the bio or name, when there is one (about half of the rows in our runs of the prefilled input).
  • contactPhone: a phone number written in the bio or name, or a WhatsApp number from the bio links, when there is one. Rare for creators.
  • bioLinks: every link in the bio, as {url, title, linkType, lynxUrl, isPinned, imageUrl, linkId, mediaType, mediaAccentColorHex, creationSource}.
  • isVerified: has the blue check.
  • isPrivate: private account.
  • isBusinessAccount: a business account (account type business). Instagram sends its own business flag as false to visitors who aren't logged in, so the Actor sets it from the account type; the Business account filter uses the same rule.
  • isProfessionalAccount: a business or creator account.
  • accountType: personal, business or creator.
  • followersCount: exact follower count.
  • followsCount: accounts it follows.
  • postsCount: exact number of posts.
  • hasReels: the profile has reels (Instagram doesn't show visitors a reel count).
  • avgLikes: average likes on its latest posts (up to 6; posts that hide likes are left out).
  • avgComments: average comments on its latest posts.
  • engagementRate: (average likes + average comments) / followers, in percent (1.09 = 1.09%).
  • lastPostAt: when its newest post was published (UTC).
  • reelsMedianViews: median views of its latest reels (up to 12, pinned ones included), as the reels tab shows them. These are Instagram's play counts, so they run higher than the older videoViewCount other Actors return (2.6 to 7 times higher on the same 8 reels in our check).
  • reelsAvgViews: average views of those reels.
  • reelsAvgLikes: average likes on those reels (reels that hide likes left out).
  • reelsAvgComments: average comments on those reels.
  • reelsViewsToFollowers: median reel views over followers, in percent.
  • lastReelAt: when the newest of those reels was posted (UTC; from the reel's id, accurate to about a minute).
  • highlightReelCount: the number of story highlights on the profile, when Instagram's app record answers.
  • hasPublicStory: a story is up right now (its newest story went up in the last 24 hours).
  • igtvVideoCount: its IGTV (long video) count, when Instagram's app record answers.
  • hasChannel: it runs a broadcast channel, when Instagram's app record answers.
  • joinedRecently: Instagram marks the account as new, when its app record answers.
  • latestPosts: with ๐Ÿ–ผ๏ธ Include latest posts on (the default): its latest 12 posts (pinned ones included; fewer when the profile has fewer, none for private profiles), in the shape of Apify's Instagram Profile Scraper: each with id, type (Image, Video, Sidecar), shortCode, url, caption, hashtags, mentions, likesCount, commentsCount, videoViewCount, videoPlayCount, timestamp, displayUrl, images (the carousel's pictures), videoUrl, dimensionsWidth, dimensionsHeight (the original size), alt, productType, isPinned, isCommentsDisabled, paidPartnership, sponsors, coauthorProducers, coauthors, taggedUsers, ownerUsername, ownerId, locationName, locationId, musicInfo, childPostsCount and childPosts. videoPlayCount is a reel's plays (from the reels tab, for the reels it shows); videoViewCount is filled only when Instagram's app record answers.
  • latestIgtvVideos: with ๐Ÿ–ผ๏ธ Include latest posts on (the default): its latest IGTV (long) videos (up to 12), each with the latestPosts keys plus title, videoDuration (seconds) and commentsDisabled, when Instagram's app record answers.
  • latestReels: its latest reels (up to 12, pinned ones included), each with shortCode, url, playCount (views), likeCount, commentCount, postedAt and isPinned.
  • relatedProfiles: the profiles Instagram suggests with this one (up to 50), each as {id, full_name, is_private, is_verified, profile_pic_url, username} (Apify's shape). None for private profiles and for big brands Instagram suggests nothing for.
  • bioMentions: usernames the bio links to (@sweat...).
  • bioHashtags: hashtags the bio links to.
  • pronouns: pronouns the profile shows.
  • threadsUsername: Threads handle, when the profile shows its Threads badge.
  • isActiveOnThreads: the profile shows its Threads badge.
  • linkedFacebookPage: the Facebook page the profile links, as {id, name}, when it shows one.
  • businessAddress: the business address as {street_address, city_name, city_id, zip_code, latitude, longitude} (Apify's shape), when the profile shows one.
  • addressStreet: business street address, when the profile shows one (rare).
  • city: business city, when the profile shows an address (rare).
  • zipCode: business ZIP or postal code, when the profile shows an address (rare).
  • transparencyLabel: Instagram's label for state-controlled media and similar accounts, when shown (rare).
  • transparencyProduct: where Instagram shows that label.
  • isMemorialized: a memorialized account.
  • isEmbedsDisabled: the profile turned off embedding its posts on other sites.
  • isUnpublished: Instagram's unpublished-account flag.
  • hasStoryArchive: the account keeps a story archive (Instagram sends it only to logged-in users, so usually null).
  • hasProfilePic: the account has a profile picture (usually null for visitors who aren't logged in).
  • latestStoryAt: when its newest story went up (UTC), when Instagram shows one (a story stays up 24 hours); null when it has none.
  • hideCreatorMarketplaceBadge: the profile hides its creator marketplace badge.
  • isRegulatedC18: Instagram marks the account as regulated 18+ content (alcohol, gambling and similar).
  • isCoppaEnforced: Instagram applies children's-privacy (COPPA) rules to the account (usually null).
  • isCannes: Instagram's is_cannes flag, passed through as sent.
  • hasLongformMedia: Instagram's has_longform_media flag: the account has long-form videos.
  • shouldShowCategory: the profile shows its category on its page.
  • showAccountTransparencyDetails: Instagram shows the "About this account" details for it.
  • profilePicGenaiToolInfo: Instagram's AI-tool info for the profile picture, when it has any.
  • externalUrlLinkshimmed: the website as Instagram links it (through l.instagram.com).
  • profilePicUrlHD: full-size profile picture (signed link, expires after a few days).
  • seedUsername: the input this row answers (the username as read from what you typed; apify's inputUrl).
  • depth: always 0 here (the profile itself; the engine's related-profiles mode counts hops).
  • rank: the profile's position in your list.
  • discoveredFrom: always null here (the related-profiles mode's parent).
  • id: Instagram's numeric user id.
  • fbid: Instagram's Facebook-wide id for the account.
  • scrapedAt: when the run collected it (UTC).

Field names match Apify's Instagram Profile Scraper where both have the field (username, fullName, biography, externalUrl, followersCount, followsCount, postsCount, profilePicUrl, profilePicUrlHD, highlightReelCount, igtvVideoCount, hasChannel, joinedRecently, isBusinessAccount, businessCategoryName, hasPublicStory, businessAddress, relatedProfiles, latestPosts, latestIgtvVideos, fbid, id), so the two join on username or id.

Example row (nasa from the run above; latestPosts, latestIgtvVideos and latestReels cut to one each, relatedProfiles to three, and the lists inside a post to one or two here; picture, video and redirect links shortened):

{
"profilePicUrl": "https://scontent-lax3-2.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg?โ€ฆ",
"fullName": "NASA",
"biography": "Making the seemingly impossible, possible. โœจ",
"biographySnippet": "Making the seemingly impossible, possible. โœจ",
"username": "nasa",
"profileUrl": "https://www.instagram.com/nasa/",
"businessCategoryName": null,
"externalUrl": "https://www.nasa.gov",
"contactEmail": null,
"contactPhone": null,
"bioLinks": [
{
"url": "https://www.nasa.gov",
"title": "NASA.gov Homepage",
"linkType": "external",
"lynxUrl": "https://l.instagram.com/?u=https%3A%2F%2Fwww.nasa.gov%2F&โ€ฆ",
"isPinned": false,
"imageUrl": null,
"linkId": "17920263086752176",
"mediaType": "none",
"mediaAccentColorHex": null,
"creationSource": "NONE"
},
{
"url": "https://www.nasa.gov/maxpower",
"title": "MAX POWER",
"linkType": "external",
"lynxUrl": "https://l.instagram.com/?u=https%3A%2F%2Fwww.nasa.gov%2Fmaxpower&โ€ฆ",
"isPinned": false,
"imageUrl": null,
"linkId": "18112845478962969",
"mediaType": "none",
"mediaAccentColorHex": null,
"creationSource": "NONE"
},
{
"url": "https://science.nasa.gov/blogs/roman/",
"title": "Roman Space Telescope Blog",
"linkType": "external",
"lynxUrl": "https://l.instagram.com/?u=https%3A%2F%2Fscience.nasa.gov%2Fblogs%2Froman%2F&โ€ฆ",
"isPinned": false,
"imageUrl": null,
"linkId": "18103052786245620",
"mediaType": "none",
"mediaAccentColorHex": null,
"creationSource": "NONE"
},
{
"url": "http://nasa.gov/ways-to-watch",
"title": "How to Watch NASA Livestreams",
"linkType": "external",
"lynxUrl": "https://l.instagram.com/?u=https%3A%2F%2Fnasa.gov%2Fways-to-watch&โ€ฆ",
"isPinned": false,
"imageUrl": null,
"linkId": "18166975096479802",
"mediaType": "none",
"mediaAccentColorHex": null,
"creationSource": "NONE"
},
{
"url": "https://science.nasa.gov/feature/artemis-ii-preliminary-lunar-science-report/",
"title": "Artemis II Preliminary Lunar Science Report",
"linkType": "external",
"lynxUrl": "https://l.instagram.com/?u=https%3A%2F%2Fscience.nasa.gov%2Ffeature%2Fartemis-ii-preliminary-lunar-science-report%2F&โ€ฆ",
"isPinned": false,
"imageUrl": null,
"linkId": "1034821412909488",
"mediaType": "none",
"mediaAccentColorHex": null,
"creationSource": "NONE"
}
],
"isVerified": true,
"isPrivate": false,
"isBusinessAccount": true,
"isProfessionalAccount": true,
"accountType": "business",
"followersCount": 104315461,
"followsCount": 90,
"postsCount": 4962,
"hasReels": true,
"avgLikes": 293766,
"avgComments": 1798,
"engagementRate": 0.28,
"lastPostAt": "2026-10-11T16:30:01Z",
"reelsMedianViews": 3368272,
"reelsAvgViews": 4720196,
"reelsAvgLikes": 129658,
"reelsAvgComments": 1240,
"reelsViewsToFollowers": 3.23,
"lastReelAt": "2026-10-10T05:21:53Z",
"highlightReelCount": null,
"hasPublicStory": false,
"igtvVideoCount": null,
"hasChannel": null,
"joinedRecently": null,
"latestPosts": [
{
"id": "4001971394119634476",
"type": "Image",
"shortCode": "DeJ28eTxo4s",
"url": "https://www.instagram.com/p/DeJ28eTxo4s/",
"caption": "Brewing up new stars ๐Ÿช„\n \n@NASAWebbโ€™s unique view of the stellar nursery known as NGC 7129 reveals numerous stars formerlโ€ฆ",
"hashtags": [],
"mentions": [
"NASAWebb"
],
"likesCount": 226471,
"commentsCount": 665,
"videoViewCount": null,
"videoPlayCount": null,
"timestamp": "2026-10-06T13:10:11Z",
"displayUrl": "https://scontent-dfw6-1.cdninstagram.com/v/t51.82787-15/838879752_18633093571001809_7013098794556155636_n.jpg?โ€ฆ",
"images": [],
"videoUrl": null,
"dimensionsWidth": 2000,
"dimensionsHeight": 1872,
"alt": null,
"productType": null,
"isPinned": true,
"isCommentsDisabled": null,
"paidPartnership": false,
"sponsors": [],
"coauthorProducers": [
{
"id": "65495240044",
"is_verified": true,
"profile_pic_url": "https://scontent-dfw5-1.cdninstagram.com/v/t51.2885-19/437785305_1498177207718392_5285428334541669140_n.jpg?โ€ฆ",
"username": "nasauniverse"
},
{
"id": "528817151",
"is_verified": true,
"profile_pic_url": "https://scontent-dfw6-1.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg?โ€ฆ",
"username": "nasa"
}
],
"coauthors": [
"nasauniverse",
"nasa"
],
"taggedUsers": [
{
"full_name": "NASA",
"id": "528817151",
"is_verified": true,
"profile_pic_url": "https://scontent-dfw6-1.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg?โ€ฆ",
"username": "nasa"
},
{
"full_name": "NASA Universe",
"id": "65495240044",
"is_verified": true,
"profile_pic_url": "https://scontent-dfw5-1.cdninstagram.com/v/t51.2885-19/437785305_1498177207718392_5285428334541669140_n.jpg?โ€ฆ",
"username": "nasauniverse"
}
],
"ownerUsername": "nasawebb",
"ownerId": "549313808",
"locationName": null,
"locationId": null,
"musicInfo": null,
"childPostsCount": null,
"childPosts": []
}
],
"latestIgtvVideos": null,
"latestReels": [
{
"shortCode": "DeTUk4sDSp-",
"url": "https://www.instagram.com/reel/DeTUk4sDSp-/",
"playCount": 8153349,
"likeCount": 571993,
"commentCount": 5510,
"postedAt": "2026-10-10T05:21:53Z",
"isPinned": false
}
],
"relatedProfiles": [
{
"id": "1131654366",
"full_name": "NASA Armstrong",
"is_private": false,
"is_verified": true,
"profile_pic_url": "https://scontent-dfw6-2.cdninstagram.com/v/t51.2885-19/481334268_1002508118359709_6926010525909147150_n.jpg?โ€ฆ",
"username": "nasaarmstrong"
},
{
"id": "58700439306",
"full_name": "national archaeology",
"is_private": false,
"is_verified": false,
"profile_pic_url": "https://scontent-dfw5-2.cdninstagram.com/v/t51.82787-19/619959112_17979095837959307_3504569474369666830_n.jpg?โ€ฆ",
"username": "national.archaeology"
},
{
"id": "10167330907",
"full_name": "SpaceX & Space News",
"is_private": false,
"is_verified": false,
"profile_pic_url": "https://scontent-dfw6-2.cdninstagram.com/v/t51.82787-19/714243895_18210776791338908_64371814279386689_n.jpg?โ€ฆ",
"username": "spacex_spacenews"
}
],
"bioMentions": null,
"bioHashtags": null,
"pronouns": null,
"threadsUsername": "nasa",
"isActiveOnThreads": true,
"linkedFacebookPage": null,
"businessAddress": null,
"addressStreet": null,
"city": null,
"zipCode": null,
"transparencyLabel": null,
"transparencyProduct": null,
"isMemorialized": false,
"isEmbedsDisabled": false,
"isUnpublished": false,
"hasStoryArchive": null,
"hasProfilePic": null,
"latestStoryAt": null,
"hideCreatorMarketplaceBadge": false,
"isRegulatedC18": false,
"isCoppaEnforced": null,
"isCannes": false,
"hasLongformMedia": false,
"shouldShowCategory": true,
"showAccountTransparencyDetails": true,
"profilePicGenaiToolInfo": null,
"externalUrlLinkshimmed": "https://l.instagram.com/?u=https%3A%2F%2Fwww.nasa.gov%2F&โ€ฆ",
"profilePicUrlHD": "https://scontent-lax3-2.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg?โ€ฆ",
"seedUsername": "nasa",
"depth": 0,
"rank": 3,
"discoveredFrom": null,
"id": "528817151",
"fbid": "17841401474538262",
"scrapedAt": "2026-10-12T00:55:01Z"
}

Pricing

Pay per result: you pay for each profile delivered, never for usernames that don't exist or that Instagram hides (age-restricted accounts), and never twice for the same profile.

PlanPer 1,000 profiles (bio, links, counts, engagement, latest posts and reels with views included)
Free$1.15
Starter$0.99
Scale$0.89
Business$0.69

Set a maximum cost on the run and the Actor stops at or before it. Proxies are included: Apify's datacenter proxy reads everything; a profile no datacenter source names (rare) is looked up once on Apify's residential proxy, at no extra cost to you.

Good to know

  • Logged out only: the Actor never logs in, so it returns what Instagram shows visitors who aren't logged in. Two things need a login and are not in the rows: share counts, and the Contact button's own email and phone. Emails written in the bio are in contactEmail.
  • Private accounts come with their name, bio, follower and following counts (Instagram shows no posts or reels for them).
  • Not found: unknown or renamed usernames and age-restricted accounts (alcohol brands, for example) are listed in the run summary and not charged; the rest of the run continues.
  • Picture links: Instagram signs picture and video links; they stop working after a few days, so download what you need.
  • Speed: rows stream into the dataset as each profile is read. In our runs on Apify (2026-10-12, default 256 MB) the prefilled 5 profiles took 5.8 s and 80 profiles 39-54 s.

Feedback

Found a bug or a missing field? Open an issue in the Issues tab. If the Actor saves you time, a short review on its Store page helps others find it.