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.
No credit card required · PAYG credits never expire
// Fetch a public Instagram profile
import ScrapeBadger from 'scrapebadger'
const client = new ScrapeBadger({
apiKey: 'sb_live_...'
})
const profile = awaitclient.instagram.users.get({
username: 'nasa'
}){
"user": {
"username": "nasa",
"full_name": "NASA",
"is_verified": true,
"follower_count": 97800000,
"following_count": 78,
"media_count": 4210
}
}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.
/v1/instagram/users/{username}/v1/instagram/users/{username}/related/v1/instagram/users/{username}/posts/v1/instagram/media/{code}/v1/instagram/media/{code}/oembed/v1/instagram/media/{code}/comments/v1/instagram/media/{code}/comments/{comment_id}/likers/v1/instagram/hashtags/{tag}/v1/instagram/hashtags/{tag}/recent/v1/instagram/search/top/v1/instagram/search/hashtags/v1/instagram/reference/media-typesWe 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.
pkstringInstagram numeric account IDusernamestringAccount handle (without @)full_namestringDisplay name on the profileis_verifiedbooleanWhether the account carries a verified badgeis_privatebooleanWhether the account is privateis_businessbooleanWhether the account is a business/creator accountfollower_countintegerNumber of followersfollowing_countintegerNumber of accounts followedmedia_countintegerTotal feed posts on the profilebiographystringProfile bio textexternal_urlstringWebsite link in the biocategorystringBusiness/creator category labelprofile_pic_urlstringHigh-resolution avatar image URLcodestringShortcode used in the post URLpkstringInstagram numeric media IDmedia_typeinteger1 = photo, 2 = video/reel, 8 = carouselcaptionstringPost caption textlike_countintegerNumber of likescomment_countintegerNumber of commentsplay_countintegerVideo/reel play counttaken_atdatetimePublish time (UTC, ISO 8601)display_urlstringPrimary image/thumbnail URLvideo_urlstringDirect video URL for reels and video postscarousel_mediaarrayChild media items for carousel postslocationobjectTagged location, if anypkstringComment IDtextstringComment body textuserobjectAuthor profile summary (username, pk, avatar)like_countintegerNumber of likes on the commentreply_countintegerNumber of replies to the commentcreated_atdatetimeComment time (UTC, ISO 8601)repliesarrayNested reply commentsnamestringHashtag text (without #)idstringInstagram hashtag IDmedia_countintegerTotal posts using the hashtagprofile_pic_urlstringHashtag cover image URLtoparrayTop-ranked posts for the hashtagrecentarrayMost recent posts for the hashtagNo Instagram login. No cookies. No rate-limit management.
Call any Instagram endpoint with your ScrapeBadger API key and parameters — a username, media shortcode, hashtag, or search query. REST or SDK.
ScrapeBadger manages Instagram sessions, walks pagination, and handles rate limiting automatically. No Instagram account needed.
Receive typed JSON with native integers, booleans, and ISO 8601 timestamps. No HTML to parse, no brittle selectors, no cursor juggling.
Instagram is where brands, creators, and communities live. Our API makes that data accessible for discovery, analytics, and AI applications.
Find and vet creators at scale. Pull follower counts, engagement rates, and audience overlap from profiles, then rank candidates for campaigns without manual scrolling.
Track post, reel, and story performance over time. Extract like, comment, and play counts to benchmark accounts and measure content velocity.
Monitor hashtag top and recent feeds to catch rising formats, sounds, and topics early — before they saturate a niche.
Map follower and following graphs to understand community structure, identify shared audiences, and surface micro-influencers around a topic.
Collect captions, comments, and image URLs for training multimodal models, sentiment classifiers, and recommendation systems.
Watch competitor accounts, tagged posts, and hashtag campaigns. Track share of voice and catch mentions across the platform.
You only pay for successful responses — failed requests are always free. PAYG credits never expire; volume subscription tiers reduce per-credit cost further.
| Endpoint | Credits / request | PAYG | Subscription |
|---|---|---|---|
Get User /v1/instagram/users/{username} | 5 credits | — | — |
Related Profiles /v1/instagram/users/{username}/related | 5 credits | — | — |
User Posts /v1/instagram/users/{username}/posts | 8 credits | — | — |
Get Media /v1/instagram/media/{code} | 5 credits | — | — |
Media oEmbed /v1/instagram/media/{code}/oembed | 2 credits | — | — |
Media Comments /v1/instagram/media/{code}/comments | 8 credits | — | — |
Comment Likers /v1/instagram/media/{code}/comments/{comment_id}/likers | 8 credits | — | — |
Get Hashtag /v1/instagram/hashtags/{tag} | 5 credits | — | — |
Hashtag Recent /v1/instagram/hashtags/{tag}/recent | 8 credits | — | — |
Search Top /v1/instagram/search/top | 5 credits | — | — |
Search Hashtags /v1/instagram/search/hashtags | 2 credits | — | — |
Media Types /v1/instagram/reference/media-types | Free | — | — |
See the full plan comparison on the pricing page — subscription tiers step down per-credit cost beyond the cheapest column shown above.
ScrapeBadger's Instagram API handles the hard parts of Instagram data extraction — session management, pagination, and rate limiting — so your pipeline keeps running.
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.
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.
Responses reflect current Instagram state — live follower counts, current like and comment totals, and stories that are still live. No stale snapshots.
One API covers the public surfaces — feed posts, single media by shortcode with captions and stats, comment threads, and hashtag feeds.
All responses return typed, normalized JSON. Counts, timestamps, and booleans are native types — no HTML to parse, no brittle selectors.
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.
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.
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`)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}")Common questions about scraping Instagram with the API — Python, Node.js, or REST.
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.
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.
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.
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.
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.
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.
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.
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