Instagram Graph API vs a scraper API: limits, pricing, when to use which

An honest comparison of Meta's Instagram Graph API and third-party scraper APIs: what data each can access, setup and review effort, rate limits, cost and the use cases where each one wins.

By the Scrape Everything team · · 5 min read

If you are building anything with Instagram data, you will hit this question early: should you use Meta's official Instagram Graph API or a third-party scraper API? The two are often discussed as alternatives, but they solve different problems. Picking the wrong one costs weeks: either waiting for an app review that will not give you the access you need, or building on scraped data when your product really needed first-party access.

This post compares them on what matters in practice. It is written by a scraper API provider, so we have tried to be explicit about where the official API is the better choice.

The short answer

  • Use the Graph API when your users connect their own professional Instagram accounts to your app and you act on their behalf: publishing, reading their insights, replying to their comments and messages.
  • Use a scraper API when you need public data about accounts that are not your users: creator discovery, competitor tracking, research, enrichment.
  • Many products use both: the Graph API for connected accounts, a scraper API for everyone else.

What the Instagram Graph API is

The Instagram Graph API is Meta's official API for Instagram professional accounts (business and creator accounts). Your app authenticates the account owner through Meta's login flow, requests specific permissions, and then reads or writes data for that account. Typical capabilities include publishing media, reading the account's media and comments, moderating comments, reading insights such as reach and impressions, and handling messages through the messaging APIs.

Meta also offers a business discovery feature that lets a connected professional account look up basic public information about other professional accounts, such as follower counts and recent media. It does not cover personal accounts, and it is still tied to your own connected account and Meta's permission model.

Meta changes its APIs, permissions and review requirements regularly (the older Basic Display API, for example, has been retired). Always check Meta's current developer documentation before you plan around a specific capability.

What a scraper API is

A scraper API reads the data that Instagram shows publicly to logged-out visitors and returns it as structured JSON. You send a username or a post URL, and the provider handles fetching, proxies, retries and parsing. No Instagram account or Meta app is involved on your side. The flip side: you only get public data. No insights, no private accounts, no direct messages, no publishing.

Side by side

Instagram Graph APIScraper API
Whose dataProfessional accounts that authorized your appAny public account or post
Personal accountsNoPublic profile data, yes
Private data (insights, DMs)Yes, for connected accounts with permissionNo
Publishing and moderationYesNo (read only)
SetupMeta app, business verification and app review for most permissionsSign up, create an API key
Time to first requestDays to weeks, depending on reviewMinutes
Rate limitsMeta's usage-based limits per app and accountProvider's per-account limits
CostNo direct fee from MetaPay per request or subscription
StabilityVersioned, with deprecation schedulesDepends on provider; platform changes can break fields
TermsMeta Platform Terms and developer policiesProvider terms; you remain responsible for lawful use

Where the Graph API wins

  • Social media management tools. Scheduling posts, replying to comments and reading insights for clients' accounts requires first-party access.
  • Analytics for your own accounts. Reach, impressions, saves and audience demographics are private metrics. Only the account owner (and apps they authorize) can see them.
  • Messaging and customer support. Handling Instagram DMs is only possible through Meta's messaging APIs.
  • Long-term stability. Versioned endpoints with deprecation notices are easier to maintain than any scraped source.

Where a scraper API wins

  • Influencer discovery and vetting. The creators you evaluate have not connected their accounts to your app, and many are not professional accounts at all.
  • Competitor and market monitoring. Tracking other brands' public posts and engagement over time.
  • Research and journalism. Collecting public posts and comments for analysis, within the bounds of applicable law and ethics review.
  • Lead and CRM enrichment. Adding public bio, link and follower data to company or creator records.
  • Prototyping. Testing an idea in an afternoon instead of waiting for app review.

Rate limits and scale

The Graph API's limits are calculated by Meta based on your app and the accounts using it, and the exact formula has changed over the years. In practice, it scales well for operations on connected accounts but is not designed for looking up thousands of arbitrary accounts.

A scraper API's limits are set by the provider and are usually simple: requests per minute and concurrent requests per account. On Scrape Everything, for example, free accounts get 60 requests per minute and 5 in parallel, and paid accounts 300 per minute and 20 in parallel, with higher limits on request. The real constraint at scale is cost, not limits.

Cost

Meta does not charge for Graph API calls, but it is not free in practice: you invest engineering time into the app review process, business verification and keeping up with policy changes. For a product built around connected accounts, that investment is unavoidable and worth it.

Scraper APIs charge per request or by subscription. On Scrape Everything, a profile lookup costs 1 credit; credit packs bring that to roughly $0.90 to $1.56 per 1,000 requests, failed requests are refunded and repeated reads within your cache window are free. Our pricing comparison shows how other providers charge.

Data quality and freshness

Both approaches return live data. The Graph API returns exact metrics for connected accounts, including some that are not visible publicly. A scraper API returns what the public page shows: exact counts for most fields, but some values may be hidden by the account owner (for example when like counts are disabled on a post). Good scraper APIs make these cases explicit, for instance with a like_and_view_counts_disabled flag rather than a misleading zero.

Compliance

With the Graph API, the rules are Meta's platform terms plus the consent you collect from your users. With a scraper API, the provider's terms apply, and you are responsible for how you use the data: public data about people is still personal data under laws like the GDPR. We cover this in more depth in Is scraping public social media data legal? (not legal advice).

A simple decision checklist

  1. Do the accounts you need data from belong to your users, and will they log in to your app? If yes, start with the Graph API.
  2. Do you need private metrics, publishing or messaging? Graph API only.
  3. Do you need data about accounts that are not your users, including personal accounts? Scraper API.
  4. Do you need it this week, without app review? Scraper API, and plan the Graph API integration in parallel if you will need it later.

If a scraper API fits your case, the Instagram Scraper API covers profiles, posts, reels, comments and reels search, and the profile scraping tutorial gets you to a working integration in Node.js or Python. New accounts get 100 free credits.

More from the blog

Start with 100 free credits.

Continue with Google, create an API key and send your first request in under a minute.

Get 100 free credits