Create Branded Content
Updated: Apr 27, 2026
Creators, celebrities, and media companies can share branded content on Facebook. Branded content posts are any content that features or is influenced by a brand partner for an exchange of value.
See About branded content on Facebook, Instagram and Threads for more information.
Before You Begin
You will need to:
- Comply with Meta’s Branded Content Policy and Ads Policy.
- Have a verified Facebook Page or Profile.
- Use the Marketing API or Ads Manager to create branded content posts.
- Tag your brand partner in the posts using the branded content tool or Marketing API.
- If the branded content tool is not available for your Page, submit an application for access.
Create a Page Post
Make a
POST call to the /{page-id}/feed endpoint to create a post on your Page. The sponsor_id, share_status, and message fields are required.You can allow brand partners to directly boost your posts by using
direct_share_status=1 to grant permission to a brand partner. Otherwise, set direct_share_status=0.Example request
curl -X POST \
-F "access_token=<ACCESS_TOKEN>" \
-F "message=Check out some beautiful products in this grocery store" \
-F "direct_share_status=1" \
"https://graph.facebook.com/v25.0/<PAGE_ID>/feed"
Example response
{ "id":"<POST_ID>" }
Post Photos
You can add photos to your post with the
/{page-id}/photos endpoint. The sponsor_id, share_status, and the message fields are required.Specify a
url field to link to an existing photo. You can also upload the photo as an attachment to the post.See Page Photos for more information.
Example request
curl -X POST \
-F "access_token=<ACCESS_TOKEN>" \
-F "message=Check out some beautiful products in this grocery store" \
-F "direct_share_status=1" \
-F "url=<PHOTO_URL>"
"https://graph.facebook.com/v25.0/<PAGE_ID>/feed"
Example response
{ "id":"<POST_ID>" }
Post a Video
Posting a video with branded content requires several steps:
- Make a call specifying you want to upload a video.
- Use the returned video object ID to upload the video.
- Complete the video transfer by setting the share status. Make sure to provide a
sponsor_idfor the video, which adds branded content to the story.
See Uploading Videos for more information.
Example request
curl -X POST \
-F "access_token=<ACCESS_TOKEN>" \
-F "upload_phase=finish" \
-F "upload_session_id=<SESSION_ID>" \
-F "sponsor_id=<BRAND_ID>" \
-F "direct_share_status=1" \
"https://graph-video.facebook.com/v25.0/<PAGE_ID>/videos"
Example response
{ "success":true }
Live Video
To create branded live video, you should:
- Create a live video object.
- Update the live video object and adda
sponsor_id. - Start your live video stream.
To learn more about creating and managing live video streams, see Live Video API.
You can query the list of live videos for a Page and use the video ID to update the
sponsor_id, or you can use the ID returned when you first create your live video.Updating Branded Content
Changes to post content with a brand ID on the web or on mobile devices is not supported. However, you can use the Marketing API to update a post to include or change a sponsor by changing the value of the
sponsor_id field on a post object.To add a sponsor to a post, make a
POST call to the /{page-post-id} endpoint and specify a sponsor_id. To change the sponsor on a post, pass in a new sponsor_id value.You can allow or prohibit a brand partner directly boosting a post by providing the
sponsor_id and a change to the direct_share_status field.Example request
curl -X POST \
-F "access_token=<ACCESS_TOKEN>" \
-F "sponsor_id=<BRAND_ID>"
-F "direct_share_status=1" \
"https://graph.facebook.com/v25.0/<PAGE_POST_ID>"
Example response
{ "success":true }
You can moderate comments on branded content posts using the
/{comment-id} endpoint’s is_hidden parameter. This means you can moderate comments even when the post was created by another Page, without needing the creator to take action.Note: This is only available for comments on Page posts.
To hide a comment, send a
POST request to the /{comment-id} endpoint with is_hidden set to true. Setting is_hidden to false will unhide the comment.See the Comment API reference for more information.
Example request
curl -X POST \
-F "access_token=<ACCESS_TOKEN>" \
-F "is_hidden=true" \
"https://graph.facebook.com/v25.0/<COMMENT_ID>"
Example response
{ "success":true }
Comments Moderation