Instagram scraper API
Public Instagram profiles, posts, reels, comments, followers and search as JSON. No Meta app review, no Business account, no scraper to keep alive.
38 endpoints · from 20 credits a call · 10 free calls · no credit card
curl "https://api.insightsocial.app/v1/instagram/profile?handle=natgeo" \-H "x-api-key: $INSIGHTSOCIAL_API_KEY"
What Instagram data can you get?
Public Instagram data only, returned in the same JSON envelope as every other platform.
Profiles and contact details
Bio, exact follower count, verification, and the public email in the bio. Opt in to the creator's personal contact address where they give one.
Posts and reels
An account's recent posts and reels with captions, like, comment and play counts, and Collab co-authors.
Comments, replies and likers
Comment threads under any public post, with replies, plus a sample of the accounts that liked it.
Followers, search and discovery
Follower and following lists, hashtag and location posts, profile search and similar accounts.
Instagram API endpoints
All 38 Instagram endpoints and their price in credits. 15 are metered: they show a range and charge what the call actually read.
| Endpoint | Credits | What it returns |
|---|---|---|
| /profile | 20 | Returns an Instagram account's public profile: bio, exact integer follower count on author.followers, following count, picture URL, verification, and author.ext.public_email from the bio. |
| /profile/about | 20 | Returns Instagram's "About this account" details for a public account (country, month joined, published contact) plus its follower count and lifetime post count. |
| /profile/posts | 20–340 | Returns a user's recent posts with caption, like and comment counts, media URL, media type, and timestamp; share counts are not included. |
| /post | 20 | Returns one post's details: caption, view count on videos and reels, like and comment counts, media URLs, media type, the author, and any tagged users. |
| /post/comments | 100–380 | Returns a post's comments, each with its text, author, like count, reply count, and time, ranked by popularity by default or newest first. |
| /comment | 100–300 | Returns one comment's current text, like count, reply count, author, and timestamp, plus the post's total comment count for context. |
| /basic-profile | 20 | Returns a minimal Instagram profile looked up by numeric user id: username, full name, and profile picture. |
| /profile/reels | 20–360 | Returns a user's reels with view, like and comment counts and a thumbnail; share counts are not included here. |
| /highlights | 20 | Returns a user's saved story highlight collections, each with its title, cover image, and the number of items inside. |
| /highlight/detail | 20 | Returns the individual stories saved inside one highlight, with their media URLs, timestamps, and interaction counts. |
| /search/reels | 20–180 | Returns reels matching a keyword, each with its view count, like count, and author; share and save counts are not included on this endpoint. |
| /media/transcript | 200 | Returns the spoken words in an Instagram video or reel of up to 2 minutes as text. |
| /media/screen-text | 100–100 | Returns the text shown on an Instagram post's images, read by AI: the photo, each carousel slide up to 10, or a reel's cover frame, with results per slide. |
| /user/embed | 20 | Returns an embeddable HTML snippet for an Instagram profile, meant to be dropped into a page on your own site. |
| /audio/reels | 20 | Returns reels that use one specific audio track, each with its engagement counts and the account that posted it. |
| /search/hashtag | 100 | Returns public posts carrying a hashtag, each with shortcode, URL, caption, media URLs, engagement counts, and the author; share and save counts are not included. |
| /search/profiles | 20–500 | Returns public profiles matching a keyword, each with username, display name, bio, follower and following counts, post count, and profile URL. |
| /reels/trending | 100 | Returns reels from Instagram's public trending page, each with shortcode, URL, caption, media URLs, engagement counts where shown, and the account. |
| /followers | 100–200 | Returns the accounts that follow a user, each with username, display name, avatar URL, verification status, and profile URL. |
| /following | 100–200 | Returns the accounts a user follows, each with username, display name, avatar URL, verification status, and profile URL. |
| /similar | 100–1,700 | Returns the accounts Instagram suggests as similar to a given user, each with username, display name, avatar URL, verification status, and URL. |
| /post/likers | 100 | Returns a sample of the accounts that liked a post, each with username, display name, avatar, and verification status, plus the full like count. |
| /post/stats | 100–180 | Returns one post's engagement: likes, comments, and, on video posts only, the play count and the share count shown by the paper plane icon. |
| /tagged | 100 | Returns posts that tag a given user, each with its shortcode, URL, caption, media URLs, engagement counts, and the account that posted it. |
| /location/posts | 100 | Returns posts tagged at a place, newest first, about 60 a page, each with shortcode, URL, caption, media URLs, engagement counts, and the author. |
| /engagement | 100 | Returns a computed engagement report for an account: overall engagement rate, follower count, total likes and comments, and a per-post breakdown. |
| /search/location | 100 | Returns places matching a keyword, each with its location id, name, and coordinates, plus a display title and subtitle. |
| /search | 20 | Returns mixed Instagram search matches for a query: accounts, hashtags, and places in one payload. |
| /search/popular | 20–260 | Returns popular Instagram posts matching a keyword, each with caption, play count, permalink, thumbnail, and the owner's username. |
| /post/comment/replies | 20–100 | Returns replies under one Instagram comment, each with text, like count, nested reply count, author, and timestamp. |
| /username-suggestions | 100 | Returns suggested available Instagram usernames built from a keyword you supply. |
| /search/music | 100 | Returns audio tracks matching a keyword, each with artist, title, audio and cover artwork URLs, duration, and usage details. |
| /stories | 100 | Returns the stories a user has live right now, each with its id, image or video URLs, thumbnail, duration, capture time, and the author. |
| /story/download | 100 | Returns the full resolution image or video URLs and metadata for one specific story. |
| /music/trending | 100 | Returns a chart of licensed tracks trending on Instagram, each with title, artist, audio and cover artwork URLs, and usage details. |
| /profile/full | 100 | Returns the profile plus its latest 12 posts and computed metrics: engagement rate by views and by followers, posting cadence, the top post, and the mix of post formats. |
| /profile/reels/full | 100–500 | Returns a user's reels with views, likes, comments, and a per-reel share count where the second source exposes one, plus a coverage figure. |
| /profile/posts/full | 100–500 | Returns a user's recent posts with likes, comments, views, and a per-post share count where the second source exposes one, plus a coverage figure. |
Parameters, response fields and examples for each endpoint are in the Instagram API reference.
InsightSocial vs the official Instagram API
The Instagram Graph API is built for Business and Creator accounts that connect to your app, and every permission goes through Meta app review.
| InsightSocial API | Official Instagram API | |
|---|---|---|
| Whose data | Any public account, personal or business | Accounts that connect to your app; limited lookups of other Business accounts |
| Approval | None. Sign in and copy a key | Meta app review for each permission |
| Followers and likers | Lists of accounts, page by page | Counts only, not the accounts |
| Comments | Any public post, with replies | Posts on accounts you manage |
The official API is the right tool for posting, messaging or managing accounts you own. This one is read-only public data.
How much does the Instagram API cost?
Instagram calls start at 20 credits. Every endpoint's price is in the table above and in the free GET /v1/endpoints catalogue, so you know the cost before you call.
Failed calls are free
A call that errors or finds nothing costs 0 credits.
Repeats are free
Call the same thing again inside its window, 1 to 24 hours depending on the endpoint, and it costs 0.
One balance
API calls and Chrome extension exports share the same credits. The free plan includes 500 a month.
Not writing code?
The free Instagram scraper for Chrome exports the same data to Excel, CSV or Google Sheets from your browser, on the same account.
Instagram API: frequently asked questions
Not for personal accounts. Meta retired the Instagram Basic Display API in December 2024, and the Graph API that remains reads Business and Creator accounts that connect to your app, after app review. The InsightSocial API reads any public profile with one key and no review.
Yes. /v1/instagram/followers and /v1/instagram/following return the accounts page by page, each with its username and profile details. Private accounts are not readable by anyone outside their approved followers, including us.
When the creator puts an email in their bio, /v1/instagram/profile returns it in author.ext.public_email. Add contact_email=1 and, where the bio lists several addresses, you also get the one the creator gives for personal contact.
A profile call is 20 credits and always costs the same. List endpoints such as posts or comments are metered: they quote a range and charge what the page actually read. Calls that fail or find nothing are free.
No. There is no Instagram app, OAuth flow or review. One API key in the x-api-key header works for Instagram and the other 8 platforms.
Yes. Your first 10 calls priced at 200 credits or less are free, and the free plan includes 500 credits every month. No credit card is needed to get a key.