Instagram · Visual

The Instagram API, minus the container dance

Publish feed photos and Reels to Instagram with a single call. We run the Content Publishing container-then-publish flow, hold the token, and hand back the real media id — you send one caption and a URL.

Feed photosReelsCarouselsScheduling
Official OAuth APIup to 2,200 charsInstagram Graph API
curl https://postmyish.com/api/v1/posts \
  -H "Authorization: Bearer $POSTMYISH_KEY" \
  -H "Content-Type: application/json" \
  -d '{"caption":"New drop is live 🔥 link in bio","platforms":["instagram"]}'
201 · { id: "9f2c8b1e…", status: "published" }JSON
Why not raw?

Instagram Graph API is powerful — and painful

The official API can do this. It just makes you do a lot first. Here's what raw Instagram publishing costs you, and what PostMyIsh absorbs.

Raw Instagram API
With PostMyIsh
Account type
Must be a Professional account linked to a Facebook Page — personal accounts can't post via API
Connect once; we check the linkage for you
Auth
Facebook Login + App Review + Business Verification
One OAuth screen, one encrypted token
Publishing
Create a media container, then a second media_publish call
One POST /v1/posts
Media hosting
The file must sit at a public URL the Graph API can pull
Pass a URL; we hand it to the container
Tokens
Long-lived tokens expire in ~60 days; you refresh them
Stored encrypted, refreshed before they lapse
Capabilities

Everything Instagram supports, one endpoint

Post types, limits, and scheduling — all through the same POST /v1/posts call, formatted the way Instagram expects.

Feed photos

An image URL posts straight to the grid with your caption.

Reels

Pass a video URL as media and it publishes as a Reel.

Captions to 2,200

Full caption length, hashtags and @mentions preserved.

Schedule ahead

Add schedule_at and it fires from our queue, not yours.

Copy, paste, ship

Real calls, not pseudocode

Every snippet hits the live API — same base URL, Bearer auth, plain JSON. Add your key and it runs.

Publish to Instagram now

One POST fans out to Instagram. The response carries the id and status the moment it ships.

curl https://postmyish.com/api/v1/posts \
  -H "Authorization: Bearer $POSTMYISH_KEY" \
  -H "Content-Type: application/json" \
  -d '{"caption":"New drop is live 🔥 link in bio","platforms":["instagram"]}'
How it works

Live in three steps, not three weeks

Connect Instagram, call one endpoint, and we run the Instagram Graph API plumbing behind it.

Step 01

Connect the account

Link it once from the Accounts page through its official login. The credential is stored encrypted.

Step 02

POST /v1/posts

Send one caption and the platform id. Add schedule_at to queue it, or media for a URL.

Step 03

We handle the rest

Container flows, token refresh, rate limits, and the real post id — all on our side.

Straight talk: Publishing scopes require Meta App Review + Business Verification (days to a couple of weeks). Until approved, only accounts you add as test users can be posted to — the code is done; the review is the wait.

One API, eleven more

Instagram is one entry in the same array

Add another id to platforms and the identical call posts there too. One request already covers Instagram, TikTok, Facebook, and Threads — no second integration.

See all twelve networks
Instagram API FAQ

The honest answers

What's real, what needs review, and what Instagram itself requires — no hand-waving.

Is this the official Instagram API?

Yes — the Instagram Content Publishing API, part of the Instagram Graph API. No scraping or automation-of-the-app tricks.

Do I need a Business account?

Yes. Instagram only allows API publishing to Professional (Business or Creator) accounts linked to a Facebook Page. Personal accounts can't be posted to by any provider.

Can I post Reels?

Yes. Pass a video URL as media and Instagram publishes it as a Reel; an image URL posts to the feed.

Why does it need a public media URL?

The Graph API pulls the file from a URL you host rather than accepting an upload. Pass media as an https URL and it flows straight through.

Can I schedule Instagram posts?

Yes — add schedule_at (ISO 8601) and PostMyIsh publishes it from our queue when the time arrives.

Ready to post your ish everywhere?

Connect your accounts, write one caption, and be live on every feed in minutes. The free plan is genuinely free.