All guides

How to scrape Instagram Profile

Instagram public profiles and latest posts without login: exact followers, following, posts, bio, all bio links, emails in bio, verified and private flags, plus each recent post's caption, likes, comments, date and media URLs. Engagement rate per profile.

Open Instagram Profile Scraper on Apify

Instagram profile scraper with no login: exact followers, following and post count, bio, every link in bio, emails written in the bio, business category, related profiles and the latest 12 posts, with average likes, median likes and an engagement rate on each profile row.

This Actor vs apify/instagram-profile-scraper: that one is the most-used, by Apify itself, and returns profile info, join date, related profiles and latest posts. Choose this one for bio emails, every link in bio and an engagement rate on each row for vetting influencers, plus a monitor mode that returns only new posts on scheduled runs.

What it outputs

Profile rows (resultsType: details):

Field Meaning
username, fullName, id, url Handle, display name, Instagram user ID, profile URL
followersCount, followsCount, postsCount Followers (exact), following, total posts
countsExact True when followers and posts came from the exact embed counts
biography, bioLinks, externalUrl Bio text, all links in bio [{title, url}], first link
emailsInBio, hashtagsInBio, mentionsInBio Pulled out of the bio text
verified, isPrivate, hasPublicStory, threadsBadge Account flags
profilePicUrl, profilePicUrlHD Profile picture URL, and the 320 px HD version
businessCategoryName, categoryName Business category (for example Government Agencies, Publishers)
isBusinessAccount, isProfessionalAccount Business and professional (creator or business) flags
businessEmail, businessPhoneNumber, businessAddress, businessContactMethod Public business contact details, when the account shows them
fbid, igtvVideoCount, joinedRecently, highlightReelCount, hasClips, pronouns Facebook-side ID, long-video count, new-account flag, story highlights, reels flag, pronouns
relatedProfiles Accounts Instagram suggests as similar [{id, username, full_name, is_private, is_verified, profile_pic_url}]
businessDetails complete, or instagram-error when Instagram's own server fails the business lookup for that account (see Limits)
externalUrls, externalUrlShimmed Every bio link with its type, and Instagram's tracked redirect link
avgLikes, medianLikes, avgComments, engagementRatePct Over the latest posts; engagement = (avg likes + avg comments) / followers
latestPosts Latest posts (fields below)
scrapedAt, inputUrl Snapshot time and the input it came from

Post fields (nested in latestPosts, or one row each with resultsType: posts): shortCode, url, type (Image, Video, Sidecar), caption, hashtags, mentions, likesCount, commentsCount, timestamp, isVideo, displayUrl, images, childCount, dimensions, isPinned, isPaidPartnership, locationName, ownerUsername, ownerId, videoUrl and productType (feed, clips) for profile posts, and with owner data on: ownerFullName, ownerFollowersCount, ownerVerified, ownerUrl.

Example input

{
  "usernames": ["natgeo", "nasa"],
  "resultsType": "details",
  "resultsLimit": 12
}

FAQ

Do I need an Instagram account or cookies?

No. Only public, logged-out data is read, business fields included. There is no login or cookie input at all, so your own account is never involved.

How many posts per profile?

Up to 12, Instagram's logged-out limit. Set resultsLimit to 0 for profile data only.

Can I get emails?

If the account wrote an email in its bio, it is in emailsInBio. Links in bio are in bioLinks. Business accounts that show a public email, phone or address have them in businessEmail, businessPhoneNumber and businessAddress. Nothing hidden is accessed.

What is engagement rate?

(average likes + average comments) / followers, in percent, over the latest posts.

How do I track competitors?

Turn on monitor mode, give the list a monitorStoreName, and schedule the actor daily. You get only new posts.

Why did a profile return no row?

It does not exist, was renamed, or stayed blocked after retries. Check the log; those are not charged.

Where do I run it?

On Apify: https://apify.com/transparent_meteorite/instagram-public-profile-scraper. Check the Pricing tab there for current prices.

Try Instagram Profile Scraper on Apify