100 free credits on signup · no card required

Instagram Channel Stats API

One handle in. Clean JSON out.

Give it an Instagram handle, get the account's follower count, following count, post count, bio, verification badge and avatar URL back as JSON. It reads the public profile page — the same thing you see logged out — so there is no Graph API app review and no Business account requirement. 3 credits per profile.

Credits 3 / profile
Input ?handle=
Cache 12h
GET · BEARER
Request composing…
Cached 12 hours
cheap to re-poll
Works with your stack
cURL Python Node.js Zapier n8n Make MCP
One key · one credit balance · plain REST

The difference

Stop parsing markup. Start reading fields.

On the left, what a headless browser hands you. On the right, what the endpoint hands you.

Scraping it yourself raw HTML · every call
<article class="_aagv _ab8w x1n2onr6" role="presentation"><div class="x9f619 xjbqb8w x78zum5"><div class="_aagu"><img alt="Photo by @creator" class="x5yr21d xu96u03" src="https://scontent.cdninstagram.com/v/t51...blob"/></div><section class="x6s0dn4 x78zum5 xdt5ytf"><span class="x1lliihq _aacl _aaco">55,210 likes</span><div class="_a9zs"><span dir="auto">Three settings you should change today</span></div><span class="_aacl _aaco x1i10hfl">View all 981 comments</span></section><time class="_aaqe" datetime="2026-07-03T12:00:00.000Z">18h</time></div><script type="application/json" data-sjs>{"require":[["ScheduledServerJS","handle",null,[{"__bbox"...
×Class names rotate; your selectors break weekly ×Headless browsers, proxies, blocks to babysit ×Counts arrive as strings, not numbers
One GET request 10 typed fields
{
"data": {
"platform": "instagram",
"handle": "instagram",
"name": "Example Creator",
"bio": "Tutorials and behind-the-scenes. New video every Tuesday.",
"verified": true,
"metrics": {
"followers": 2450318,
"following": 132,
"posts": 842
}
},
"request_id": "req_01JZX4M8Q2TE9W"
}
Stable field names, documented nulls No proxies, no browser, no login session Counters are integers you can sort on

The payload

What comes back

{ data, meta?, request_id }
01 Three counters plus profile text

One object per handle. The three counters (followers, following, posts) are the numbers Instagram prints at the top of a profile, plus the profile text: display name, bio, verified flag, avatar image URL, canonical profile link, and whether the account is set to private.

02 Account-level only, no posts

This is account-level data only. There is nothing here about individual posts — no likes, no captions, no reach. If you want the grid, that is a separate call to the Instagram Channel Posts API, and this endpoint is usually the cheap first step that tells you whether the grid is worth pulling at all.

03 Private accounts still return headers

Private accounts still return a profile. Instagram publishes the header of a private account to logged-out visitors, so you get handle, name, bio, avatar and the counters, with `is_private` set to true. What you do not get is anything behind the wall, and no other endpoint on this API will get it either.

Field explorer Pick a key to see its type and the caveats.
number|null Nullable Per item
posts

Total posts on the grid. Counts carousels as one, and does not include stories or archived posts.

{
"handle": "instagram",
"name": "Example Creator",
"followers": 2450318,
"following": 132,
"posts": 842,
"bio": "Tutorials and behind-the-scenes. New video every Tuesday.",
"verified": true,
"avatar": "…",
"url": "…",
"is_private": false
}
Good fit

Reach for this when

  • Screening a list of creators before you pay to pull their content — one 3-credit call tells you follower size, verification and whether the account is private.
  • Tracking follower growth for your own accounts or a competitor set, by storing the counters with a date and diffing daily or weekly.
  • Enriching a CRM or influencer database where you already hold handles and need audience size attached to each record.
  • Validating that a handle a user typed into your product actually exists and is public, before you build the rest of the workflow on top of it.
  • Computing a rough follower-to-following ratio as one signal among several when auditing an account for bought reach.
Different job?

There's an endpoint for that

  • You want the account's actual posts, captions and like counts — use the Instagram Channel Posts API, or the Instagram Channel Reels API for video.
  • You have a post URL rather than a handle and want that post's numbers — that is the Instagram Stats API.
  • You need engagement rate. This endpoint returns no per-post data, so you cannot derive one from it. Pull recent posts and divide the average engagement by the follower count you get here.
  • You are looking for a creator you cannot name yet. This takes an exact handle, not a search term.

Pricing

Start free, pay for what comes back

One profile lookup is 3 credits — about 1.5¢ on the monthly plan. $5 covers roughly 333 handles, cached responses bill the same, and failed calls are never charged.

Estimate your bill
$10/ month
30 profiles/day × 3 credits × 365 days = 32,850 credits/yr, or $117/yr on the annual plan plus 21 top-up blocks Whichever plan is cheaper for that volume, divided by 12.
30
102,000
Credits / yr 32,850
Plan Annual $54/yr
Per profile

Estimate only, on a full-year basis. 3 credits per returned profile. Monthly: $5 per 1,000 credits with $4/1,000 top-ups. Annual: $54 per 12,000 credits with $3/1,000 top-ups. We show whichever plan is cheaper for your annual volume, divided by 12. Failed calls are never charged; cache hits cost the same as fresh calls.

Free trial
100 credits

On signup, no card. Your key is on screen immediately.

Get your free API key
Monthly $5/mo 1,000 credits. Top-ups $4 per extra 1,000.
Annual $54/yr 12,000 credits. Top-ups $3 per extra 1,000.

Entry price, side by side

Cheapest way to start

Verified July 2026 from each vendor's live pricing page
ScraperSocial
$5 / mo 1,000 credits · 100 free credits, no card
Supadata
$5 / mo 300 credits, annual commitment · 100 free/mo
SocialKit
$29 / mo 12,000 credits · 20 free credits
Dumpling AI
$40 / mo Billed annually · free tier size unpublished
ScrapeCreators
$47 pack 25,000 credits, no subscription · 100 free once

Credits are not equivalent units across vendors — each meters differently. Price your own workload on both before deciding on entry price alone. At high volume, several of these are cheaper per credit than we are.

Engineering notes

Docs you can build on

We document exactly how every endpoint behaves — nulls, caching, billing — so what you ship on day one is still running in month six. No surprises, no support tickets.

Failed calls are never charged Public data only, no login session Built for parallel traffic

Instagram displays follower counts to logged-out visitors with rounding once an account gets large, and the figure it publishes is not updated the instant someone follows. Treat the number as the platform's public figure at call time, accurate enough for trends and segmentation, not accurate enough for a contractual payout calculation.

That rounding also means small day-to-day changes on a big account can vanish entirely. If you are charting growth for an account with hundreds of thousands of followers, weekly sampling produces a cleaner series than daily.

Profile data sits in the slow cache class because the underlying numbers barely move within a day. Repeat calls for the same handle inside the window return in milliseconds and set x-cache: hit. A cache hit is billed at the same 3 credits.

Pass fresh=true when you specifically need to bypass the cache — a follower-count monitor that runs once a day, for instance, should use it, otherwise the second run of the day may hand you back the first run's answer.

Instagram serves profile pictures from a CDN with signed, expiring links. The URL is valid when we return it and will break some time later, often within days. If the image matters to your product, fetch it during the same job and store your own copy rather than hotlinking the value.

Instagram lets people rename accounts, and the old handle becomes free for someone else to claim. This response is keyed on the handle, so a stored handle can silently start resolving to a different person. If you keep a long-lived database of creators, re-verify handles periodically instead of assuming they are permanent identifiers.

People put email addresses, phone numbers and other contact details in their Instagram bio. That text arrives verbatim in the `bio` field. It is public, but public is not the same as fair game under GDPR or CCPA — if you store or process it, that is your processing, and your obligations. Strip what you do not need.

Questions

Frequently asked

Send a GET to /v1/instagram/channel-stats with the handle and your API key. You get followers, following and post count as JSON. Instagram's Graph API only reports on accounts you own or manage, needs a linked Business or Creator account, and requires app review before it returns anything in production. This endpoint reads the public profile page instead, so any public handle works immediately.

Yes, as long as it is public. The endpoint reads the same profile page a logged-out browser sees, so any public account is reachable regardless of who owns it. That is the whole reason it exists — competitor tracking and influencer vetting are impossible through Instagram's own API, which is scoped to accounts you already control.

A normal response with is_private set to true. Instagram shows the header of a private profile publicly, so the handle, display name, bio, avatar and the three counters all come back. Nothing behind the privacy wall is available — no posts, no reels, no comments — and no other endpoint on this API can reach them either.

3 credits per handle. Credits are $0.005 each on the monthly plan and $0.0045 on annual, so a lookup is about 1.5 cents and $5 covers roughly 333 profiles. Cached responses cost the same as fresh ones. Calls that fail are not charged, so a handle that does not exist costs you nothing.

One handle per call. Fire the requests concurrently — each is independent and the service is built for parallel traffic. For a screening job over a few thousand handles, run a worker pool of ten or twenty and let the slow cache absorb any duplicates in your list.

You cannot from this endpoint alone; it has no post data. The usual method is two calls: take the follower count from here, then pull the last twelve posts from the Instagram Channel Posts API, average their likes and comments, and divide that average by followers. Quote the window you used — a rate over twelve posts and a rate over ninety days are different numbers.

It is what Instagram publishes to logged-out visitors, which is rounded on larger accounts and updated on Instagram's own schedule rather than in real time. Good enough to segment creators by size or chart growth over weeks. Not good enough to settle a payment that depends on an exact threshold — use the account owner's own analytics for that.

Next

Pairs well with

Full Instagram API reference →
/v1/instagram/channel-posts
Instagram Channel Posts API Latest posts from an Instagram account with per-post metrics. 2 cr / post
/v1/instagram/channel-reels
Instagram Channel Reels API Latest reels from an Instagram account with per-reel metrics. 3 cr / reel
/v1/tiktok/channel-stats
TikTok Channel Stats API Follower counts and profile metadata for a TikTok account. 3 cr / profile
/v1/twitter/profile
X/Twitter Profile API Follower counts, bio and profile metadata for an account on X. 5 cr / lookup

More Instagram endpoints

/v1/instagram/transcript Full transcript of an Instagram reel with timestamped segments. 40 credits / reel /v1/instagram/summary Short AI summary of an Instagram reel, built on its transcript. 42 credits / reel /v1/instagram/stats Likes, comments and view counts for an Instagram post or reel. 1 credit / post /v1/instagram/comments Paginated comments on an Instagram post; charged per comment returned. 3 credits / comment /v1/instagram/channel-posts Latest posts from an Instagram account with per-post metrics. 2 credits / post /v1/instagram/channel-reels Latest reels from an Instagram account with per-reel metrics. 3 credits / reel /v1/instagram/reels-search Keyword search over Instagram reels. 3 credits / result /v1/instagram/download Resolves a downloadable media URL for an Instagram reel (URL expires within 1h). 40 credits / video

Try the Instagram Channel Stats endpoint free

100 trial credits on signup — no card, key on screen immediately.

1 Sign up free no card · 30 seconds
2 Copy your key sk_live_...
3 GET the endpoint /v1/instagram/channel-stats
Get your free API key