Instagram API · post · schedule · analyze

The Instagram API built for developers

Publish Reels, carousels, Stories and photos to Instagram with one API call — no Graph API container dance, no token expiry, no media-hosting headaches. We handle the Meta plumbing so you ship in hours, not weeks.

ReelsCarouselsStoriesSchedulingAnalytics

✓ 5 minutes to first post ✓ 99.92% uptime ✓ Reels, carousels & Stories

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "New drop is live 🔥 #launch",
    "accounts": ["instagram"],
    "media": [{ "url": "https://media.outstand.so/reel.mp4", "filename": "reel.mp4" }]
  }'

A video publishes as a Reel automatically. One image → a feed photo. Two-to-ten → a carousel.

Instagram's official API is powerful — and painful

Instagram has no simple "post" endpoint. Publishing through the Instagram Graph API means a Business or Creator account, Meta App Review, a two-step create-container → poll → publish flow, publicly-hosted media URLs and tokens that quietly expire. Outstand turns all of it into a single request.

Business/Creator account, Facebook Page link and Meta App Review
Connect once via OAuth — we manage the app and permissions, or bring your own
Create a media container, poll its status, then publish — per item
One POST /v1/posts/ — we create, poll and publish the container for you
Media must be a public HTTPS URL you host yourself
Pass a URL; we fetch it and hand it to Instagram correctly per media type
60-day long-lived tokens that expire silently
Automatic token refresh — you never see a 401
Carousels need N child containers assembled in order
Send 2–10 media items in one array; we assemble the carousel
Undocumented rate limits and 429s
We queue, throttle and retry — you never see a 429

Everything Instagram supports, through one endpoint

Every content type and capability available on Instagram via Outstand today.

Feed photos

Carousels (2–10)

Reels

Stories (24h)

PublishingSchedulingAnalyticsMedia handlingComments

Plus collaborators (invite up to 3), user tags, location and alt text. Reposting and deleting feed posts are not supported by Instagram's API.

Copy, paste, ship

The same accounts array also fans out to X, LinkedIn, TikTok and 7 more — one request, many platforms.

Publish a Reel

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Behind the scenes of the shoot 🎬 #reels",
    "accounts": ["instagram"],
    "media": [{ "url": "https://media.outstand.so/bts.mp4", "filename": "bts.mp4" }],
    "instagram": { "reelThumbOffset": 1500 }
  }'

Publish a carousel (2–10 items)

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Swipe for the full lookbook →",
    "accounts": ["instagram"],
    "media": [
      { "url": "https://media.outstand.so/1.jpg", "filename": "1.jpg" },
      { "url": "https://media.outstand.so/2.jpg", "filename": "2.jpg" },
      { "url": "https://media.outstand.so/3.jpg", "filename": "3.jpg" }
    ],
    "instagram": { "collaborators": ["partner_brand"] }
  }'

Publish a Story

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "",
    "accounts": ["instagram"],
    "media": [{ "url": "https://media.outstand.so/story.jpg", "filename": "story.jpg" }],
    "instagram": { "publishAsStory": true }
  }'

Schedule a post (up to 30 days out)

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Drops Friday at noon ⏰",
    "accounts": ["instagram"],
    "media": [{ "url": "https://media.outstand.so/teaser.jpg", "filename": "teaser.jpg" }],
    "scheduledAt": "2026-07-03T16:00:00Z"
  }'

Read analytics

bash
curl https://api.outstand.so/v1/posts/{id}/analytics \
  -H "Authorization: Bearer $OUTSTAND_API_KEY"
# → impressions, reach, likes, comments, saves, shares, views, engagement_rate

Live in three steps

From signup to your first published Reel in about five minutes.

1

Connect Instagram

Your user authorizes via OAuth. We store and refresh the long-lived token. Use our Managed Keys, or bring your own Meta app for white-label.

2

Call POST /v1/posts/

Send text and media with accounts: ["instagram"]. Add scheduledAt to schedule it for later.

3

We do the Graph API work

Container creation, status polling, retries and rate-limit handling — returned as a unified response with the published post ID.

More than an Instagram wrapper

One integration that grows with everything you ship next.

One API, 10+ platforms

The same request publishes to Instagram, X, LinkedIn, TikTok and 7 more. Same JSON shape everywhere.

Managed Keys or BYOK

Skip Meta App Review with our keys, or bring your own app for white-label OAuth under your brand.

Built for scale

Intelligent rate limiting, automatic token refresh, webhook events and media processing.

Honest pricing

$19/mo includes 3,000 posts, then from $0.007/post. No seats, no annual lock-in.

What you can build

Same endpoints, same data shapes — pick what you ship.

Social schedulers

Let your users queue and auto-publish Instagram content from your app.

AI agents

Give Claude or GPT a tool to post to Instagram. MCP server included.

Analytics dashboards

Pull Instagram reach and engagement alongside every other platform.

Agencies & white-label

Run Instagram posting for clients under your own brand and Meta app.

Instagram API FAQ

The questions developers ask before they build.

Does Instagram have an official API?

Yes — the Instagram Graph API (part of the Meta Graph API) lets approved apps publish posts, Reels, Stories and read insights for Business and Creator accounts. Outstand is a managed layer on top of it, so you skip the setup.

Can I post Instagram Reels via API?

Yes. Send a video file to POST /v1/posts/ with accounts: ["instagram"] and Outstand publishes it as a Reel — you can set a thumbnail offset and invite collaborators.

Can I schedule Instagram posts via the API?

Yes. Add a scheduledAt ISO-8601 timestamp (up to 30 days ahead) and Outstand publishes it automatically — no cron or queue on your side.

Do I need a Business or Creator account?

Yes — Instagram only allows API publishing for Business or Creator accounts (a Meta requirement, not ours). Personal accounts cannot publish via any Instagram API.

Can I post Instagram Stories via API?

Yes. Set instagram.publishAsStory: true with a single image or video. Stories do not support carousels or captions and expire after 24 hours.

How do I get an Instagram access token?

With Outstand you do not manage tokens manually — your user connects through OAuth and we store and auto-refresh the long-lived token. Bring your own Meta app for white-label, or use our Managed Keys.

What are the Instagram API rate limits?

Instagram caps content publishing (historically around 50 posts per 24 hours per account) and applies app-level rate limits. Outstand queues and throttles requests under the hood, so you never handle a 429 yourself.

Can I post to Instagram without the Graph API?

Not officially — the Graph API is the only sanctioned way to publish. Outstand uses it for you so you get a clean REST endpoint instead of the container-and-polling flow.

Ship Instagram posting today

Grab an API key and publish your first Reel in the next five minutes. 3,000 posts included, then from $0.005/post.