Instagram Super Scraper - Profiles, Posts, Reels and Ads
Pricing
from $0.80 / 1,000 post or reels
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
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
| Field | Type | Default | What it does |
|---|---|---|---|
searchType | select | profile | Profile, keyword, URL, location or trending |
search | list | ["glossier"] | Usernames, keywords, Instagram URLs or place IDs |
maxPostsPerProfile | integer | 24 | Posts per profile, newest first, up to 1000 |
maxReelsPerProfile | integer | 0 | Reels from the Reels tab per profile, up to 1000 |
includeAds | boolean | true | Add the profile's Instagram ads and advertiser summary |
maxAdsPerProfile | integer | 20 | Ad rows per profile; 0 keeps only the summary |
adsCountry | string | US | Country whose Ad Library to read |
activeAdsOnly | boolean | true | Only ads running now |
includeComments | boolean | false | Attach comments to posts (12 newest per profile) |
maxComments | integer | 20 | Comments per post |
mode | select | both | Keyword input: keywords, reels, or both |
maxKeywords | integer | 25 | Keyword input: keyword pages to fetch |
expandRelated | integer | 0 | Keyword input: depth of related keywords to follow |
maxReels | integer | 50 | Keyword input: reel rows from keyword pages |
includeTrending | boolean | false | Also 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 Actor | Typical Instagram scraper | Typical Ad Library scraper | |
|---|---|---|---|
| Post history | Up to 1000 per profile | Often the latest 12 to 50 | None |
| Reels tab with play counts | Yes | Separate actor | None |
| Instagram ads per profile | Yes, joined on the Instagram handle | None | Yes, matched on page name |
| Related profiles, link-in-bio URLs | Yes | Sometimes | None |
| Keyword search volume | Yes | None | None |
| Full comment threads | 12 to 15 per post, like the public page | Varies | None |
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_accountnote inerrors. - 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_foundmeans 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.