Instagram Profile Scraper - Followers, Bio, Posts & Reels avatar

Instagram Profile Scraper - Followers, Bio, Posts & Reels

Pricing

from $0.40 / 1,000 profiles

Go to Apify Store
Instagram Profile Scraper - Followers, Bio, Posts & Reels

Instagram Profile Scraper - Followers, Bio, Posts & Reels

Instagram profile scraper for any username or profile URL: followers, following, posts count, bio, links, verified badge, account type, profile picture, plus each account's latest posts and reels with likes, comments, plays and hashtags. No login or cookies. API, JSON, CSV. $0.50 per 1,000 profiles.

Pricing

from $0.40 / 1,000 profiles

Rating

0.0

(0)

Developer

Social Scrapers

Social Scrapers

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

15 hours ago

Last modified

Features

Limited permissions

Share

Instagram Profile Scraper gets public Instagram profile data for any list of usernames or profile URLs, with no Instagram account, login or cookies. For every profile you get the followers, following and posts counts, bio, bio links, verified badge, account type and profile picture, plus the profile's latest posts and reels with their likes, comments, plays, captions and hashtags, as JSON, CSV or Excel. It costs $0.50 per 1,000 profiles, plus $0.05 per 1,000 posts included.

What does Instagram Profile Scraper do?

Instagram Profile Scraper reads what Instagram shows a visitor who opens a profile without logging in. You can:

  • 👤 Scrape Instagram profiles in bulk: usernames (nasa, @nasa) or profile URLs, as many as you like; messy lists (NASA — @nasa) are read too.
  • 📊 Get audience data: followers, following, exact posts count, story highlights, verified badge and account type (business, creator or personal).
  • 🔗 Collect bios and links: bio text, every link in the bio with its title, full name and profile picture in two sizes.
  • 🖼️ Include the latest posts and reels: as many as you want per profile, with no upper limit, pinned posts first as on the profile, each with likes, comments, reel plays, caption, hashtags, mentions, date and media URLs.
  • 🗓️ Filter posts by date: keep only posts newer than a date or an age such as 30 days.
  • 💸 Pay only for results: private profiles and usernames that don't exist cost nothing.

Everything the Apify platform gives you comes with it: the Apify API, scheduled runs, webhooks, integrations with Make, Zapier, n8n and Google Sheets, and datasets you can download in any format.

What data can you extract from Instagram profiles?

Profile fields

FieldDescription
inputUrlThe username or URL as given in the input.
idNumeric account id. Stays the same when the username changes.
usernameUsername, without the @.
urlProfile URL.
fullNameDisplay name.
biographyBio text.
externalUrlThe first link in the bio.
externalUrlsEvery link in the bio, with its title.
followersCountFollowers.
followsCountAccounts the profile follows.
postsCountPosts on the profile.
highlightReelCountStory highlights on the profile.
hasReelstrue when the profile has posted reels.
verifiedtrue when the profile shows the verified badge.
isBusinessAccounttrue for a business account.
accountTypebusiness, creator or personal.
profilePicUrlProfile picture, 150 × 150.
profilePicUrlHDProfile picture, full size.
fbidThe account's Meta-wide id.
pronounsPronouns shown on the profile.
latestPostsThe most recent posts and reels, pinned posts first.
scrapedAtWhen the profile was read, ISO 8601.

Post fields (in latestPosts)

FieldDescription
idNumeric media id.
typeImage, Video (reels included) or Sidecar (a carousel).
productTypefeed, clips (a reel), carousel_container or igtv.
shortCodeThe code in the post URL.
urlPost URL.
captionCaption text.
hashtagsHashtags in the caption, without #.
mentionsAccounts mentioned in the caption, without @.
likesCountLikes.
commentsCountComments.
videoPlayCountPlays of a reel or video.
videoDurationVideo length in seconds.
timestampWhen it was posted, ISO 8601 in UTC.
displayUrlMain image (a video's cover, a carousel's first slide).
imagesImage URLs of every carousel slide.
videoUrlVideo file URL.
dimensionsHeight, dimensionsWidthSize in pixels.
altInstagram's automatic image description.
childPostsThe slides of a carousel, each with its own image or video URL, size and tags.
ownerId, ownerUsername, ownerFullNameThe account that posted it.
taggedUsersAccounts tagged in the post.
coauthorProducersCollaborators shown as co-authors.
isPaidPartnershiptrue for a paid partnership.
isCommentsDisabledtrue when comments are turned off.
isPinnedtrue when the post is pinned to the top of the profile.

Every field is always present. A field is null (or an empty list) when the profile or post leaves it empty or Instagram does not show it. The Posts view of the dataset shows one row per post.

How to scrape Instagram profiles

  1. Open Instagram Profile Scraper and click Try for free.
  2. Add usernames or profile URLs to Usernames or profile URLs, one per line. Share links from the app (instagram.com/share/…) and post or reel links work too: the scraper reads the profile they belong to.
  3. Choose how many Recent posts per profile to include, or 0 for profile details only.
  4. Optionally set Only posts newer than to keep recent posts only.
  5. Click Start. Profiles appear in the dataset as they are read.
  6. Download the results as JSON, CSV, Excel or HTML, or read them with the Apify API.

How much does it cost to scrape Instagram profiles?

You pay per profile saved, $0.50 per 1,000 profiles, plus $0.05 per 1,000 posts included in latestPosts. Platform usage and proxies are included. On Apify's Silver plan prices are 10% lower, and on Gold 20% lower.

  • 1,000 profiles with their 12 latest posts (the default) → $0.50 + $0.60 = $1.10
  • 1,000 profiles, details only (Recent posts per profile set to 0) → $0.50
  • 100 profiles with their 500 latest posts each → $0.05 + $2.50 = $2.55

Private profiles and usernames that don't exist are free. To cap the cost of a run, set Maximum cost per run in the run options: the scraper saves profiles until the next one would go over it, then stops cleanly. Apify's free plan includes monthly platform credit, enough to try the scraper on thousands of profiles.

Input example

{
"usernames": ["nasa", "@natgeo", "https://www.instagram.com/nike/"],
"maxPostsPerProfile": 12,
"onlyPostsNewerThan": "30 days"
}
FieldTypeDescription
usernamesarray of stringsUsernames or profile URLs. Accepts nasa, @nasa and https://www.instagram.com/nasa/, and picks the handle out of messy entries such as NASA — @nasa, @ nasa, nasa (NASA) or links with ?igsh=…. An entry with no username in it is skipped with a warning. Duplicates are read once.
maxPostsPerProfileintegerRecent posts to include per profile. No upper limit; 0 for profile details only. Default: 12.
onlyPostsNewerThanstringLeave out older posts: a date (2026-01-31, 2026/1/31, 31/01/2026, Jan 31 2026), a date-time (2026-01-31T18:00:00Z) or an age (7 days, 2w, 3 months, yesterday). Optional.
proxyConfigurationobjectThe scraper picks Apify Proxy's tier itself: datacenter first, residential only when Instagram refuses a request. Your own proxy URLs are used as given.

Output example

One dataset item per profile, with its posts in latestPosts (shortened to one post; image and video URLs abbreviated):

{
"inputUrl": "nasa",
"id": "528817151",
"username": "nasa",
"url": "https://www.instagram.com/nasa/",
"fullName": "NASA",
"biography": "Making the seemingly impossible, possible. ✨",
"externalUrl": "https://www.nasa.gov",
"externalUrls": [
{ "title": "NASA.gov Homepage", "url": "https://www.nasa.gov" },
{ "title": "Become a NASA Astronaut", "url": "https://www.nasa.gov/news-release/nasa-seeks-next-generation-of-explorers-to-join-astronaut-corps/" }
],
"followersCount": 104394096,
"followsCount": 90,
"postsCount": 5000,
"highlightReelCount": 6,
"hasReels": true,
"verified": true,
"isBusinessAccount": true,
"accountType": "business",
"profilePicUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/29090066_...s150x150...n.jpg",
"profilePicUrlHD": "https://scontent.cdninstagram.com/v/t51.2885-19/29090066_...n.jpg",
"fbid": "17841401474538262",
"pronouns": [],
"latestPosts": [
{
"id": "4025327901360909266",
"type": "Video",
"productType": "clips",
"shortCode": "Dfc1mYxFevS",
"url": "https://www.instagram.com/p/Dfc1mYxFevS/",
"caption": "Apply to become an astronaut! ... #NASA #Astronaut #JobSearch",
"hashtags": ["NASA", "Astronaut", "JobSearch"],
"mentions": [],
"likesCount": 43443,
"commentsCount": 542,
"videoPlayCount": 1673629,
"videoDuration": 63.467,
"timestamp": "2026-11-07T18:35:41.000Z",
"displayUrl": "https://instagram.fna.fbcdn.net/v/t51.82787-15/892262107_...n.jpg",
"images": [],
"videoUrl": "https://instagram.fna.fbcdn.net/o1/v/t2/f2/m86/AQOaFZ...mp4",
"dimensionsHeight": 1920,
"dimensionsWidth": 1080,
"alt": "Video by NASA on November 07, 2026. May be an image of poster and text.",
"childPosts": [],
"ownerId": "528817151",
"ownerUsername": "nasa",
"ownerFullName": "NASA",
"taggedUsers": [],
"coauthorProducers": [],
"isPaidPartnership": false,
"isCommentsDisabled": false,
"isPinned": true
}
],
"scrapedAt": "2026-11-08T02:19:19.152Z"
}

Use cases

  • Influencer research: compare reach, posting frequency and engagement across a list of creators.
  • Brand and competitor monitoring: track follower growth and the performance of recent posts and reels.
  • Lead enrichment: add bios, links and audience size to a list of Instagram usernames.
  • Content analysis: collect recent captions, hashtags and mentions of a set of accounts.
  • Academic and market research: build datasets of public profile and post attributes.

Use it via API, Python, JavaScript and integrations

Run Instagram Profile Scraper from your own code with the Apify API or the Apify clients:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("socialscrapers/instagram-profile-scraper").call(
run_input={"usernames": ["nasa", "natgeo"], "maxPostsPerProfile": 12}
)
for profile in client.dataset(run["defaultDatasetId"]).iterate_items():
print(profile["username"], profile["followersCount"], len(profile["latestPosts"]))
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('socialscrapers/instagram-profile-scraper').call({ usernames: ['nasa'], maxPostsPerProfile: 12 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

You can also schedule runs (for example every morning to track follower counts), get a webhook when a run finishes, send results to Google Sheets, Slack or a database with Apify integrations, connect it to Make, Zapier or n8n, or let AI agents run it through the Apify MCP server.

Limits

  • Public profiles only. Instagram Profile Scraper never logs in, so it sees what a logged-out visitor sees. Private profiles are skipped and cost nothing.
  • Shown to logged-in users only, so not included: the business category and contact details, follower and following lists, and stories. The account type (business, creator or personal) is included.
  • Posts per profile: no upper limit. A profile's posts travel inside its one dataset item, which Apify caps at about 9 MB, so a single profile holds about 2,000 to 3,000 posts (fewer when they are carousels). The run log says when a profile reached it.
  • Comments and post locations are not part of the profile output: use Instagram Post Scraper for the comments and location of specific posts.
  • Age-restricted profiles (for example, some alcohol brands) are not shown to logged-out visitors and are reported as not found.
  • Share links and post links. A share link from the app (https://www.instagram.com/share/…) is followed to the post, reel or profile it opens, and a post or reel link stands for its owner's profile. Following a link is never charged.
  • A run with 0 results still succeeds when your input was fine. When every profile is private, does not exist or is hidden from logged-out visitors, the run ends as Succeeded with a status message naming each entry and why, and nothing is charged. A run fails only when no entry holds a username or link at all, or when Instagram refuses every one of 3 or more profiles.

FAQ

Is it legal to scrape Instagram profiles? Instagram Profile Scraper collects only public data that anyone can see without logging in. You are responsible for how you use it: personal data is protected by laws such as the GDPR, so have a legitimate reason to collect it and follow Instagram's terms and the laws that apply to you.

Do I need an Instagram account or cookies? No. You only need a list of usernames or profile URLs. The scraper never logs in, so no account of yours is ever at risk.

How many posts can I get per profile? As many as you ask for: there is no upper limit. Pinned posts come first, as on the profile, and are marked with isPinned. A single profile item holds up to about 2,000 to 3,000 posts (Apify's 9 MB item size).

Why did I get fewer posts than I asked for? The profile has fewer posts, the date filter left the rest out, the profile reached the item size, or the run reached its maximum cost. The run log says which, for each profile.

Can I get only new posts? Yes. Set Only posts newer than to a date or an age such as 7 days, and schedule the run to repeat.

What happens with private profiles and usernames that don't exist? They are skipped, logged and not charged. The SUMMARY record in the run's key-value store lists them under private and notFound. A run in which every profile was private or missing still ends as Succeeded, with a status message that names each one.

Can I paste share links or post links? Yes. Links such as https://www.instagram.com/share/BAKjZPdWBo are followed to what they open, and a post or reel link (/p/…, /reel/…) is read as its owner's profile. Following them costs nothing.

Can I get one row per post? Yes: open the Posts view of the dataset, or export with the dataset's unwind=latestPosts option.

Other scrapers by Social Scrapers

ScraperWhat it does
Instagram Post ScraperPosts and reels by URL, with comments
Facebook Groups ScraperPosts from public Facebook groups
Facebook Profile ScraperPublic details of Facebook profiles and Pages
Facebook Profile Posts ScraperRecent posts of Facebook profiles and Pages
Facebook Ads Library ScraperAds from Meta's Ad Library
Threads ScraperThreads profiles, posts, replies and search
X (Twitter) Profile ScraperX profiles: bio, followers and counts
YouTube ScraperYouTube videos, channels, search and comments
YouTube Transcript ScraperTranscripts of YouTube videos
Reddit ScraperReddit posts, comments, users and search
Quora ScraperQuora questions, answers and profiles
LinkedIn Jobs ScraperLinkedIn job listings