What instagram_content_publish actually unlocks
The content publishing permission lets your app create and publish single images, videos, reels and multi-item carousel posts directly to an Instagram professional account through the Graph API — no manual posting in the app. Meta exposes it under two different login setups, and the exact permission name depends on which one you build on.
instagram_content_publish
Content publishing scope when you build on Facebook Login for Business (the Instagram account is linked to a Facebook Page).
instagram_business_content_publish
The equivalent scope when you build on Business Login for Instagram, where users sign in with Instagram credentials directly.
instagram_basic / instagram_business_basic
Base dependency. Content publishing will not function without the matching base permission also granted.
Professional account + Page link
The target account must be an Instagram professional (business or creator) account, and for the Facebook-login setup it must be connected to a Facebook Page the user can manage.
Why Meta makes this permission hard to get
The reason most teams get stuck is the gap between Standard Access and Advanced Access. By default your app only has Standard Access, which can publish to your own account or to test users added in the App Dashboard. The moment you want to publish on behalf of real clients you do not own or manage, you need Advanced Access — and that is gated behind both Meta App Review and Business Verification.
Advanced Access is mandatory for real clients
Serving accounts you do not own requires Advanced Access, which can only be granted through a successful App Review submission. There is no shortcut and no self-serve toggle. Learn more in our guide to Meta Advanced Access.
Business Verification comes first
Advanced Access also requires a verified Meta Business portfolio. If your business is not verified, the permission cannot be approved no matter how good the app is. This step has its own document checks and is a frequent stall point — see our walkthrough of Meta Business Verification.
Reviewers must see it work with a test user
Meta does not approve content publishing from a written description. A reviewer connects a test account and expects to watch your app actually create and publish a post end to end. A flow they cannot reproduce is an automatic rejection.
The screencast has to prove the exact scope
Each permission needs a screencast that shows the full journey: login, the consent screen requesting that scope, and the scope being used. Generic product demos that never show the permission in action are the single most common reason content publishing submissions fail. Threads publishing permissions follow a review model much like Instagram, so read why Threads API permissions get rejected before you submit.
How the approval process runs
At a high level, getting instagram_content_publish approved follows a fixed sequence. Each stage has to be correct before the next one matters — this is the part we handle end to end.
Confirm the right login setup and permission set for your use case, and map every dependency so nothing is missing from the submission.
Complete Meta Business Verification and prepare the app's privacy policy, data handling and use-case description to match what reviewers expect.
Stand up a reviewer-ready environment with a working publish flow and test users, so the exact scope can be demonstrated cleanly.
Record a precise screencast for the permission and write the justification that ties the scope to a real, visible action in the app.
Submit, monitor the review, and if anything comes back, fix the exact rejection reason and resubmit — without breaking the rest of the approved scopes.
What approval looks like on the other side
One practical note: even after approval, Instagram caps API publishing to a fixed number of posts per account in a rolling 24-hour window (carousels count as one), which you can check through the account's publishing-limit endpoint. Planning around that limit is part of building a stable integration. And if your tool also reports post performance to clients, the instagram_manage_insights approval guide covers the analytics permission that usually rides along in the same submission.