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.
The difference
On the left, what a headless browser hands you. On the right, what the endpoint hands you.
<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"... {"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"}
The payload
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.
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.
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.
Total posts on the grid. Counts carousels as one, and does not include stories or archived posts.
Pricing
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 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.
Entry price, side by side
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
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.
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
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
100 trial credits on signup — no card, key on screen immediately.