Dedicated ScrapersInstagram Scraper API
Dedicated Instagram API

Instagram Scraper API — Profiles, Posts, Reels & Hashtag Data

The fastest way to scrape Instagram at scale. Our Instagram API returns structured JSON for profiles, posts, media, hashtags, and search — no Instagram login required.

12Endpoints
4Data categories
1–3sAvg response
From $0.11Per 1K credits

No credit card required · PAYG credits never expire

Get Instagram Profile
// Fetch a public Instagram profile
import ScrapeBadger from 'scrapebadger'

const client = new ScrapeBadger({
  apiKey: 'sb_live_...'
})

const profile = awaitclient.instagram.users.get({
  username: 'nasa'
})
200 OK1.2s · 5 credits
{
  "user": {
    "username": "nasa",
    "full_name": "NASA",
    "is_verified": true,
    "follower_count": 97800000,
    "following_count": 78,
    "media_count": 4210
  }
}
API Reference

Instagram API — 12 Public Endpoints

Structured JSON responses covering profiles, media, hashtags, and search. No HTML parsing. No Instagram login needed.

Authenticated endpoints (stories, followers, following, highlights, reels, tagged posts, locations, audio, and user/place search) are temporarily unavailable while we scale the account pool — coming back soon.

GET
/v1/instagram/users/{username}
Fetch a full Instagram profile — bio, follower/following counts, verification, and links
5 cr / req
GET
/v1/instagram/users/{username}/related
Discover profiles Instagram suggests as similar to a given account
5 cr / req
GET
/v1/instagram/users/{username}/posts
Paginate a profile’s feed posts with captions, media URLs, and engagement counts
8 cr / req
GET
/v1/instagram/media/{code}
Fetch a single post, reel, or carousel by its shortcode — caption, media, and stats
5 cr / req
GET
/v1/instagram/media/{code}/oembed
Get the oEmbed payload for a post or reel — author, thumbnail, and embed HTML
2 cr / req
GET
/v1/instagram/media/{code}/comments
Paginate the comment thread on a post or reel including replies and like counts
8 cr / req
GET
/v1/instagram/media/{code}/comments/{comment_id}/likers
Retrieve the accounts that liked a given comment
8 cr / req
GET
/v1/instagram/hashtags/{tag}
Fetch hashtag metadata — total media count and profile picture
5 cr / req
GET
/v1/instagram/hashtags/{tag}/recent
Paginate the most recent posts for a hashtag in reverse-chronological order
8 cr / req
GET
/v1/instagram/search/top
Blended top-results search across users, hashtags, and places
5 cr / req
GET
/v1/instagram/search/hashtags
Find hashtags by keyword with their media counts
2 cr / req
GET
/v1/instagram/reference/media-types
Reference lookup of Instagram media-type codes (1 = photo, 2 = video, 8 = carousel)
0 cr / req
Response Schema

Every Field You Need, Ready to Use

We return the full set of content datapoints Instagram exposes across profiles, media, comments, and hashtags. Every field is typed native JSON — integers, booleans, and ISO 8601 datetimes. No string coercion required. A representative subset is shown below.

User Profile

pkstringInstagram numeric account ID
usernamestringAccount handle (without @)
full_namestringDisplay name on the profile
is_verifiedbooleanWhether the account carries a verified badge
is_privatebooleanWhether the account is private
is_businessbooleanWhether the account is a business/creator account
follower_countintegerNumber of followers
following_countintegerNumber of accounts followed
media_countintegerTotal feed posts on the profile
biographystringProfile bio text
external_urlstringWebsite link in the bio
categorystringBusiness/creator category label
profile_pic_urlstringHigh-resolution avatar image URL

Media Object

codestringShortcode used in the post URL
pkstringInstagram numeric media ID
media_typeinteger1 = photo, 2 = video/reel, 8 = carousel
captionstringPost caption text
like_countintegerNumber of likes
comment_countintegerNumber of comments
play_countintegerVideo/reel play count
taken_atdatetimePublish time (UTC, ISO 8601)
display_urlstringPrimary image/thumbnail URL
video_urlstringDirect video URL for reels and video posts
carousel_mediaarrayChild media items for carousel posts
locationobjectTagged location, if any

Comment Object

pkstringComment ID
textstringComment body text
userobjectAuthor profile summary (username, pk, avatar)
like_countintegerNumber of likes on the comment
reply_countintegerNumber of replies to the comment
created_atdatetimeComment time (UTC, ISO 8601)
repliesarrayNested reply comments

Hashtag Object

namestringHashtag text (without #)
idstringInstagram hashtag ID
media_countintegerTotal posts using the hashtag
profile_pic_urlstringHashtag cover image URL
toparrayTop-ranked posts for the hashtag
recentarrayMost recent posts for the hashtag
How it works

From API call to clean JSON in under 3 seconds

No Instagram login. No cookies. No rate-limit management.

1

Send a request

Call any Instagram endpoint with your ScrapeBadger API key and parameters — a username, media shortcode, hashtag, or search query. REST or SDK.

2

We handle Instagram

ScrapeBadger manages Instagram sessions, walks pagination, and handles rate limiting automatically. No Instagram account needed.

3

Get structured JSON

Receive typed JSON with native integers, booleans, and ISO 8601 timestamps. No HTML to parse, no brittle selectors, no cursor juggling.

Use Cases

What Developers Build with Instagram Data

Instagram is where brands, creators, and communities live. Our API makes that data accessible for discovery, analytics, and AI applications.

Influencer discovery

Find and vet creators at scale. Pull follower counts, engagement rates, and audience overlap from profiles, then rank candidates for campaigns without manual scrolling.

Social analytics

Track post, reel, and story performance over time. Extract like, comment, and play counts to benchmark accounts and measure content velocity.

Trend detection

Monitor hashtag top and recent feeds to catch rising formats, sounds, and topics early — before they saturate a niche.

Audience research

Map follower and following graphs to understand community structure, identify shared audiences, and surface micro-influencers around a topic.

AI training datasets

Collect captions, comments, and image URLs for training multimodal models, sentiment classifiers, and recommendation systems.

Brand & competitor tracking

Watch competitor accounts, tagged posts, and hashtag campaigns. Track share of voice and catch mentions across the platform.

Pricing

Pay Per Request. Credits Never Expire.

You only pay for successful responses — failed requests are always free. PAYG credits never expire; volume subscription tiers reduce per-credit cost further.

EndpointCredits / requestPAYGSubscription
Get User /v1/instagram/users/{username}5 credits
Related Profiles /v1/instagram/users/{username}/related5 credits
User Posts /v1/instagram/users/{username}/posts8 credits
Get Media /v1/instagram/media/{code}5 credits
Media oEmbed /v1/instagram/media/{code}/oembed2 credits
Media Comments /v1/instagram/media/{code}/comments8 credits
Comment Likers /v1/instagram/media/{code}/comments/{comment_id}/likers8 credits
Get Hashtag /v1/instagram/hashtags/{tag}5 credits
Hashtag Recent /v1/instagram/hashtags/{tag}/recent8 credits
Search Top /v1/instagram/search/top5 credits
Search Hashtags /v1/instagram/search/hashtags2 credits
Media Types /v1/instagram/reference/media-typesFree

See the full plan comparison on the pricing page — subscription tiers step down per-credit cost beyond the cheapest column shown above.

Free trial
1,000 credits free
= 200 profile requests
Credits expire
Never
Buy once, use anytime
Failed requests
Always free
Pay for success only
Live cost estimator
Credits per request5
Total credits needed5,000
Loading plans…
Why ScrapeBadger

Built for Reliability at Scale

ScrapeBadger's Instagram API handles the hard parts of Instagram data extraction — session management, pagination, and rate limiting — so your pipeline keeps running.

No Instagram login required

You never hand over an Instagram account or manage cookies and 2FA. ScrapeBadger handles all session management — your only credential is your ScrapeBadger API key.

Full pagination handled

Followers, following, posts, comments, and hashtag feeds are paginated with a simple cursor. Pass the returned cursor back to walk an entire list, no token juggling.

Real-time data

Responses reflect current Instagram state — live follower counts, current like and comment totals, and stories that are still live. No stale snapshots.

Posts, media & hashtags

One API covers the public surfaces — feed posts, single media by shortcode with captions and stats, comment threads, and hashtag feeds.

Structured JSON, no parsing

All responses return typed, normalized JSON. Counts, timestamps, and booleans are native types — no HTML to parse, no brittle selectors.

Python & Node.js SDKs

Official typed SDKs for Python and Node.js/TypeScript. Call instagram.users.posts() or instagram.hashtags.top() directly, or use the REST API with any language.

Code Examples

Simple Integration. Any Language.

Get started in minutes with Node.js, Python, or plain HTTP requests.

The scrapebadger Node.js library wraps the Instagram API with typed methods. Install with npm install scrapebadger, then start extracting Instagram data in a few lines of code.

Node.js: Profile + Posts
import ScrapeBadger from 'scrapebadger'

const client = new ScrapeBadger({
  apiKey: 'sb_live_...'
})

// Fetch a profile, then its recent posts
const profile = await client.instagram.users.get({
  username: 'nasa'
})

const posts = await client.instagram.users.posts({
  username: 'nasa',
  amount: 12
})

console.log(`${posts.items.length} posts fetched`)
Python: Hashtag Top Posts
from scrapebadger import ScrapeBadger

client = ScrapeBadger("sb_live_...")

# Top posts for a hashtag
res = client.instagram.hashtags.top(
    tag="webscraping",
    amount=25
)

for media in res.items:
    print(f"{media.like_count:>8}  {media.code}")
FAQ

Frequently Asked Questions

Common questions about scraping Instagram with the API — Python, Node.js, or REST.

Does the Instagram Scraper API require an Instagram account?

No. You do not need to log in, provide cookies, or manage two-factor authentication. ScrapeBadger handles all Instagram session management on your behalf. Your only credential is your ScrapeBadger API key, passed as a Bearer token.

Can I scrape private profiles?

No. The API only returns data that is publicly visible on Instagram. Private accounts expose their profile metadata (bio, counts, verification) but not their posts, followers, or stories, matching what any logged-out visitor can see.

How fresh is the Instagram data?

Responses reflect near-real-time Instagram state. Follower counts, like and comment totals, and story availability are fetched live on each request with no intermediate caching. Timestamps are the original Instagram UTC values in ISO 8601 format.

How does pagination work?

Paginated endpoints — posts, reels, followers, following, comments, and hashtag feeds — accept an amount parameter and return a cursor (next_cursor). Pass that cursor back on the next request to continue where you left off. The followers endpoint additionally accepts an order parameter.

Can I look up a post or reel by its URL?

Yes. Every Instagram post and reel URL contains a shortcode (the segment after /p/ or /reel/). Pass that shortcode to the Get Media endpoint to fetch the full object — caption, media URLs, like and comment counts, and any tagged location.

What are the rate limits?

Rate limits depend on your ScrapeBadger subscription plan, and all plans support burst requests. ScrapeBadger distributes requests across multiple sessions so you are not throttled by Instagram per-account limits.

Plans & subscriptions

Bigger volume? Save up to 64%

Per-request credit costs are listed above. For higher monthly volume, subscription tiers reduce the per-credit rate substantially. All public Instagram endpoints — profiles, posts, media, hashtags, and search — included on every plan.

Get started

Start Scraping Instagram Today

1,000 free credits. No credit card. Get your API key in under a minute.

PAYG credits never expire · Pay only for successful requests · Global Instagram coverage