Engineering

Instagram API pricing in 2026: what it actually costs to post

Meta charges nothing for the Instagram API. What you pay for is a professional account, App Review, a 100-post daily ceiling, 60-day tokens and the engineering around the container publishing flow.

The Instagram API has no price. Meta publishes no rate card, bills nothing per call and has no paid tier. If you searched for Instagram API pricing expecting an invoice from Meta, there is none. What you pay for instead is access and engineering: an Instagram professional account, a Meta app that has passed App Review, a ceiling of 100 published posts per account per day, tokens that expire every 60 days, and a three-step container flow for every post. This post prices those out for a team that wants to publish to Instagram, not scrape it.

Last verified: September 2026, against Meta's developer documentation. Every number below links to the page it came from.

Short answer: is the Instagram API free?

Yes. Meta does not charge for the Instagram API, the Instagram Graph API or any permission on it. There is no free tier because there is no paid tier. The same goes for the wider platform: "Meta API pricing" is not something anyone pays, outside the Marketing API, where you pay for ads rather than calls.

Meta gates access with requirements instead of money: the right kind of account, an app with approved permissions and a verified business, each on Meta's clock. Once you are in, limits apply per account and per app, and the publishing flow is stateful enough that most teams underestimate it. So the Instagram API cost is zero in dollars to Meta and non-zero in everything else.

Which Instagram API are we talking about?

"Instagram API" covers three things, and pricing questions get muddled when they are mixed up.

Instagram API with Instagram Login. Users sign in with Instagram credentials, calls go to graph.instagram.com, and no Facebook Page is required. It cannot access ads or product tagging. This is the route Outstand uses.

Instagram API with Facebook Login. Users sign in with Facebook, calls go to graph.facebook.com, and the Instagram account must be linked to a Facebook Page. It adds hashtag search, product tagging and partnership ads. This is what most people mean by "Instagram Graph API", and Instagram Graph API pricing is the same: nothing.

Instagram Basic Display API. Retired. Meta's announcement states it became unavailable on December 4, 2024, and that no consumer-facing Instagram API remains. If you searched "instagram basic display api deprecated": migrate to one of the two routes above and expect to need a professional account.

Both live routes share the same content publishing documentation, the same limits and the same container model. The platform overview has the full feature matrix.

Instagram API pricing breakdown: Meta's fee, account requirements, app review and the engineering bill

Here is what a direct Graph API integration costs once you stop looking for a price and start listing prerequisites. Engineering effort is described, not priced, because it depends on your team. The point is that every row after the first is non-zero.

Line item

Meta's fee

What it really costs you

API calls

$0

Nothing per call, ever

Professional account

$0

Every account you publish for must be Business or Creator

Facebook Page link

$0

Required on the Facebook Login route only

Meta developer app

$0

Setup, redirect URIs, privacy policy, data deletion callback

App Review

$0

Screencast, written use case, a review cycle on Meta's clock

Business Verification

$0

Legal documents; required when users without a role on your app use it

OAuth and tokens

$0

Exchange, encrypted storage, a refresh job that must run before day 60

Container flow

$0

Create, poll, publish per post; carousels multiply it per item

Media hosting

$0

Meta fetches from a public HTTPS URL you host

Rate limits

$0

Per-account publishing ceiling, per-app budget, cross-tenant queueing

Breaking changes

$0

Versions retire on a schedule; scope names were renamed in 2025

Two rows gate everything else.

App Review. Standard Access is the default and only covers accounts you own or manage. Meta's overview says Advanced Access "is the access level required if your app serves Instagram professional accounts that you don't own or manage", and Advanced Access requires App Review. In development mode your app can publish only for people who hold a role on it: fine for a prototype, useless for customers.

Business Verification. Meta's Business Verification page requires it whenever an app requests advanced access, and waives it only when "your app will only be used by app users who have a role on the app itself". You will need legal documents for the business that owns the app. Meta publishes no turnaround time, so do not put one in your plan.

Instagram API access is therefore a sequence, not a signup: professional account, Meta app, permission request, review, verification, then code.

Instagram API rate limits and content publishing limits

There are two separate ceilings, enforced at different levels. All numbers are from Meta's docs as of September 2026.

Limit

Value Meta documents

Scope

Source

Content publishing limit

100 API-published posts per 24-hour moving period; carousels count as one

Per account

Content publishing

Platform rate limit

Calls within 24 hours = 4800 x number of impressions

Per account, through your app

Rate limiting

Container lifetime

Must be published within 24 hours or it expires

Per container

Content publishing

Carousel size

Up to 10 images, videos or a mix

Per post

Content publishing

Image format

JPEG only

Per media item

Content publishing

Long-lived token

60 days; refresh once it is 24 hours old and before expiry

Per user

Business login

The publishing limit is the one that catches schedulers. Meta's current wording:

Instagram accounts are limited to 100 API-published posts within a 24-hour moving period. Carousels count as a single post.

Note "moving period". There is no midnight reset; a burst of 100 posts at 09:00 blocks the account until 09:00 the next day. You can read the remaining quota with GET /{ig-user-id}/content_publishing_limit. Older write-ups still quote 25 or 50, which were earlier values. The documented figure today is 100.

The platform rate limit is the odd one. Meta ties the call budget to impressions: the number of times the account's content appeared on a screen in the last 24 hours, times 4800. A busy brand account gets a large budget; a brand-new test account gets a tiny one. Exceeding either ceiling returns error code 4 (app-level) or 17 (user-level), and the X-App-Usage and X-Business-Use-Case-Usage headers show how close you are.

If you want the Instagram Graph API rate limit as a single number, there is not one. There is a per-account publishing ceiling and an impression-scaled call budget, and you handle both.

What it costs to actually publish: the Content Publishing API step by step

There is no "create post" endpoint. The Instagram content publishing API is a container model: create a media container from a public URL, wait for Meta to fetch and process it, then publish it. Every post is at least two writes with a poll loop in between.

bash
1# 1. Create a container (a Reel here; use image_url for a photo)
2curl -X POST "https://graph.instagram.com/v24.0/{ig-user-id}/media" \
3  -d "media_type=REELS" \
4  -d "video_url=https://cdn.example.com/launch.mp4" \
5  -d "caption=Launch day" \
6  -d "access_token=$IG_LONG_LIVED_TOKEN"
7# -> { "id": "17895695668004550" }
8
9# 2. Poll until processing finishes (IN_PROGRESS -> FINISHED | ERROR | EXPIRED)
10curl "https://graph.instagram.com/v24.0/17895695668004550?fields=status_code&access_token=$IG_LONG_LIVED_TOKEN"
11
12# 3. Publish the container
13curl -X POST "https://graph.instagram.com/v24.0/{ig-user-id}/media_publish" \
14  -d "creation_id=17895695668004550" \
15  -d "access_token=$IG_LONG_LIVED_TOKEN"
16
17# How much of the 100-post window is left
18curl "https://graph.instagram.com/v24.0/{ig-user-id}/content_publishing_limit?access_token=$IG_LONG_LIVED_TOKEN"

What this flow makes you own:

  • Media hosting. The video_url or image_url must be publicly reachable over HTTPS. If your product stores uploads privately, you need a public or signed bucket in front of it.
  • Polling. Large videos can sit in IN_PROGRESS for minutes. Publishing before FINISHED returns error 9007.
  • Carousels. One child container per item with is_carousel_item=true, a parent with media_type=CAROUSEL and the children list, then publish the parent. Ten items means eleven containers.
  • Stories. media_type=STORIES, single image or video, no caption, no carousel.
  • Expiry. A container not published within 24 hours comes back EXPIRED and must be rebuilt.
  • Tokens. Refresh the 60-day token when it is at least 24 hours old and before it expires. Meta's docs state that tokens not refreshed within 60 days expire and cannot be refreshed. The first symptom is error 190, two months after launch.

The equivalent through Outstand is one call. The media URLs are the ones the Media API's confirm-upload step returned.

bash
1curl -X POST https://api.outstand.so/v1/posts \
2  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
3  -H "Content-Type: application/json" \
4  -d '{
5    "accounts": ["instagram"],
6    "containers": [
7      {
8        "content": "Three looks from the autumn shoot",
9        "media": [
10          { "url": "https://media.example.com/look-1.jpg", "filename": "look-1.jpg" },
11          { "url": "https://media.example.com/look-2.jpg", "filename": "look-2.jpg" },
12          { "url": "https://media.example.com/look-3.jpg", "filename": "look-3.jpg" }
13        ]
14      }
15    ],
16    "scheduledAt": "2026-09-15T14:00:00Z"
17  }'

Three images become a carousel, one video becomes a Reel, and instagram: { "publishAsStory": true } makes a Story. Outstand creates the containers, polls, publishes and refreshes the token. The full schema is in the Outstand API docs.

Hidden costs developers hit after launch

The prerequisites are the visible cost. These show up on the on-call rota.

Token expiry at day 60. A weekly refresh job is fine. A refresh job that silently stops after a deploy takes 60 days to be noticed, and by then every connected account needs to reauthorize.

Per-app budgets shared across tenants. In a SaaS, all customers publish through your Meta app. One customer running a bulk import can push the whole app into error 4, so you need a queue that throttles across accounts, not just within one.

Publishing-limit accounting. Retries count against the 100-post window. A flaky poll loop that re-creates containers burns quota without publishing.

Version and scope churn. Meta retires Graph API versions on a schedule (Outstand's engine calls v24.0 today), and the Instagram Login route renamed its scopes in January 2025 to instagram_business_basic, instagram_business_content_publish, instagram_business_manage_comments and instagram_business_manage_messages. Apps that hardcoded the old strings broke.

None of this is hard alone. It is many small stateful things that must all keep working, for a feature that is usually a checkbox in someone else's product.

Third-party Instagram API pricing compared

Most results for Instagram API pricing are not publishing products. They are data products, and the difference matters.

Option

What it does

Publishing

Access model

Pricing model

Instagram Graph API (direct)

Publish, insights, comments, messages for accounts that authorize your app

Yes

Your Meta app, App Review, Business Verification

$0 from Meta

Phyllo

Aggregated creator data from accounts the creator connects

No

Creator connects accounts

Vendor plans, see their site

HikerAPI, Data365 and similar

Scraped public profile and post data

No

No Instagram authorization

Per request or credits, see their sites

Outstand

Publish, schedule, comments, analytics through one API across 12 networks

Yes

Managed Meta app, or bring your own

$19/mo incl. 3,000 posts, then $0.007/post to 10,000 and $0.005 after; $249/mo unlimited add-on

Two takeaways. The scraper and data APIs are the wrong result for anyone searching "post to Instagram API": they read, they cannot write, and the scrapers operate outside Meta's terms. And the only ways to publish are the Graph API and something built on it. Outstand is the second thing, a managed layer using the Instagram API with Instagram Login on your users' behalf. Vendor prices change often, so the table points at their sites rather than quoting figures that will go stale.

Outstand pricing is per post, not per seat or per connected account, and the same request publishes to LinkedIn, X, TikTok and the rest. For agents rather than apps, the same account works with the social media API for AI agents and the MCP server.

When to build on the Graph API directly, and when not to

Building directly is the right choice more often than a vendor would like to admit. It is free, it is the source of truth, and nothing sits between you and Meta.

Build directly when:

  • You need Facebook Login route features: hashtag search, product tagging or partnership ads.
  • Instagram is your core product and owning the container flow and token lifecycle is worth it.
  • You already have a reviewed Meta app and a verified business.
  • You publish only for accounts you own, so Standard Access is enough.
  • Compliance rules forbid a third party from holding your users' tokens.

Use a managed API when:

  • Instagram is one of several networks and you do not want to write the publishing flow several times. Our guide to building on a social posting API covers the pattern.
  • You cannot wait for App Review and Business Verification before your first customer publishes.
  • The people maintaining the integration are not the people who wrote it.
  • You are shipping an AI agent and the tool needs to be one HTTP call with a stable schema.

If you already passed App Review, Outstand supports bringing your own Meta app, so the OAuth screen shows your brand. The route, permissions and error codes are on the Outstand Instagram integration page.

Instagram API pricing from Meta is zero. The cost is the weeks before your first post and the maintenance after it, and the decision is whether that work is your product or a distraction from it.


FAQ

Does Instagram have an API?

Yes, two: the Instagram API with Instagram Login (graph.instagram.com, no Facebook Page needed) and the Instagram API with Facebook Login (graph.facebook.com, Page required). Both serve professional accounts only. The consumer Basic Display API was shut down on December 4, 2024.

Is the Instagram API free?

Yes. Meta charges no license fee, no per-call fee, and publishes no price list. What costs time is access: a Business or Creator account, a Meta app, App Review for Advanced Access and Business Verification before you can publish for accounts you do not own.

What are the Instagram API limits for posting?

Meta documents 100 API-published posts per account within a 24-hour moving period, with carousels counting as one. Separately, the platform rate limit is 4800 calls times the account's impressions over the last 24 hours. Check remaining quota with GET /{ig-user-id}/content_publishing_limit.

How do I get Instagram API access?

Convert the account to a professional account, create a Meta app with the Instagram product, request instagram_business_content_publish (or instagram_content_publish on the Facebook Login route), pass App Review for Advanced Access and complete Business Verification. Until then the app works only for users with a role on it. Outstand skips this by letting your users authorize against an already-reviewed app.

Can I post to Instagram via the API without a Business account?

No. Meta requires a professional account, Business or Creator, on every route. Personal accounts cannot publish through any Instagram posting API, including third-party ones, because they all use the Graph API underneath.

How does Instagram API cost compare with a managed API?

Direct: $0 to Meta, plus App Review, Business Verification, hosting, the container flow, token refresh and rate-limit handling, built and maintained by you. Outstand: $19/month including 3,000 posts, then $0.007 per post up to 10,000 and $0.005 after, or $249/month for unlimited posting, with the Meta app and publishing flow handled for you. Other networks have similar access hurdles; see the Reddit API key process for posting.