We tested seven web scraping APIs on 1,500 Instagram profiles, posts and reels, 9,500 requests in total, measuring success rate, completion time and the number of parsed metadata fields for each.
Instagram scraping benchmark
See our benchmark methodology for more detail on testing process.
- ✓ = supported, returns HTML
- ✅= supported, returns structured data
- ✕ = not supported
Instagram scraper APIs pricing
Data fields you can scrape from Instagram
Bright Data, Apify and Nimble returned JSON for all three Instagram page types, and SerpApi for profiles; Zyte, Oxylabs and Decodo returned HTML. All JSON providers share the basics, such as username, full name, bio, follower and post counts for profiles, and caption, likes, comments, hashtags, tagged users, location and images for posts and reels. The tables list only what one provider returned and the others did not, matched by meaning rather than by field name.
Instagram profiles:
Instagram posts:
Instagram reels:
Features of the top Instagram scrapers
Bright Data Bright Data offers eight scraper APIs for Instagram, covering four content types:
- Posts: collect by URL, or collect a profile’s posts from its URL.
- Reels: collect by URL, discover from a profile or search URL, or collect all reels of a profile.
- Comments: collect by URL.Results arrive as JSON, NDJSON or CSV through the API, a webhook or cloud storage, and only successful records are billed.
- Profiles: collect by URL or by username.
Bright Data also provides four ready-made Instagram datasets, with more than 1.1 billion records in total:
- Profiles: account, followers, post count, verification status, external URL and biography.-
- Posts: URL, author, description, hashtags, comment count, date posted, likes and photos.
- Reels: the same post fields plus view counts.
- Comments: commenter, comment date, comment text, likes and replies.
The datasets can be bought once or refreshed monthly, quarterly or every six months, with a $250 minimum order.
We used the profiles, posts and reels scrapers, each collecting by URL. Bright Data succeeded on every post and reel and on 99.0% of profiles; the 5 failed profiles were missing required fields. It returned the most fields on profiles (26.7) and posts (33.3).
Oxylabs handled Instagram through the universal source of its Web API in Realtime mode, with JavaScript rendering, so every response was a rendered HTML page. It succeeded on every profile and reel, and on 95.2% of posts, where 24 requests came back as a blocked page. Posts were also its slowest page type at 44.9 seconds on average, against about 16 seconds for profiles and reels.
Decodo got every Instagram URL through the generic endpoint of its Web Scraping API, with headless rendering and premium proxies, and returned the page HTML. It succeeded on every reel and on 95.4% of posts, but on 92.0% of profiles. Posts averaged 46.2 seconds, three times its 15.3 seconds for profiles and reels.
SerpApi’s Instagram Profile API takes a username and returns the profile as JSON. It succeeded on all 500 profiles at 3.3 seconds per request, the fastest of any provider, with 15.5 fields per profile, including whether the account has reels or a Threads profile. SerpApi has no Instagram post or reel API.
We used two actors that Apify maintains: Instagram Profile Scraper for profiles and Instagram Scraper for posts and reels. Apify succeeded on every post and on 99.2% of profiles; four profiles returned the error “Restricted profile”. Reels were its weak spot at 95.8%, where 20 reels returned a comment count or video duration that failed the value check. Apify returned 35.2 fields per reel, the most on that page type, including the song, the artist and the play count.
Nimble returned Instagram data as JSON from two Extract Templates: instagram_profile_by_account for profiles and instagram_post for posts and reels. Its field names largely match Bright Data’s. Nimble was the fastest provider on posts (4.2 seconds) and reels (4.6 seconds) and succeeded on 98.0% and 98.4% of them. Profiles were weaker at 94.8%, because 25 of them reported a following count that failed the value check. Extract Templates cost $3.00 per 1,000 runs on pay-as-you-go.
Zyte API rendered each Instagram URL in a headless browser and sent back the HTML, which we parsed with CSS selectors. Only one of its 1,500 Instagram requests failed, a reel whose video duration failed the value check, for 99.9% overall. Zyte averaged 9.9 seconds on posts, 9.3 on reels and 14.5 on profiles.
Instagram scraping benchmark methodology
Our Instagram benchmark data comes from the social media scraping benchmark, in which we ran 7 scraping providers against 6,500 pages on Instagram, Facebook, TikTok, X and LinkedIn. The Instagram part covers 1,500 URLs: 500 profiles, 500 posts and 500 reels. Six providers handled all three page types. SerpApi, whose Instagram API returns profiles only, was tested on the 500 profiles.
For details on how we selected the URLs, which endpoint we called at each provider and which checks a response had to pass, see the social media scraping benchmark.
FAQs
Cite this research
Pick the format that matches where you're publishing. Pasting the link version into your CMS preserves the backlink.
@misc{sipi2026,
author = {Şipi, Nazlı},
title = {{Best Instagram Scrapers to Scrape Instagram Data}},
year = {2026},
month = jul,
howpublished = {\url{https://aimultiple.com/instagram-scraping}},
note = {AIMultiple. Retrieved July 1, 2026}
}Results and timestamps of 79 data points. Download the summary data shown in this article's charts and tables as a ZIP file containing 7 CSV files.
Want the granular data behind it? Join Premium
Changelog
8 updatesAdded a section, Stability of Instagram scrapers success rates over time.
Expanded the article with Python code examples for scraping Instagram profiles, posts, and comments.
Removed the Instagram scraper API performance overview section.
Added Instagram scrapers used in benchmark to the Instagram scraper APIs benchmark results section.
Updated the benchmark methodology in the introduction.
Comments 1
Share Your Thoughts
Your email address will not be published. All fields are required. Comments are left in their original language.
Could you help me in collecting data from Instagram
Hello, Alyaa, Doesn't the article help you with that?