Instagram Scraper API for Profiles, Reels, and Comments

by Simon Balfe··Updated

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

TaskEndpoint
Instagram profile scraperGET /instagram/profile
Public post scraperGET /instagram/user/posts
Instagram comments scraperGET /instagram/post/comments
Instagram Reel scraperGET /instagram/user/reels
Reel keyword searchGET /instagram/reels/search
Reel or video transcriptGET /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:

  1. Pull the creator's Instagram profile via /instagram/profile to get their follower count, bio, and engagement baseline
  2. Pull their TikTok profile to get the same metrics on that platform
  3. Fetch recent posts from both platforms and compare engagement rates
  4. Use the transcript endpoints on both platforms to analyze content overlap and messaging consistency
  5. 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.

PackPriceCreditsCost per 1,000 requests
Free$050Free
Starter$295,000$5.80
Pro$9920,000$4.95
Scale$299100,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

Takes 60 seconds

Add one line to your
MCP config. Ship today.

50 free credits. No card. Works with Claude, Cursor, Zed, and any MCP client.