Instagram Scraper API for Profiles, Reels, and Comments

An Instagram scraper API turns a public profile handle, post URL, or search query into structured JSON without requiring each account owner to authorise your app. It is useful when you need an Instagram profile scraper, Reel scraper, or comments scraper for influencer research, competitor monitoring, or a production data product.
This guide explains the available approaches and shows how to pull profiles, posts, Reels, comments, highlights, and transcripts with simple HTTP requests.
Why scraping Instagram is harder than ever
Instagram has spent years making automated data access difficult. If you have tried to build anything that pulls Instagram data, you have hit at least one of these walls.
The official API is restrictive
The Instagram Graph API requires you to create a Meta app, submit it for review, and get approval before accessing most endpoints. Even after approval, you need user-issued access tokens that expire and require refresh flows. The data you can access is limited to accounts that have explicitly authorized your app.
Official access is built around approved Meta use cases and connected accounts. If your product needs arbitrary public profiles for discovery or monitoring, the scope is usually a bigger constraint than the nominal API price.
Basic Display API is gone
Meta deprecated the Instagram Basic Display API in 2024. This was the simpler alternative that let you pull basic profile info and media without the full Graph API review process. It no longer exists, which leaves a gap for developers who need lightweight read access to public Instagram data.
Browser-based scraping is unreliable
Headless browser scrapers (Puppeteer, Playwright, Selenium) that navigate instagram.com and extract data from the DOM break every time Instagram ships a frontend update. Instagram also deploys aggressive bot detection, fingerprinting, and CAPTCHAs that make maintaining a browser scraper a full-time job.
IP bans, session invalidation, and rendering inconsistencies mean you spend more time fixing your scraper than actually using the data.
Login walls block public data
Instagram increasingly requires login to view content that used to be publicly accessible. Profile pages, post pages, and search results all redirect to a login screen for unauthenticated visitors. This breaks simple HTTP-based scraping approaches that worked years ago.
Your options for Instagram data
Here is an honest breakdown of what is available today.
Official Instagram Graph API
Pros: Sanctioned by Meta, stable endpoints, good documentation.
Cons: Requires app review, needs user authorisation tokens, is limited to approved use cases and connected accounts, and cannot read arbitrary public profiles.
Best for: Apps where users connect their own Instagram account and you display their data back to them.
Not suitable for: Competitive analysis, influencer discovery, monitoring accounts you do not own.
DIY scrapers
Pros: Free, full control over what you extract.
Cons: Break constantly, require ongoing maintenance, risk IP bans, need proxy infrastructure, cannot scale reliably. Instagram's anti-bot measures get more aggressive every quarter.
Best for: One-off research projects where you accept the data might be incomplete or stale.
Third-party Instagram scraper APIs
Pros: Someone else handles the scraping infrastructure, maintenance, and anti-detection. You get clean JSON from a standard REST API. No tokens, no app review, no browser automation.
Cons: Costs money. You depend on the provider's reliability.
Best for: Production applications, analytics dashboards, influencer marketing platforms, and any use case where you need consistent Instagram data without the maintenance burden.
CreatorCrawl falls into this category. It provides a pay-per-use Instagram data API that returns structured JSON for profiles, posts, reels, comments, stories, and more.
Instagram scraper API endpoints at a glance
| Task | Endpoint |
|---|---|
| Instagram profile scraper | GET /instagram/profile |
| Public post scraper | GET /instagram/user/posts |
| Instagram comments scraper | GET /instagram/post/comments |
| Instagram Reel scraper | GET /instagram/user/reels |
| Reel keyword search | GET /instagram/reels/search |
| Reel or video transcript | GET /instagram/media/transcript |
What Instagram data you can access via CreatorCrawl
CreatorCrawl's Instagram endpoints cover the data most developers actually need. Every request costs 1 credit, authentication is a single API key, and there are no rate limits.
Profiles
/instagram/profile returns comprehensive profile data: bio, follower count, following count, post count, profile picture URL, verification status, category, and external URL.
/instagram/basic-profile accepts an Instagram user ID and returns the normalized core profile fields. Use /instagram/profile when you only have a handle.
See the full Instagram profile endpoint reference for response schema details.
Posts
/instagram/user/posts returns a user's recent posts with captions, like counts, comment counts, media URLs, timestamps, and post type (image, carousel, video).
/instagram/post returns detailed metadata for a single post by URL.
Comments
/instagram/post/comments returns comments on a specific post or Reel, including commenter details, comment text, timestamps, and like counts. It supports cursor pagination.
Reels
/instagram/user/reels returns a user's published Reels with view counts, like counts, and media URLs.
/instagram/reels/search lets you search for Reels by keyword. This is useful for content research and creator discovery.
Stories and highlights
/instagram/user/highlights returns a user's story highlight albums.
/instagram/user/highlight/detail returns the individual stories within a specific highlight.
Transcripts
/instagram/media/transcript extracts spoken text from Reels and video posts. This is useful for content analysis and searchable video archives.
Embeds
/instagram/user/embed returns embed data for a public account.
Getting started: code examples
All examples use CreatorCrawl's API. Sign up for free to get an API key with 50 credits included.
Base URL: https://app.creatorcrawl.com/api
Authentication: Pass your API key in the x-api-key header.
Use an Instagram profile scraper
Python
import requests
response = requests.get(
"https://app.creatorcrawl.com/api/instagram/profile",
headers={"x-api-key": "YOUR_API_KEY"},
params={"handle": "natgeo"}
)
profile = response.json()["data"]
print(f"{profile['name']}: {profile['follower_count']} followers")
print(f"Bio: {profile['bio']}")
JavaScript
const response = await fetch(
"https://app.creatorcrawl.com/api/instagram/profile?handle=natgeo",
{ headers: { "x-api-key": "YOUR_API_KEY" } }
)
const { data: profile } = await response.json()
console.log(`${profile.name}: ${profile.follower_count} followers`)
console.log(`Bio: ${profile.bio}`)
Scrape a user's recent Instagram posts
Python
import requests
response = requests.get(
"https://app.creatorcrawl.com/api/instagram/user/posts",
headers={"x-api-key": "YOUR_API_KEY"},
params={"handle": "natgeo"}
)
posts = response.json()["data"]
for post in posts:
caption = post.get("text") or ""
print(f"{caption[:80]}... | {post['like_count']} likes")
JavaScript
const response = await fetch(
"https://app.creatorcrawl.com/api/instagram/user/posts?handle=natgeo",
{ headers: { "x-api-key": "YOUR_API_KEY" } }
)
const { data: posts } = await response.json()
for (const post of posts) {
console.log(`${(post.text ?? '').slice(0, 80)}... | ${post.like_count} likes`)
}
Use an Instagram comments scraper
Python
import requests
response = requests.get(
"https://app.creatorcrawl.com/api/instagram/post/comments",
headers={"x-api-key": "YOUR_API_KEY"},
params={"url": "https://www.instagram.com/p/ABC123xyz/"}
)
comments = response.json()["data"]
for comment in comments:
print(f"@{comment['author']['handle']}: {comment['text']}")
JavaScript
const response = await fetch(
"https://app.creatorcrawl.com/api/instagram/post/comments?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FABC123xyz%2F",
{ headers: { "x-api-key": "YOUR_API_KEY" } }
)
const { data: comments } = await response.json()
for (const comment of comments) {
console.log(`@${comment.author.handle}: ${comment.text}`)
}
Use an Instagram Reel scraper
Python
import requests
response = requests.get(
"https://app.creatorcrawl.com/api/instagram/reels/search",
headers={"x-api-key": "YOUR_API_KEY"},
params={"query": "sustainable fashion"}
)
reels = response.json()["data"]
for reel in reels:
caption = reel.get("text") or ""
print(f"{caption[:60]} | {reel.get('view_count', 0)} views")
JavaScript
const response = await fetch(
"https://app.creatorcrawl.com/api/instagram/reels/search?query=sustainable+fashion",
{ headers: { "x-api-key": "YOUR_API_KEY" } }
)
const { data: reels } = await response.json()
for (const reel of reels) {
console.log(`${(reel.text ?? '').slice(0, 60)} | ${reel.view_count ?? 0} views`)
}
Use cases
Influencer vetting
Before partnering with a creator, brands need real data. Follower counts alone tell you nothing about engagement quality or audience authenticity.
With CreatorCrawl's Instagram scraper API, you can pull a creator's profile, recent posts, and comment sections to calculate actual engagement rates, check for bot-like comment patterns, and verify growth trends. Compare these numbers across multiple candidates to make data-driven partnership decisions.
The /instagram/user/posts endpoint gives you like and comment counts per post, which you can average across a recent sample. The /instagram/post/comments endpoint lets you read actual comments to spot generic bot spam versus real audience interaction.
Competitor monitoring
Track what your competitors post on Instagram, how their audience responds, and which content formats perform best. Set up a scheduled job that pulls their latest posts daily and stores the engagement metrics in your database.
Over time, you build a dataset that reveals their content strategy: posting frequency, best-performing post types, caption length patterns, and which topics drive the most engagement. This is the same data that expensive social listening tools charge thousands per month for.
Content research and trend discovery
The /instagram/reels/search endpoint is particularly useful for identifying content in your niche. Search for keywords related to your industry and analyse which Reels are getting the most views and engagement.
The /instagram/media/transcript endpoint adds another layer: you can extract the spoken content from top-performing Reels and analyse what messaging resonates with audiences.
Building Instagram analytics tools
If you are building a SaaS product that provides Instagram analytics, CreatorCrawl gives you an Instagram API alternative data layer without Meta's app review, token management, or rate limits. Your users provide a username, your backend calls CreatorCrawl, and you present the data in your UI.
The pay-per-use pricing model means your costs scale linearly with usage, which makes unit economics predictable from day one.
Instagram and TikTok: cross-platform creator analysis
Most creators publish on both Instagram and TikTok. Analyzing them on a single platform gives you an incomplete picture.
CreatorCrawl provides endpoints for both platforms through the same API, with the same authentication and the same credit system. This means you can build cross-platform creator profiles with a single integration.
A practical workflow for cross-platform analysis:
- Pull the creator's Instagram profile via
/instagram/profileto get their follower count, bio, and engagement baseline - Pull their TikTok profile to get the same metrics on that platform
- Fetch recent posts from both platforms and compare engagement rates
- Use the transcript endpoints on both platforms to analyze content overlap and messaging consistency
- Check if their Instagram Reels and TikTok videos share the same content (common for creators who cross-post)
This cross-platform view is essential for influencer marketing agencies, talent managers, and brands evaluating multi-platform partnerships. A creator might have 500K followers on Instagram but 2M on TikTok, with very different engagement patterns on each.
CreatorCrawl's Instagram posts data endpoints and TikTok equivalents use the same response structure patterns, which simplifies your code when building comparison dashboards.
Pricing
CreatorCrawl uses a credit-based, pay-as-you-go model. Each Instagram API request costs 1 credit. Credits never expire.
| Pack | Price | Credits | Cost per 1,000 requests |
|---|---|---|---|
| Free | $0 | 50 | Free |
| Starter | $29 | 5,000 | $5.80 |
| Pro | $99 | 20,000 | $4.95 |
| Scale | $299 | 100,000 | $2.99 |
No monthly subscriptions. No rate limits. Buy credits when you need them.
Sign up free and start pulling Instagram data in under a minute.
Where to go from here
The official Graph API is too restrictive for most scraping use cases. DIY scrapers break under Instagram's anti-bot pressure. A dedicated Instagram scraper API like CreatorCrawl gives you structured JSON from plain HTTP requests, with no tokens, no app review, and no browser infrastructure.
If you need to scrape Instagram profiles at scale, monitor competitors, vet influencers, or build analytics tools, the cleanest first step is the free 50 credits. Run the endpoints against the data your product actually needs and decide from there.
Explore CreatorCrawl
Try the free social media tools
Test transcripts, comments, profiles, channels, and tweets in your browser before moving to bulk API access.
More from the Blog
YouTube Transcript API: Get Video Transcripts in Python
Get a YouTube transcript through an API using Python, JavaScript, or curl. Includes timestamped JSON, language selection, and error handling.
Read article
INSTAGRAMHow to Download Instagram Data in 2026
Four ways to download Instagram data in 2026: in-app export, official Graph API, third-party data APIs, and DIY scrapers. With code and limits.
Read article
COMPAREInstagram API Cost and Pricing in 2026
How much does the Instagram API cost? Compare the free official Graph API with third-party profile, Reel, comment, and transcript APIs.
Read article