letmepost / platforms / Instagram

Ship Your Integration
In Minutes, Not Weeks.

Meta App Review is the single biggest reason small teams cannot ship a social publishing API. Eleven weeks, three rejections, four re-shot demo videos. We did that once. Connect via our reviewed Meta app and publish through it. Read the postmortem →

In review · Meta App Review · read the docs →
POST /v1/posts ·
{
  "targets": [{ "platform": "instagram" }],
  "accountId": "acc_ig_xyz",
  "text": "Reel via letmepost.",
  "media": [{ "mediaId": "med_reel_…" }]
}

Why letmepost vs Meta Graph direct?

Instagram Direct

  • You file Meta App Review (8–12 weeks across IG + FB + Threads)
  • You record screen-recordings for every Advanced Access permission
  • You complete Business Verification (5–15 days separately)
  • You wrestle with OAuthException 2207052 for URL reachability
  • You implement IG Business via Facebook Login fan-out
  • You handle the 2-step publish (create container → finalize)

letmepost API

  • Our reviewed Meta app covers hosted users; you publish through it
  • Connect via Facebook Login for Business; lights up Pages + IG
  • URL reachability checked in preflight; never a silent 2207052
  • Container creation + finalize abstracted to one POST
  • Reels + carousels through the same endpoint
  • Self-host with your own Meta app to skip the queue entirely
You don't go through Meta App Review. We did. Eleven weeks of paperwork, demo videos, and contradictory reviewer notes. Once. For everyone.

✓ Meta App Review absorbed

Our hosted Meta app covers Instagram, Facebook Pages, and Threads through a single shared review. You inherit that work. Self-hosters can BYO Meta app if they need their own reviewer-of-record.


PLAYGROUND

connect, configure, post
▸ Connect▸ Configure▸ Execute

Facebook Login for Business. One consent grants Pages + IG Business + Threads access. Live the day Meta approval clears for hosted users.

CONNECT META →
Approval-gated. META REVIEW · DAY 24 / ~56

CONTENT TYPES

every instagram surface, one shape
Caption · 2,200 chars
Photo · JPEG
Reel · MP4 ≤ 90s
Carousel · 2–10 mixed
Scheduled

HOW IT WORKS

three steps · under two minutes

Get your API key

Sign up at dashboard.letmepost.dev.

Connect via Facebook Login

One OAuth grant. Lights up Pages + IG Business + Threads in a single consent. IG Business account required.

Post a Reel (or carousel)

One POST /v1/posts with platform: "instagram". We create the container, finalize, fire post.published when IG accepts.


FEATURES

what we built so you don't

Meta App Review absorbed

Our reviewed app covers IG + FB + Threads in one grant. You inherit weeks of paperwork, demo videos, and Business Verification.

FB Login fan-out

One OAuth consent grants Pages, IG Business, and Threads. Per-platform tokens generated server-side; you reference an accountId.

URL reachability preflight

IG silently rejects media URLs that aren't reachable from their servers (OAuthException 2207052). We HEAD-check before publish.

2–10 mixed-media carousels

Carousel children can mix photos and Reels. Pass an array of mediaIds; we create per-child containers and finalize the parent.


CODE EXAMPLE

post a reel · typescript
publish-instagram.ts ·
import { Letmepost } from '@letmepost/sdk';
const lmp = new Letmepost({ apiKey: process.env.LMP_API_KEY });

const result = await lmp.posts.create({
  targets: [{ platform: 'instagram', accountId: 'acc_ig_xyz' }],
  text: 'New Reel via letmepost. #buildinpublic',
  media: [{ type: 'video', mediaId: 'med_reel_xyz' }],
  options: {
    instagram: {
      kind: 'reel',
      coverImageUrl: 'https://your-thumbnail.jpg',
    },
  },
});


COMMON QUESTIONS

about meta app review & ig publishing

When does Instagram go live?

Publisher shipped; in Meta App Review. Typical 8–12 weeks. Read the postmortem for what that process looks like. Self-host with your own Meta app to use it today.

Do I need to file Meta App Review?

No for hosted users — you publish through our reviewed app. Yes for self-host users who want their own reviewer-of-record. The config switch is LMP_META_APP_MODE=byo.

What's OAuthException 2207052?

Instagram silently rejects media URLs that aren't reachable from their servers. We HEAD-check every media URL in preflight and surface instagram.media.url_reachable before Meta sees the request.

Can I post Stories?

No. Stories require a separate Meta surface that's not v1. Reels, feed posts, and carousels are supported.

Does it work for personal IG accounts?

No. Meta requires an Instagram Business or Creator account linked to a Facebook Page. The connect flow rejects personal accounts.

What about Threads?

Threads has a standalone OAuth at threads.net, not Facebook Login. See the Threads page.


ONE API · 8 PLATFORMS

instagram is just one of them

LEARN MORE


READY FOR INSTAGRAM?

Connect now, queue posts now, publish the day Meta approval clears. Or self-host with your own Meta app — that surface is live today.

* * * META APP REVIEW · ABSORBED * * *
PLAT · INSTAGRAM · META REVIEW
→ START FREE