Instagram API
Twelve endpoints for Instagram profiles, posts, reels, stories, comments and hashtag search — each one a single POST returning structured JSON. No Meta app review, no login, no scraping stack to keep alive.
50 free credits on signup. No card, no Meta app, no login.
{ "data": { "pk": "528817151", "username": "nasa", "full_name": "NASA", "follower_count": 104386104, "following_count": 91, "media_count": 4834, "is_private": false, "is_verified": true, "biography": "Making the seemingly impossible, possible. ✨", "external_url": "https://www.nasa.gov" }, "response_time": 6864, "credits_used": 10, "credits_remaining": 4732}A real captured response from this endpoint. Sign up to run your own.
What is the Scavio Instagram API?
The Scavio Instagram API is a REST API that returns public Instagram data as structured JSON. You send a username, shortcode or post URL to one of 12 POST endpoints with your API key, and get back profiles, posts, reels, stories, comments or hashtag results — no Meta app, no OAuth flow, and no login credentials.
- 12
- endpoints, all live in production
- 2–10
- credits per call, priced per endpoint
- 0
- Meta app reviews required
Start with these four
They cover most of what people build. The full twelve are below.
Profiles
POST /api/v1/instagram/profileFollower counts, bio, verification and the numeric user_id every other endpoint accepts.
Posts
POST /api/v1/instagram/user/postsA whole timeline with captions and engagement, paginated — and the cheapest call on the platform at 2 credits.
Reels
POST /api/v1/instagram/user/reelsReels with play counts, so you can rank short-form performance rather than guess at it.
Hashtag search
POST /api/v1/instagram/search/hashtagsFind hashtags by keyword with media counts — discovery without a seed account.
All 12 Instagram endpoints
Every route is a POST, returns JSON, and takes the same API key. Costs are per successful call.
| Endpoint | Returns | Credits |
|---|---|---|
Profile/api/v1/instagram/profile | Full name, bio, follower / following / media counts, verification, user_id | 10 |
User posts/api/v1/instagram/user/posts | Timeline posts — shortcode, caption, media, like and comment counts | 2 |
User reels/api/v1/instagram/user/reels | Reels with shortcode, caption, play and like counts | 10 |
User stories/api/v1/instagram/user/stories | Currently active stories for an account | 10 |
Tagged posts/api/v1/instagram/user/tagged | Posts an account has been tagged in, paginated | 10 |
Post detail/api/v1/instagram/post | One post by URL, shortcode or media_id — caption, media, author | 8 |
Post comments/api/v1/instagram/post/comments | Comment id, text, author and like count, paginated | 10 |
Comment replies/api/v1/instagram/post/comments/replies | Replies to a single comment, paginated | 8 |
Hashtag search/api/v1/instagram/search/hashtags | Hashtags matching a keyword, with media counts | 10 |
User search/api/v1/instagram/search/users | Accounts matching a keyword — handle, name, followers, verified | 10 |
Followers/api/v1/instagram/user/followers | An account's follower list, paginated | 10 |
Following/api/v1/instagram/user/followings | The accounts a user follows, paginated | 10 |
50 free credits on signup covers 25 timeline pages or 5 profile lookups. See plans
Two calls to a scored creator list
Resolve the profile, page the timeline, compute engagement yourself. The response on the right is a real capture, field names and all.
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
user = client.instagram.profile(username="nasa")["data"]
print(user["full_name"], user["follower_count"])
# Page the timeline - 2 credits per call
posts = client.instagram.user_posts(username="nasa")
for p in posts["data"]["items"]:
print(p["code"], p["like_count"], p["caption_text"]){
"data": {
"pk": "528817151",
"username": "nasa",
"full_name": "NASA",
"follower_count": 104386104,
"following_count": 91,
"media_count": 4834,
"is_private": false,
"is_verified": true,
"biography": "Making the seemingly impossible, possible. ✨",
"external_url": "https://www.nasa.gov"
},
"response_time": 6864,
"credits_used": 10,
"credits_remaining": 4732
}Why not Meta's own API?
Often you should — if you only need data for accounts that have authorised your app. For everything else the two are not substitutes.
Instagram Graph API
- Requires a Meta app, a linked business or creator account, and review for most permissions
- Returns data for accounts that authorise you — not arbitrary public profiles
- Basic Display API, the old read-only route, was retired in 2024
- OAuth tokens to issue, refresh and store per user
Scavio Instagram API
- One API key, issued at signup — no app, no review, no waiting
- Any public profile, post, reel or hashtag by handle, shortcode or URL
- Twelve endpoints live today, versioned and documented
- Same key and JSON envelope as 30 other Scavio platforms
Scavio returns publicly available data only, and never authenticates as an Instagram user.
What developers build with it
Influencer vetting at list scale
Resolve a handle to follower count and verification, then pull the last 12 posts and read real like and comment counts. Engagement rate you computed beats a number a media kit asserts.
profile + user/postsCompetitor and brand monitoring
Run a set of handles on a schedule and diff the results. Post cadence, caption themes and engagement trend all fall out of the same two calls, stored in your own database.
user/posts + post/commentsShort-form performance tracking
Reels carry play counts, so you can rank a creator's short-form output against their feed posts and see which format actually travels for a given audience.
user/reelsHashtag and trend discovery
Search hashtags by keyword to size a topic before committing to it, then walk the accounts posting under it with user search — no seed account required.
search/hashtags + search/usersComment mining and sentiment
Pull a post's comments and the replies under any thread, then feed the text to an LLM for themes, complaints or purchase intent. Pagination is a cursor, not a scraping problem.
post/comments + post/comments/repliesAgent tools and RAG pipelines
Point an agent at the remote MCP server and Instagram becomes a callable tool alongside every other Scavio platform — same key, same JSON envelope, no per-platform glue.
MCP + RESTNo code today? Use the free tools
Same endpoints behind them. No signup for the first few runs.
How to get Instagram data as JSON
- 1
Get an API key
Sign up for a Scavio account and copy your key from the dashboard. You get 50 credits free on signup, with no card required.
- 2
POST a username to an endpoint
Send {"username": "nasa"} to https://api.scavio.dev/api/v1/instagram/profile with an Authorization: Bearer header. Every Instagram endpoint is a POST and takes a username, user_id, shortcode or post URL.
- 3
Read the JSON
The response wraps the provider payload under data, plus credits_used and credits_remaining. Page through timelines by passing the cursor from the previous response.
Instagram API FAQ
What is the Scavio Instagram API?
+
It is a REST API that returns public Instagram data as structured JSON. Twelve POST endpoints cover profiles, posts, reels, stories, tagged posts, post detail, comments, comment replies, hashtag search, user search, followers and following. You authenticate with a Scavio API key and never handle Instagram credentials.
Who are these endpoints for?
+
Anyone who needs public Instagram data in a structured form rather than a browser tab. Developers and backend teams embedding it in a product; AI agent builders wiring Instagram in as an MCP or SDK tool; automation engineers running it inside n8n, Zapier or Make; GTM and sales teams enriching leads and building prospect lists from profile and user-search results; brand managers tracking competitor posts, mentions and comment sentiment; and creators, agencies and influencer marketers vetting collaborators against real like, comment and play counts. The API is identical for all of them — what changes is which of the 12 endpoints you call.
Do I need a Meta app or app review to use it?
+
No. Meta's own Instagram APIs require a Facebook app, a linked business or creator account, and review for most permissions — and they return data for accounts that have authorised you, not arbitrary public profiles. Scavio needs none of that: sign up, take the key, send a username.
How much does an Instagram request cost?
+
User posts costs 2 credits, post detail and comment replies cost 8, and the remaining nine endpoints cost 10. New accounts get 50 free credits on signup, one time, with no card required. Paid plans start at $30 per month for 7,000 credits.
Do I need Instagram login credentials?
+
No. You call the Scavio endpoint with your Scavio API key. Scavio handles retrieval and returns clean JSON, so you never hand over an Instagram password, manage a session, or risk an account.
Can it read private accounts?
+
No. Only data Instagram makes publicly available is returned. A private account resolves to its profile shell — handle, name, counts and the is_private flag — and its posts are not accessible.
What does the response actually look like?
+
The API wraps the provider payload under a data key and adds credits_used and credits_remaining. Profile fields include pk, username, full_name, biography, follower_count, following_count, media_count, is_verified and is_private. Timeline endpoints return data.items with code, caption_text, like_count, comment_count and media_type per post.
How does pagination work?
+
Timeline, comment and follower endpoints return a cursor alongside the results. Pass it back as the cursor parameter on the next call to get the following page, and use count to set the page size.
Which languages and tools are supported?
+
Official Python (pip install scavio) and JavaScript/TypeScript (npm i scavio) SDKs, a remote MCP server at mcp.scavio.dev for AI agents, and an n8n community node. Any language can call the REST endpoints directly with an HTTP client.
Is there a rate limit?
+
Requests are limited by your plan's credit balance and a per-plan concurrency ceiling rather than a fixed requests-per-second figure. Bursty batch jobs are fine; if you need sustained high concurrency, that is a plan question rather than a technical one.
Is scraping Instagram data legal?
+
Scavio returns publicly available data and does not access private content or authenticate as a user. You remain responsible for how you use the data, including compliance with Instagram's terms and with privacy law such as GDPR where personal data is involved. Talk to your own counsel for your specific use case.
Explore more of Scavio
TikTok API
Profiles, videos, comments and search as JSON.
Reddit API
Search Reddit and pull full comment threads.
X (Twitter) API
Post search, timelines and the social graph.
LinkedIn API
People, companies, jobs and posts.
Pricing
Credit packs and plans, with no per-platform surcharge.
MCP server
Every platform as a callable tool for your agents.
Start pulling Instagram data today
50 free credits on signup, no card. Your first request is a POST with a username in it.