Instagram Profile Scraper ๐Ÿ“ธ Posts, Followers & Engagement avatar

Instagram Profile Scraper ๐Ÿ“ธ Posts, Followers & Engagement

Pricing

from $1.30 / 1,000 results

Go to Apify Store
Instagram Profile Scraper ๐Ÿ“ธ Posts, Followers & Engagement

Instagram Profile Scraper ๐Ÿ“ธ Posts, Followers & Engagement

Scrape any Instagram account plus their posts. Followers, bio, category, verification, and per-post likes, comments, plays, hashtags and media. Paste usernames or profile URLs. Export to JSON, CSV or Excel. No login, no cookies, no API key.

Pricing

from $1.30 / 1,000 results

Rating

5.0

(1)

Developer

GatherWorks

GatherWorks

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Give it an Instagram handle and get the account and their posts โ€” followers, bio, bio link, category and verification, then per-post likes, comments, plays, hashtags and media, on a clean row each.

No account, no cookies, no API key. Paste handles and run.


๐Ÿ” What is the Instagram Profile Scraper?

Give it handles โ€” instagram, @instagram or a full profile URL, all normalised for you. For each account it returns:

  • ๐Ÿ‘ค the account โ€” followers, following, post count, bio, category, verification
  • ๐Ÿ”— the link in the bio
  • ๐Ÿ“ธ their posts, with likes, comments, plays and every image URL, Reels and video posts marked with the video URL where there is one, plus hashtags lifted from each caption and any tagged location

That is a normal run. If you want the accounts on their own, switch ๐Ÿ“ธ Include their posts off.

โšก What can it do?

  • ๐Ÿ‘ฅ Take many accounts at once and return one dataset covering all of them.
  • ๐Ÿ“ธ Return their posts as part of the same run, one row per post, keyed back to the handle that published it.
  • ๐ŸŽฌ Keep only Reels and videos, if that is what you are analysing.
  • ๐Ÿ”ข Filter by likes and ignore the long tail.
  • ๐Ÿ“… Filter by date. Keep only posts inside a window you set.
  • ๐Ÿšง Cap how far a filter searches, so a narrow filter stops rather than running away with your budget.
  • ๐Ÿ”Ž Filter before you pay. A post that does not match is never stored and never charged for.
  • ๐Ÿ“„ Export anywhere. JSON, CSV, Excel โ€” the dataset is yours.

๐ŸŽฏ A private account is reported, not retried

An account set to private has no publicly visible posts. Rather than returning an empty list that looks like a failure, the account row comes back with isPrivate: true and the run says so plainly โ€” and you are not charged for posts that were never available.

โšก Speed and accuracy

Speed. Measured on a real run: 1 account and 8 posts in 8 seconds. Each account is one lookup, and their posts come back twelve at a time.

Accuracy. Handles are normalised, so instagram, @instagram and a full profile URL resolve to the same account and are collected once. Counts are numbers, not display text. Timestamps are ISO 8601. Post links are canonical instagram.com/p/โ€ฆ permalinks built from the post's own short code. Carousels return every image URL, not just the first. A handle that does not resolve is reported and skipped rather than returned empty.

๐Ÿ“Š What data does it return?

Account rows (rowType: "account") โ€” one per handle:

FieldNotes
๐Ÿท๏ธ handle, fullNameHandle and display name
๐Ÿ”— profileUrlDirect link to the profile
๐Ÿ“ bioTextThe bio text
๐Ÿ”ข followersCount, followsCount, postsCountAudience and output, as numbers
โš–๏ธ followerRatioFollowers divided by following
โœ… isVerified, ๐Ÿšฉ isPrivate, ๐Ÿข isBusinessAccount state
๐Ÿท๏ธ categoryNameThe business category, where the account sets one
๐Ÿ”— externalUrlThe link in the bio

Post rows (rowType: "post") โ€” one per post kept, following the account they belong to:

FieldNotes
๐Ÿ“ postCaption, captionLengthThe caption and its length
๐Ÿ”— postUrl, postShortCodeCanonical permalink and its short code
๐Ÿ“Š likesCount, commentsCount, playsCountEngagement, as numbers
๐Ÿ“ˆ engagementTotal, engagementPerPlayLikes plus comments, and that as a share of plays
๐Ÿ–ผ๏ธ mediaKind, imageUrls, hasVideo, videoUrlMedia type and files
๐Ÿท๏ธ hashtagsLifted from the caption
๐Ÿ“ locationNameTagged location, where there is one
๐Ÿšฉ isSponsoredWhether it is a declared paid partnership
๐Ÿ“… publishedAtWhen it was posted, ISO 8601

๐Ÿšซ What it does not return

  • Contact details. No email address and no phone number is returned on any row, for any account โ€” business, creator or personal, and regardless of what the account displays in the Instagram app. If you need contact data, this is not the Actor for it.
  • Posts from private accounts. They are not publicly visible; the account row says so.
  • Stories and Highlights. They expire and are not part of a profile feed.
  • Follower lists. Audience size is a number; the individual followers are not returned.
  • Analytics only the account owner can see โ€” reach, impressions, saves, audience demographics.

๐Ÿ’ฐ How much does it cost?

You pay per result โ€” for the rows the run actually produces, never for runtime, and never on a subscription.

Standard rate: ๐Ÿ’ต $0.0022 per row, and a row is a row: an account row and a post row cost exactly the same.

RunRowsCost
๐ŸŸฉ 10 accounts + 30 posts each310๐Ÿ’ต $0.68
๐ŸŸจ 100 accounts, posts switched off100๐Ÿ’ต $0.22
๐ŸŸง 1 account + 1,000 posts1,001๐Ÿ’ต $2.20

A handle that does not resolve is free. So is a post your filters remove. A month you do not run it costs nothing at all โ€” there is no plan to keep alive.

What you get for that

Included here
๐Ÿ“ธ Posts as part of a normal runโœ… same rate as the account row
๐Ÿ–ผ๏ธ Every image in a carousel, not just the firstโœ…
๐Ÿ“ˆ Engagement per play, computedโœ…
๐Ÿท๏ธ Hashtags as an arrayโœ… free
๐Ÿ“ Tagged location and paid-partnership flagโœ… free
๐Ÿ”Ž Video-only, likes and date filtersโœ… free
๐Ÿ’ณ Minimum spendnone

๐Ÿš€ How do I use it?

  1. Add one or more usernames or profile URLs.
  2. Run as-is. You get each account plus their posts, every row at the same rate.
  3. Set maximum posts per account to control how much each account returns.
  4. Optionally filter the posts to videos, a like count, or a date window.
  5. Only want the profiles? Switch ๐Ÿ“ธ Include their posts off.
  6. Run, then export the dataset as JSON, CSV or Excel.

โš™๏ธ Input

FieldDefaultNotes
๐Ÿ‘ค usernamesโ€”Handles, @handles or profile URLs
๐Ÿ“ธ includePoststrueCollect their posts โ€” same rate as the account row
๐Ÿ”ข maxPostsPerAccount50How many posts to return per account
๐ŸŽฌ videosOnlyfalseKeep only Reels and video posts
๐Ÿ”ข minLikesnoneKeep only posts with at least this many likes
๐Ÿ“… postedAfter, postedBeforenoneKeep only posts inside this window
๐Ÿšง maxScanned1000How far a filter may search before stopping
{
"usernames": ["instagram", "@natgeo"],
"includePosts": true,
"maxPostsPerAccount": 50,
"videosOnly": false
}

๐Ÿ“„ Output example

A default run returns the account row first, captured from a live run:

{
"rowType": "account",
"handle": "nasa",
"fullName": "NASA",
"profileUrl": "https://www.instagram.com/nasa/",
"bioText": "Making the seemingly impossible, possible. \u2728",
"externalUrl": "https://www.nasa.gov/",
"followersCount": 104444393,
"followsCount": 91,
"postsCount": 4899,
"categoryName": "Government Agencies",
"isBusiness": true,
"isVerified": true,
"isPrivate": false
}

then their posts, one row each:

{
"rowType": "post",
"accountHandle": "instagram",
"postId": "3974396910131444700",
"postShortCode": "Dcn5O64y3xi",
"postUrl": "https://www.instagram.com/p/Dcn5O64y3xi/",
"postCaption": "5, 6, 7, ATE ๐Ÿ”ฅ",
"mediaKind": "video",
"hasVideo": true
}

โ“ Frequently asked questions

Do I need an Instagram account? No. No account, no cookies, no API key.

What forms of username work? instagram, @instagram, and https://www.instagram.com/instagram/ all resolve to the same account.

Does it return posts? Yes โ€” posts come with a normal run, at the same rate as the account row. Switch ๐Ÿ“ธ Include their posts off if you only want the profiles.

What happens with a private account? You get the account row with isPrivate: true, and no posts โ€” because none are public. You are not charged for posts that were never available.

Does it return email addresses or phone numbers? No. No contact details are returned on any row, for any account, business or otherwise.

Does it return Stories? No. Stories expire and are not part of a profile feed.

How do I keep a run small? Lower maximum posts per account, or switch the posts off entirely and pay for one row per handle.

๐Ÿท๏ธ Pricing

Pay per result โ€” you are charged for output, not for platform time.

EventPriceCovers
๐Ÿ“Š result โ€” primary๐Ÿ’ต $0.0022Any row returned, account or post, at one price
โ–ถ๏ธ apify-actor-start๐Ÿ’ต $0.00005Starting one run, charged once per GB of memory
๐Ÿ”— Bio link, follower and engagement countsโœ… freeOn every account row
๐Ÿท๏ธ Hashtags, location and paid-partnership flagโœ… freeOn every post row
๐Ÿ”’ Private accountsโœ… freePosts never fetched, never charged
โŒ Handles that do not resolveโœ… freeReported, never charged
๐Ÿ”Ž Posts your filters removeโœ… freeNever stored, never charged

One price, one event. Whatever the run returns, each row costs the same.

๐Ÿ… Rates by tier

The prices above are the standard rate. Higher Apify plans are billed at the discounted tiers below, automatically:

EventFREEBRONZESILVERGOLD
๐Ÿ“Š result๐Ÿ’ต $0.0022๐Ÿ’ต $0.0019๐Ÿ’ต $0.0016๐Ÿ’ต $0.0013
โ–ถ๏ธ apify-actor-start๐Ÿ’ต $0.00005๐Ÿ’ต $0.00005๐Ÿ’ต $0.00005๐Ÿ’ต $0.00005

๐Ÿ›‘ You are never billed past your limit

Set a maximum charge on the run and the Actor stops when it reaches it, with every account collected up to that point complete and saved. Filtered-out posts are never stored and never billed.