Instagram account-level permissioning
Updated: Jun 30, 2026
Copy for LLM
Ads in WhatsApp Status are available via the Marketing API. Learn more about ads in WhatsApp Status.
Instagram account-level permissioning allows you to request partnership ad permissions from creators and validate the status of those requests. It also allows third-party platforms to list existing partnership ad permissions for a brand.
When a creator accepts an account-level permission request in the Instagram app, you can:
- Create partnership ads from a creator’s handle without a pre-existing post.
- Create partnership ads from any of a creator’s existing posts that tag your brand (Note: You must be tagged using the paid partnership label, an @ mention﹡, people tags﹡, product tags﹡, or Instagram Collabs﹡).
- Include or exclude a creator’s audience in the partnership ad campaign.
Creators can:
- Tag a brand partner in the paid partnership label when making branded content posts.
﹡ Instagram only
Permissions
To send, view, and revoke partnership ad permissions on the
/{business-account-id}/branded_content_ad_permissions endpoint, your app needs the following permissions:instagram_branded_content_ads_brandinstagram_basicbusiness_management
Note: To call this API, the user who granted your app access must have one of the following roles on the Instagram business account:
ADS, CREATOR_MANAGEMENT, or CREATOR_CONTENT. A business admin assigns these roles through the People tab in Meta Business Suite.Send a partnership ad permission request to a creator
Your app can request partnership ad permissions from creators for yourself or on behalf of brand partners by sending a
POST call to the /{business-account-id}/branded_content_ad_permissions endpoint.Example request
You can request the permission using either the
CREATOR_IG_ID or CREATOR_IG_USERNAME.curl -X POST \
-F 'access_token=<ACCESS_TOKEN>' \
-F 'creator_instagram_account=<CREATOR_IG_ID>' \
# OR
-F 'creator_instagram_username=<CREATOR_IG_USERNAME>' \
'https://graph.facebook.com/v26.0/<BUSINESS_ACCOUNT_ID>/branded_content_ad_permissions'
Example response
{ "id": "<PERMISSION_ID>" }
View a brand partner’s partnership ad permissions
Your app can retrieve a list of existing partnership ad permissions (including those that are pending) for a brand partner with a
GET call to the /{business-account-id}/branded_content_ad_permissions endpoint.Parameters
| Name | Description |
|---|---|
creator_username
string
| Optional.
Filter results by a specific creator’s Instagram username. |
Example request
curl -G \
-d 'access_token=<ACCESS_TOKEN>' \
-d 'creator_username=<CREATOR_USERNAME>' \
'https://graph.facebook.com/v26.0/<BUSINESS_ACCOUNT_ID>/branded_content_ad_permissions'
Example response
{ "data": [ { "creator_username": "jaspersmarket", "creator_id": "123", "creator_fb_page": "123", "brand_ig_user": { "id": "1234" }, "permission_status": "APPROVED", // Creator approval status: REVOKED, PENDING, etc. "id": "<PERMISSION_ID>" } ], "paging": { "cursors": { "before": "MTM4OTY1MDkwNzkyMTE4NQ==", "after": "MTAyMzMxNzA5NzY5MjU4NA==" } } }
Revoke a creator’s partnership ad permissions
Your app can revoke the partnership ad permissions of creators with a
POST call to the /{business-account-id}/branded_content_ad_permissions endpoint with the revoke field set to true.Example request
curl -X POST \
-F 'access_token=<ACCESS_TOKEN>' \
-F 'creator_instagram_account=<CREATOR_IG_ID>' \
-F 'revoke=true'
'https://graph.facebook.com/v26.0/<BUSINESS_ACCOUNT_ID>/branded_content_ad_permissions'
Example response
{ "id": "<PERMISSION_ID>" }
Best practices
- Use batch operations — The
POSTendpoint accepts an array of actions, allowing you to process multiple permission changes in a single request. Prefer this over individual calls. - Paginate large result sets — Use
limitandoffsetwhen listing permissions. The maximum limit per request is 1,000. - Filter early — Use
status,partner_page_ids, andpermission_directionquery parameters to narrow results and reduce response size. - Inspect per-item results — Batch POST responses include individual status fields. Always check each item for
"success"or"failure", then detect and retry items that failed while keeping successful items.