Instagram scraper API

An Instagram scraper API reads public profiles and returns them as structured rows — display name, biography, verified and private flags, account category, link in bio, follower, following and post counts, and the profile picture — for a list of usernames or profile URLs.

Two things this deliberately does not do, and it is better to know now than after integrating. It reads public pages only: no login, no cookies, no session, no browser. And it does not collect post-level data — individual posts, likes and comments sit behind Instagram's authenticated endpoints, and pretending otherwise would mean shipping something that breaks the first time Meta rotates a token. What you get is the profile layer, accurately, at $0.004 per delivered profile.

$0.004 per delivered profile, up to 50 profiles per run. Nothing delivered means nothing charged.

How the Instagram scraper API works

You post an array of usernames — bare handles or full profile URLs, both normalised — and each becomes one public-profile read through a residential exit. Up to 50 profiles per run.

The engineering choice that matters here is what is absent. There is no headless browser, no logged-in session and no cookie jar. Session-based Instagram scrapers work impressively until the account is flagged, and then they work not at all; worse, an account used for scraping is an account that can be disabled, taking whatever else it was used for with it. Reading only what an anonymous visitor sees is a narrower dataset with a much longer shelf life.

Private accounts come back with is_private true and the counts Instagram still shows publicly. That is a fact about the account, not a failure, and it is delivered as such.

Inputs

usernames is the only required input: an array of handles or profile URLs. max_results caps how many of them the run actually fetches, which is a useful budget guard when the list comes from another job. country picks the exit region — worth setting if you care about seeing the profile the way a particular market's visitors do.

What one profile looks like

One row per profile. followers, following and posts are the counts as published. category is the business or creator category Instagram displays, which is often the single most useful field for filtering an influencer list. external_url is the link in bio — the field that turns a social profile into a company you can look up. verified and is_private are flags rather than inferences. likes is present for platforms that publish a lifetime total and is null on Instagram, because Instagram does not.

What the Instagram scraper API costs

$0.004 per delivered profile ($4 per 1,000). Nothing delivered means nothing charged, and the $2 monthly free credit covers roughly 500 profiles here. Volume tiers take up to 30% off.

$0.004 per delivered profile, $4 per 1,000 — higher than the search collectors because a profile read is a heavier fetch and Instagram forces more retries than most targets. Screening a 2,000-handle influencer list is $8 at list price, once, and the result is a filterable table instead of two days of tab-opening.

Handles that do not resolve are not billed. The free $2 monthly allowance covers about 500 profiles.

Instagram scraper API vs the Instagram Graph API

Meta's Graph API is the official route and it is genuinely good for the job it was built for: managing accounts you control. To use it you need a Facebook app, an Instagram Business or Creator account connected to a Page, an access token, and — for most useful permissions — to pass App Review. Even then, the data you can read about accounts you do not own is narrow, and the Business Discovery endpoint that offers a slice of it requires your own business account as the caller.

So the split is clean. Managing your own presence, publishing, reading your own insights: Graph API, every time. Screening two thousand creators you have no relationship with, or monitoring competitors: the Graph API structurally does not do that, and no amount of App Review changes it. This collector covers the public profile layer for accounts you do not own — which is precisely the gap.

Versus writing your own Instagram scraper

The GitHub Instagram scrapers that rank for this query mostly take one of two approaches, and both have a known ending:

Beyond the approach, the recurring problems are consistent: aggressive per-IP rate limits that need a residential pool, a hydration payload that moves regularly, and the fact that a blocked request returns a page rather than an error, so naive scrapers quietly record zero followers.

If you want the exits without the collector, our residential proxies are the same network.

What people build with it

Influencer screening

Turn a list of handles into a table with follower counts, category and link in bio, then filter instead of browsing. The bio link is usually the fastest route to who the creator actually is commercially.

Competitor and brand tracking

Re-run the same handle list on a schedule and diff followers and posts to get growth and publishing cadence without following anyone.

Lead qualification

For B2C and local businesses, the Instagram profile is often more current than the website. category and external_url enrich a lead record cheaply.

Audience research

Profile-level data across a segment of accounts shows how a niche describes itself — the categories and bio patterns that a survey would take months to surface.

Limits, reliability and the legal bit

Up to 50 profiles per run; larger lists are more runs, parallel up to your plan's rate limit (60 requests/minute on pay-as-you-go, up to 1,200 on the top tier). Post-level data is out of scope by design, not by omission.

This is the collector where the legal note is not boilerplate. Public profile data is public, and courts have generally been reluctant to treat scraping public pages as unlawful access — but a profile describes a person, which puts it squarely inside GDPR, CCPA and their equivalents regardless of how public it was. You need a lawful basis to process it, the individual retains rights over it, and Instagram's terms separately restrict automated collection. Screening business and creator accounts for commercial partnership is a very different risk profile from building a database of private individuals. Take proper advice; this is not it.

FAQ

Is there a free Instagram scraper API?

There is a free allowance of $2 a month with no card, about 500 delivered profiles at $0.004 each. Free scrapers exist on GitHub; most either log in — which risks the account being disabled — or drive a headless browser, which is slow and expensive per profile.

Does it need an Instagram login or cookies?

No, and that is deliberate. It reads only what an anonymous visitor sees. Login-based scrapers get more data and get accounts disabled; this trades scope for a dataset that keeps working.

Can it get posts, likes or comments?

No. Post-level data sits behind Instagram's authenticated endpoints and is not collected. This is the profile layer: identity, counts, category, bio and link. If you need post data for accounts you own, Meta's Graph API is the correct route.

How much does it cost?

$0.004 per delivered profile — $4 per 1,000 — with no subscription. Handles that do not resolve are not billed. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.

What about private accounts?

They come back with is_private set to true, along with whatever counts Instagram still displays publicly. That is a fact about the account rather than an error, so it is delivered as a row rather than a failure.

Is scraping Instagram legal?

Collecting publicly visible data is generally lawful in most jurisdictions and courts have been reluctant to treat public-page scraping as unlawful access — but profile data is personal data under GDPR and similar laws, so you need a lawful basis to process it, and Instagram's terms restrict automated collection. Business and creator accounts are a materially lower-risk category than private individuals. Get proper advice.

How do I use it from Python?

One POST with requests — no SDK. Send an array of usernames to the collector's run endpoint with your key in the Authorization header. The Python, Node and cURL forms are on this page.

Related scrapers

If you're an AI agent

Skip the marketing. QuantumProxies.io publishes a machine-readable site map, Markdown for every page, a free MCP server, and APIs billed from the same balance as your proxies.

Connect in one command: npx -y quantumproxies-mcp