Instagram does not give you a public content API for arbitrary creators. Meta's Graph API reads accounts you manage, behind app review and business verification. If you need a competitor's follower count, a creator's recent reels, or a reel transcript for a brand-safety pipeline, you are shopping for an Instagram scraper or third-party Instagram data API, not Graph.
I have maintained Instagram scrapers long enough to know the usual failure mode: GraphQL shapes move, login walls appear mid-cron, and your dashboard shows zero while the mobile app still shows posts. The APIs below are not interchangeable. Some are Instagram-only REST products, some are actor runtimes, some are proxy farms with social endpoints bolted on. The useful ones return typed JSON for profiles, posts, and reels without making you own the anti-bot stack.
This is a pricing and coverage comparison, with vendor prices checked in September 2026. Re-check each vendor's pricing page before you commit budget. Where I could not verify a number live, I say so.
Social Fetch is my pick when Instagram is one platform among several, or when you want synchronous REST with the same { data, meta } envelope as TikTok and YouTube. One API key covers 23 platforms and 232 documented operations, failed lookups are free, and pay-as-you-go credits never expire. Profile lookups are 1 credit on a completed request, and pricing runs from $1.35 per 1,000 credits on the Scale annual plan ($1.64 per 1,000 on the Scale pack). We ship raw metrics, not server-side engagement_rate. Apify and Bright Data fit teams that need custom Actors or enterprise proxy volume. Use the Graph API when you only need accounts you own.
The 5 Instagram data APIs at a glance
Social Fetch: synchronous REST Instagram routes inside a 23-platform catalog.
Apify: actor marketplace for custom Instagram scrapers.
Bright Data: enterprise proxy and dataset infrastructure.
SociaVault: pay-as-you-go credits across mainstream social platforms.
RapidAPI: marketplace discovery across independent publishers.
| API | Best for | Instagram focus | Starting price | Free tier |
|---|---|---|---|---|
| Social Fetch | Sync REST, multi-platform schema, AI agents (MCP) | Profiles, posts, reels, search, transcripts, highlights | $14 / 1k credits (Starter); from $1.35 / 1k on Scale annual | 100 credits, no card |
| Apify | Custom Actors, batch jobs | Actor-dependent | Per Actor; pricing varies by publisher | Free plan with monthly credit |
| Bright Data | Enterprise volume | Dataset and scraper products | $1.50 / 1k records pay-as-you-go† | Trial; check their site |
| SociaVault | Simple pay-as-you-go | Core social including Instagram | $29 / 6k credits† | Check their site |
| RapidAPI | Prototyping | Varies by listing | Varies | Varies |
† Competitor prices checked September 2026 against each vendor's public pricing (SociaVault's figures date from July 2026). Verify on the vendor site before budgeting, because roundups drift.
For multi-platform context beyond Instagram, see 10 best social media scraping APIs in 2026.
What makes a good Instagram data API
These are the evaluation criteria I apply to every entry, and the same ones I used for the ranking below.
Documented Instagram routes: profiles by handle, posts, reels, comments, search, transcripts. Count paths in a public docs index, not a landing-page claim.
Typed outcomes: private and missing accounts should return an explicit status, not an empty object that looks like a deleted creator.
Sync vs async: can your onboarding flow wait on one HTTP response, or do you poll a dataset run?
Pricing: credits that never expire vs monthly resets; surcharges for media download or JS rendering; whether failed lookups bill.
Multi-platform tax: if next quarter adds TikTok and YouTube, do you keep one key and one parser?
Agent readiness: OpenAPI or MCP, deterministic JSON, a
requestIdyou can paste into support.
None of that shows up on a pricing grid. It shows up three months in when a private account needs different handling from a deleted one, or when finance asks why the invoice doesn't match your request logs.
Official Graph API vs third-party data APIs
Instagram does not run one API. It runs two different products that get shopped for under the same search terms.
Meta's Instagram Graph API is the first-party path for businesses and creators to publish, moderate comments, and read insights for an account they own. To call it you need a Business or Creator account, a connected Facebook Page, an app that has passed Meta App Review, and an OAuth grant from the account owner. Once you clear that bar, Graph gives you a stable, sanctioned way to manage your own presence. It does not give you a competitor's follower count, a stranger's Reels tab, or hashtag search results. Graph only ever exposes data for the specific account that authorized your app.
The older Instagram Basic Display API is deprecated in Graph's favor and was narrower even at its peak: it returned a personal user's own media, never anyone else's. Any pitch that leans on "Basic Display" in 2026 is selling something Meta has been sunsetting for years.
Third-party data APIs, Social Fetch included, solve the other problem: enrichment of a public account you do not manage. No App Review, no linked Business/Creator account, no Facebook Page, no OAuth consent screen from the person you are looking up. You authenticate with your own API key and read whatever Instagram already renders on the public web: a profile card, a public post, a hashtag's public posts, a Reel's transcript.
Publish, moderate comments, or read Insights on an account you administer: use Meta's Graph API (App Review plus a linked Business/Creator account).
Follower count, bio, or recent posts for a competitor or creator you don't manage: use a third-party data API.
A personal account's own media, no publishing: Graph API only, because Basic Display is deprecated.
Hashtag or keyword discovery across accounts you don't own: use third-party search routes, since Graph has no public discovery surface.
Reel or post transcript for brand-safety or content review: use a third-party transcript route, since Graph has no equivalent for arbitrary URLs.
Story highlight albums on a public profile: use third-party highlights routes, since Graph exposes owned-account media only.
If a vendor claims "official Instagram API access" for arbitrary public profiles, ask which Meta product and which OAuth grant back that claim. There isn't one that covers accounts you don't manage, and that gap is the entire reason a data-API market exists.
Instagram pricing compared
The at-a-glance table above lists starting prices. Billing models differ more than headline rates do, so this is how each vendor charges for an Instagram lookup, using the same figures I use on this site's own compare pages.
Social Fetch: flat pay-as-you-go credits, 1 credit per completed lookup, failed lookups not charged. Credits run from $1.35 per 1,000 on the Scale annual plan and $1.64 per 1,000 on the Scale pack. 100 free credits, no card.
Apify: priced per Actor (pay-per-event, pay-per-usage in compute units, or rental), so there is no single number for Instagram. Free plan with monthly credit.
Bright Data: billed per record. Every post, comment or profile returned counts as a record.
SociaVault: pay-as-you-go packs whose credits never expire.
RapidAPI: per-listing subscriptions set by each publisher. Comparable social scrapers commonly list $2.50 to $4+ per 1,000†.
† Competitor figures checked September 2026 (SociaVault July 2026) and confirmed against each vendor's public pricing, but not all are Instagram-specific quotes. Confirm on the vendor's own pricing page before you budget.
Two patterns hold across every vendor here: nobody charges Instagram a fundamentally different rate than their other social platforms, and few publish one number that survives contact with a real Actor, listing, or tier selection. If your finance team wants a predictable number, start with flat-credit providers and model your actual endpoint mix.
Ranked: the 5 Instagram data APIs
The order below follows the criteria above: Instagram coverage, typed outcomes, sync access, billing clarity, multi-platform reach, and agent readiness. I built Social Fetch, so weigh my ranking accordingly and check the claims against the docs.
1. Social Fetch
Best for: product teams and agents that need Instagram profiles, posts, reels, highlights, search, or transcripts inside a multi-platform app, without a Meta Business/Creator account or App Review for accounts they don't own.
Social Fetch exposes more than thirty Instagram operations under /v2/instagram/*: profile by handle, profile URL or numeric user id (optionally with recent media and the About this account details), a profile's posts, Reels and tagged posts as cursor-paginated lists, a profile's live Stories, the accounts a profile follows, a single post or Reel by shortcode, URL or media id (with an optional hosted-media-download surcharge), comments and replies, a post/Reel transcript, a profile's highlight albums plus one album's story items by id, an engagement audit, hashtag and location feeds, audio search, and discovery routes (account search, hashtag search, Reel keyword search, and a trending-Reels sample). Every route returns the same { data, meta } envelope as TikTok, YouTube, and the rest of the catalog.
Strengths: one key and one response envelope across platforms, typed lookup outcomes, and no charge for failed lookups.
data.lookupStatuson profile and posts lookups (found/private/not_found) instead of an empty object masquerading as a deleted account.One profile media route with a
tab(posts,reelsortagged), cursor-paginated, so you're not scraping one mixed list and guessing which items are Reels.Saved highlight albums as a first-class pair of routes (list albums, then open one by id) rather than bolted onto the profile card.
Transcripts return the full text plus timed segments, and
textisnullwhen a video has no speech instead of an empty string standing in for a failure.meta.requestIdandmeta.creditsChargedon every response.Failed lookups are free: you pay only for completed lookups.
Same API key as the other 22 catalog platforms, with one schema and one credit balance.
An MCP server for AI agents and a playground, plus 100 free credits on signup with no card. Pay-as-you-go packs don't expire.
Limitations: this is public enrichment only, the catalog is 23 platforms, and a few heavier routes cost more than one credit.
This is public enrichment, not Graph API publishing, comment moderation, or Insights on an account you administer.
The catalog is 23 platforms, not forty, so a niche network may not be there.
Live Stories (
GET /v2/instagram/profiles/{profile}/stories) are covered while they last, in the 24 hours after posting. Once they expire, only saved highlight albums remain.include=filesonGET /v2/instagram/media/{media}adds a real surcharge (10 credits per started 16 MB of hosted files, so 11 total for most posts), so don't default it on unless you need permanent hosted media.Post-detail, comment and transcript lookups collapse private/restricted access into
not_foundrather than a distinctprivatevalue. Call the profile route first if you need to tell those apart.Coverage follows what Instagram shows publicly. Gated or logged-in-only content is out of scope.
Pricing: Free (100 credits), then Starter $14 (1,000 credits), then larger packs on pricing, from $1.35 per 1,000 credits on the Scale annual plan and $1.64 per 1,000 on the Scale pack. Instagram operations are 1 credit per completed lookup, with a few exceptions: the engagement audit is 5 credits for an audited profile (1 for a private or missing one), GET /v2/instagram/media/{media}?include=files is 11 credits total for most posts (10 more per started 16 MB hosted), and each include on GET /v2/instagram/profiles/{profile} adds 1. Paginated list routes bill per page, and a list that ends on an empty page still bills it. Trust meta.creditsCharged over any spreadsheet estimate.
Verdict: Default pick when Instagram is one surface in a multi-platform product, or when you want synchronous REST JSON without owning a GraphQL-shape scraper.
See the Instagram hub for the full route list, params, and response fields.
2. Apify
Best for: scheduled scrapes, niche field extraction, and jobs you're fine running as a start-run-poll-download loop rather than a single HTTP call.
Apify hosts many Instagram Actors from different publishers (profile scrapers, post scrapers, hashtag scrapers), each with its own input schema and pricing. You start a run, poll status, then download a dataset. That model fits batch ingestion well; it fits a live profile card in a signup flow poorly.
Strengths: Actor marketplace breadth. Useful when no managed REST route exposes the specific field you need. Scheduling and dataset storage are built into the platform.
Limitations: You're buying a runtime, not one Instagram schema, so Actor quality, maintenance, and pricing model vary by publisher. Each Actor's author picks the pricing model: pay-per-event Actors include platform usage, while pay-per-usage Actors bill compute units (memory × runtime), so on those a slow proxy day can move your invoice without touching request count. Sync product paths that need one HTTP round trip fit poorly here.
Verdict: Right for batch and custom Instagram scrapes. A weaker fit as your only integration if you want a typed client in a request handler. Longer take: Social Fetch vs Apify.
3. Bright Data
Best for: high-volume teams with budget for proxy networks, dataset pipelines, and sales-led procurement.
Bright Data sells unblock and collection infrastructure; Instagram scraping is a product built on top of that stack. You're buying residential IPs, browser farms, and async dataset exports, which is real value if you already run that infrastructure for non-social scraping and more than you need if Instagram enrichment is your one feature.
Strengths: Volume pricing and success-rate SLAs that large data orgs already understand. Procurement-friendly paperwork.
Limitations: No unified schema across social platforms by default. Pricing is $1.50 per 1,000 records pay-as-you-go (checked September 2026), and every post, comment or profile returned counts as a record, so a single lookup can bill many records. Spending-limit tiers can gate access, and going over the limit stops requests until someone raises it. You still own parsers unless you buy a higher-level dataset product.
Verdict: Justified when volume and procurement dominate the decision. More than a startup shipping one Instagram enrichment feature needs. See Social Fetch vs Bright Data.
4. SociaVault
Best for: a short list of mainstream platforms, including Instagram, and a low-friction pay-as-you-go signup you can stand up in an afternoon.
SociaVault sits in the same category as Social Fetch: credit-based pay-as-you-go REST, not a proxy farm or Actor runtime. Its pack ladder runs from $29 for 6k credits up to larger packs, and the Pro pack is $199 for 75k credits ($2.65 per 1,000, checked July 2026).
Strengths: Simple signup, non-expiring credits, no required subscription.
Limitations: No normalized response envelope or official TypeScript SDK that I could find, and some endpoints cost more than 1 credit (their docs list demographics and analytics routes at 20+ credits). Model your actual endpoint mix, not the headline "most endpoints are 1 credit" claim. They market 25+ platforms, so check depth on the Instagram routes you will actually call.
Verdict: A credible low-volume alternative. Compare envelope shape and your specific endpoint mix before you standardize on it.
5. RapidAPI
Best for: finding a niche Instagram endpoint over a weekend without committing to a vendor or waiting on anything.
RapidAPI hosts dozens of third-party Instagram scrapers under one billing dashboard, each from a different independent publisher with its own schema, rate limit, and reliability record. Discovery is fast: you can try three different Instagram listings in an afternoon. Production is where the marketplace model gets expensive: separate subscriptions, inconsistent JSON shapes, and support tickets that route through a middleman to a publisher who may or may not still maintain the listing.
Strengths: Fast shopping, low commitment for disposable experiments, useful when Instagram is one tiny input among many unrelated RapidAPI line items you already pay for.
Limitations: No shared envelope across listings. Publisher churn is a real risk, since a listing that worked last month can silently break or disappear. Multi-platform products pay again per platform, each with a separate subscription.
Verdict: Keep it for exploration. Prefer a first-party public-data API once Instagram becomes load-bearing in your product. Longer take: Social Fetch vs RapidAPI.
What Social Fetch returns for an Instagram profile
Successful responses wrap the payload in the same envelope as every other platform.
Follower and post counts above are illustrative of shape, not a live scrape from this article's publish date, so call the route yourself for a current number. Branch on data.lookupStatus before you write a row; it distinguishes a live public account from private or not_found instead of returning an empty object for all three. Log meta.requestId and trust meta.creditsCharged, not a pre-computed estimate.
Related docs: Get Instagram profile, profile media, post/Reel transcript. Full hub: /platforms/instagram.
Free Instagram tools before you buy
If the job is a one-off check, you don't need an API key yet.
Instagram profile viewer: paste a public handle, read the profile card in the browser.
Instagram engagement rate calculator: computes engagement from public metrics without wiring an API (the production API returns raw counts, not a server-side rate).
Instagram Reel transcript tool: paste a public Reel or post URL, copy the spoken-text transcript.
Each free tool runs the same production route behind Turnstile and per-IP rate limits, which makes it good for a spot check and not for a cron job. When you need pagination, volume, or warehouse inserts, move to the API on /platforms/instagram. New accounts get 100 free credits with no card.
Which API fits which workflow
Multi-platform product feature, same JSON shape: Social Fetch.
Agent calling Instagram and other platforms: Social Fetch MCP and its unified schema.
Custom Actor, scheduled batch dump, browser control: Apify.
Enterprise proxy volume, procurement-led budget: Bright Data.
Few platforms, simple pay-as-you-go signup: SociaVault.
Owned Business/Creator account for publishing, comment moderation, Insights: Meta Graph API.
Weekend prototype, one niche endpoint, no commitment yet: RapidAPI.
One URL in a browser, no API key: free Instagram tools.
Agents and multi-platform apps break the same way: a field name that means one thing on Instagram and something else on TikTok. One tool definition should map to metrics.followers on both, not a conditional branch per platform.
Frequently asked questions
What is the best Instagram data API in 2026?
It depends on your criteria. For synchronous REST with Instagram inside a 23-platform catalog (232 documented operations), the same { data, meta } envelope as TikTok and YouTube, free failed lookups and non-expiring credits, Social Fetch is my pick. I built it, so verify against the docs. Apify and Bright Data fit custom Actors or enterprise proxy volume. SociaVault is a pay-as-you-go peer.
Is there an official API for any public Instagram profile?
No. Meta's Graph API covers accounts you manage, after App Review, with a linked Business or Creator account and a connected Facebook Page. The older Basic Display API is deprecated and only ever returned a personal user's own media. Neither is a general "look up any public handle" API. Third-party data APIs fill that gap for publicly visible content. Read Meta's Terms and talk to counsel for your use case.
Does Social Fetch cover Instagram Reels and Reel transcripts?
Yes. Profile Reels page separately from the mixed feed (GET /v2/instagram/profiles/{profile}/media?tab=reels, with metrics.playCount per clip), and GET /v2/instagram/media/{media}/transcript returns the spoken text with timed segments for a post or Reel, given its shortcode, URL or media id. A clip with no speech returns text: null, and a clip that's too long fails with a typed HTTP 400 instead of a null string.
Does Social Fetch return Instagram Stories?
Yes, both kinds. GET /v2/instagram/profiles/{profile}/stories returns a profile's live Stories, the ones posted in the last 24 hours, oldest first (an account with nothing live returns an empty list). Saved story highlight albums are separate: GET /v2/instagram/profiles/{profile}/highlights lists a profile's public albums, and GET /v2/instagram/highlights/{highlightId} opens one album into its story items (media URLs, timestamps, link stickers). Live Stories disappear after 24 hours, so poll if you need to catch them before they expire.
How much does Social Fetch charge for Instagram?
Most Instagram operations are 1 credit per completed lookup, including each page of a paginated list, and failed lookups are not charged. Credits run from $1.35 per 1,000 on the Scale annual plan and $1.64 per 1,000 on the Scale pack. The exceptions are the engagement audit (5 credits for an audited profile; a private or missing profile is 1), GET /v2/instagram/media/{media}?include=files (10 credits per started 16 MB of hosted files, 11 total for most posts) and the include extras on GET /v2/instagram/profiles/{profile} (1 credit each). Signup includes 100 free credits and pay-as-you-go packs don't expire. Always confirm with meta.creditsCharged. See pricing and the Instagram hub.
Should I build my own Instagram scraper?
Build your own for a one-off research script. Use a managed API for anything production. GraphQL shape changes, login walls, and anti-bot pressure on Instagram specifically tend to cost more engineering time than credits within a few months.
What about compliance?
Social Fetch returns publicly visible Instagram data. Compliance with Instagram's terms and applicable law is your responsibility, and we don't provide legal advice. See our docs.
Can I call Instagram, TikTok, and YouTube with one integration?
Yes, if you use a vendor that normalizes the schema. Social Fetch's Instagram, TikTok, and YouTube routes share the same { data, meta } envelope and the same metrics.followers-style field names, so one parser handles all three. Marketplace listings on RapidAPI and most Actor-based scrapers do not share a schema across platforms, so expect a separate adapter per network there.
If you want to verify the claims in this post, open the Instagram hub, try the free profile viewer, paste a handle into the playground, or grab 100 free credits on pricing. For Apify, Bright Data, and RapidAPI scenarios with worked numbers, use the compare hub.
Founder of Social Fetch. Writes about social-data APIs, reliability, and the production incidents that forced better timeouts, envelopes, and billing.
Related articles
Questions about this post? Contact us.