Instagram Super Scraper - Profiles, Posts, Reels and Ads avatar

Instagram Super Scraper - Profiles, Posts, Reels and Ads

Pricing

from $0.80 / 1,000 post or reels

Go to Apify Store
Instagram Super Scraper - Profiles, Posts, Reels and Ads

Instagram Super Scraper - Profiles, Posts, Reels and Ads

Scrape public Instagram profiles with their full post history, Reels tab and the Instagram ads they run, plus posts by URL, keyword search volume, trending topics and places. Exact likes, comments and views, collaborators, tagged accounts, audio and link-in-bio URLs. No login.

Pricing

from $0.80 / 1,000 post or reels

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Instagram Super Scraper: profiles, full post history, reels and ads

Scrape any public Instagram profile with its complete post history, its Reels tab and the Instagram ads it runs, in one run. The same Actor also reads posts and reels by URL, Instagram keyword search volume, trending topics and places.

What you get

  • Profiles: exact follower, following, post and reel counts, full biography, every link-in-bio URL, website, category, business and creator flags, verified status, email addresses written in the bio, and up to 49 profiles Instagram itself lists as related.
  • Full post history: every post back through the account's history, newest first, up to 1000 per profile. Exact likes and comments, views on every video, caption, hashtags, mentions, tagged accounts, collaborators, paid-partnership flag, place with coordinates, audio, carousel images and download URLs.
  • Reels tab: the profile's reels with play counts, duration and audio id, including reels it made together with other accounts.
  • Instagram ads, joined to the profile: the ads the account runs on Instagram in Meta's Ad Library, with creative text, landing URL, start date, and whether each ad ran on Instagram only or on other Meta placements too. The profile row gets the advertiser summary: total Instagram ads, Instagram-only ads and the newest ad's start date.
  • Paid next to organic: per profile, how many of the returned posts are paid partnerships, next to how many ads the account runs.
  • Posts and reels by URL, with optional comments.
  • Keyword search volume: reel counts per Instagram search term, related keywords, related topics and the top reels behind each term.
  • Trending topics and places with address, coordinates and post counts.

Why scrape Instagram profiles and ads together

Most Instagram scrapers stop at a profile's latest dozen posts, and most ad library tools know nothing about Instagram beyond a placement flag. Brands, agencies and analysts end up running two tools and matching the results by hand, usually on the brand name, which attaches the wrong page's ads as soon as a name is shared by a fan page or a regional account.

This Actor joins them on the one key that cannot be ambiguous: the advertiser page's own Instagram handle. An ad is attached to a profile only when the Ad Library page's Instagram handle is exactly that profile's username. A lookalike page is never used, and the profile row says so plainly when the account does not advertise.

Because the full post history is included, the organic side of the comparison is complete too: every post with exact engagement, rather than an estimate from the most recent few.

Input

FieldTypeDefaultWhat it does
searchTypeselectprofileProfile, keyword, URL, location or trending
searchlist["glossier"]Usernames, keywords, Instagram URLs or place IDs
maxPostsPerProfileinteger24Posts per profile, newest first, up to 1000
maxReelsPerProfileinteger0Reels from the Reels tab per profile, up to 1000
includeAdsbooleantrueAdd the profile's Instagram ads and advertiser summary
maxAdsPerProfileinteger20Ad rows per profile; 0 keeps only the summary
adsCountrystringUSCountry whose Ad Library to read
activeAdsOnlybooleantrueOnly ads running now
includeCommentsbooleanfalseAttach comments to posts (12 newest per profile)
maxCommentsinteger20Comments per post
modeselectbothKeyword input: keywords, reels, or both
maxKeywordsinteger25Keyword input: keyword pages to fetch
expandRelatedinteger0Keyword input: depth of related keywords to follow
maxReelsinteger50Keyword input: reel rows from keyword pages
includeTrendingbooleanfalseAlso return trending topics

Instagram links are recognised automatically whatever searchType says.

Output

Every row has a record_type: profile, reel (posts and reels), ad, keyword, location, trending_topic or category.

{
"record_type": "profile",
"username": "gymshark",
"followers": 8665730,
"posts_count": 7412,
"category": "Sportswear Store",
"bio_links": [{"title": "Shop", "url": "https://www.gymshark.com/"}],
"related_profiles": ["gymsharkwomen", "gymsharktrain"],
"ads_status": "ok",
"advertiser_page_name": "Gymshark",
"instagram_ads_total": 780,
"instagram_only_ads_returned": 6,
"newest_ad_started": "2026-08-13",
"posts_returned": 26,
"paid_partnership_posts": 0
}
{
"record_type": "reel",
"url": "https://www.instagram.com/p/DdrzbfFmw-p/",
"owner_username": "glossier",
"likes": 2149,
"comments_count": 33,
"views": null,
"posted_at": "2026-09-24T21:01:52Z",
"tagged_users": ["samaharris", "libraebakery"],
"coauthors": [],
"is_paid_partnership": false,
"engagement_rate": 0.0686
}
{
"record_type": "ad",
"ad_id": "1895443208225966",
"page_name": "Gymshark",
"ig_username": "gymshark",
"publisher_platform": ["FACEBOOK", "INSTAGRAM", "AUDIENCE_NETWORK", "MESSENGER", "THREADS"],
"is_instagram_only": false,
"start_date": "2026-07-13",
"link_url": "https://www.gymshark.com/collections/must-have"
}

The run's summary record counts rows per type; errors lists per-target problems such as a private account or a profile that does not exist.

Use cases

Competitor research for brands. Put your competitors' usernames in and get, for each, everything they posted this year with exact engagement, every reel with its view count, and every ad they run on Instagram right now. Seeing paid and organic side by side shows which products a competitor pushes with money and which it lets carry themselves.

Influencer vetting for agencies. Engagement rate on the full post history, not the last twelve posts, separates steady creators from one viral hit. Paid-partnership counts and collaborator lists show who a creator already works with, and bio emails and link-in-bio URLs give you the contact route.

Ad intelligence for performance marketers. The Instagram-only flag separates creative made for Instagram from campaigns that just include it. Start dates show how long an ad has survived, which is the closest public signal to which creative works.

Trend and keyword research for content teams. Keyword pages give reel volume and related terms for Instagram search, and trending topics show what Instagram itself is surfacing, so content can be planned around what people search for on Instagram rather than on Google.

How it compares

This ActorTypical Instagram scraperTypical Ad Library scraper
Post historyUp to 1000 per profileOften the latest 12 to 50None
Reels tab with play countsYesSeparate actorNone
Instagram ads per profileYes, joined on the Instagram handleNoneYes, matched on page name
Related profiles, link-in-bio URLsYesSometimesNone
Keyword search volumeYesNoneNone
Full comment threads12 to 15 per post, like the public pageVariesNone

What others have that this does not: follower lists, likers and stories, which Instagram only shows to logged-in users.

Pricing

Pay per event: one event per profile, per post or reel, per ad, and per keyword, place or trending row that reaches your dataset. See the pricing tab for the current rates. All pricing is pay-per-event, you only pay for results you receive. No actor-start fee, no per-compute-unit charges.

Limits and gotchas

  • Public data only. Private accounts return the profile row and no posts, with a private_account note in errors.
  • Comments are read for the 12 newest posts per profile, 12 to 15 per post, which is what the public post page shows.
  • Some profile details (bio links, category, related profiles) are occasionally unavailable for an account; the row then still carries counts, name and recent posts.
  • Ads are matched only on an exact Instagram handle. ads_status: no_advertiser_page_found means no Ad Library page claims that handle in the chosen country, not that the brand never advertises elsewhere.
  • Free Apify plans return up to 10 rows per run.
  • Deep crawls take time: 1000 posts for one profile is about 84 page reads.

FAQ

Can I scrape an Instagram profile's full post history without logging in? Yes. Set maxPostsPerProfile up to 1000 and the Actor pages back through the account's public posts, newest first.

How do I see which Instagram ads a brand is running? Leave includeAds on and put the brand's username in search. Ads come back as ad rows and the profile row gets the totals.

Does it scrape Instagram reels with view counts? Yes. Posts that are videos carry views, and maxReelsPerProfile adds the Reels tab with play counts and audio ids.

Can I get Instagram engagement rate for influencers? Every post row has engagement_rate (likes as a share of followers) and videos have like_to_view_rate.

Does it find emails on Instagram profiles? It returns email addresses written in the public biography in bio_emails, plus every link-in-bio URL. Business contact buttons are not shown to logged-out visitors.