This document explains how to use the Video API to publish a video on multiple Pages without uploading the video to each Page. For example, if you have a parent Page with several child Pages, you can upload and publish a video to the parent Page then publish the Video to all child Pages without having to upload the video to each Page.
To crosspost a Video, you must be able to perform to the CREATE
task on the Pages and enable the Video to be published to specific Pages. You will need the ID of the Video and the ID's of the Pages where you want to publish the Video as well as Page access tokens from the Page where the Video was originally published and the Pages where you want to publish.
You can use the API to determine if a Video is already eligible for crossposting or a crossposted video, how to enable crossposting to all Pages managed by your Business Manager, and to get a list of Pages you can crosspost to.
Visit our Reels Publishing guide for informtion about crossposting a reel to a collaborator's Facebook Page.
If a video has been crossposted to your Page but you do not have a Role on the Page where the video was originally published, you cannot change any Permissions of the Video.
To publish a Video to multiple Pages you must enable crossposting of the Video to these Pages.
You will need:
publish_video
Permissionpages_manage_posts
Permissionpages_read_engagement
PermissionSend a POST
request to the Video endpoint:
POST /{api-version}/{video-id} ?allow_crossposting_for_pages=[{page_id:{page-a-id},allow:true},{page_id:{page-b-id},allow:true}] &access_token={page-access-token}
Include the following parameters:
Parameter Name | Value |
---|---|
| A JSON array of Page IDs where you want to publish the video. Set |
| The Page access token of the Page where the video was originally published. |
curl -X POST \ "https://graph.facebook.com/v7.0/2918040388250909" \ -F "allow_crossposting_for_pages=[{page_id:104371193424796,allow:true},{page_id:115969103185286",allow:true}] \ -F "access_token=EAABkW..."
{ "success": true }
You will need:
publish_video
Permissionpages_manage_posts
Permissionpages_read_engagement
PermissionSend a POST
request to the Page Videos endpoint:
POST /{api-version}/{page-id}/videos ?crossposted_video_id={video-id} &access_token={page-access-token}
Include the following parameters:
Parameter Name | Value |
---|---|
| The video ID of the Video you are crossposting. |
| The Page access token of the Page where you are publishing the video. |
curl -X POST \ "https://graph.facebook.com/104371193424796/videos?crossposted_video_id=2918040388250909&access_token=EAABk..."
{ "id":"577600939847873" }
To determine if a Video is eligible to be crossposted, send a GET
request to the Video endpoint with the is_crossposting_eligible
field.
You will need:
pages_manage_posts
Permissionpages_read_engagement
PermissionGET /{api-version}/{video-id} ?fields=is_crossposting_eligible &access_token={page-access-token}
curl -X GET \ "https://graph.facebook.com/v7.0/2918040388250909" \ -F "is_crossposting_eligible" \ -F "access_token=EAABkW..."
{ "is_crossposting_eligible": true, "id": "2918040388250909" }
Parameter Name | Value |
---|---|
| Displays if the Video is enabled to be crossposted. |
| The Page access token of the Page where the Video was originally published. |
To determine if the Video is a crossposted Video, send a GET
request to the Video endpoint with the is_crosspost_video
field.
You will need:
publish_video
Permissionpages_manage_posts
Permissionpages_read_engagement
PermissionGET /{api-version}/{video-id} ?fields=is_crosspost_video &access_token={page-access-token}
Include the following parameters
Parameter Name | Value |
---|---|
| Displays if the Video is the original or is a crossposted Video. |
| The Page access token of the Page where the Video was originally published. |
curl -X GET \ "https://graph.facebook.com/v7.0/577600939847873?fields=is_crosspost_video&access_token=EAABk..."
{ "is_crosspost_video": true, "id": "577600939847873" }
You will need:
pages_manage_posts
Permissionpages_read_engagement
PermissionSend a GET
request to the Page CrosspostWhitelistedPages endpoint.
GET {page-id}/crosspost_whitelisted_pages &access_token={page-access-token}
curl -X GET \ "https://graph.facebook.com/v7.0/2918040388250909/crosspost_whitelisted_pages&access_token=EAABk..."
{ "crosspost_whitelisted_pages": { "data": [ { "name": "Obsession, by Margaret", "id": "115969103185286" }, { "name": "Cisco Dog", "id": "422575694827569" } ], "paging": { "cursors": { "before": "QVFIUn...", "after": "QVFIUk4..." } } }, "id": "1353269864728879" }
To enable crossposting to all Pages managed by your Business Manager, send a POST
request to the Video endpoint.
You will need:
pages_manage_posts
Permissionpages_read_engagement
PermissionPOST /{api-version}/{video-id} ?allow_bm_crossposting=true &access_token={page-access-token}
Include the following parameters
Parameter Name | Value |
---|---|
| Set |
| The Page access token of the Page where the video was originally published. |
curl -X POST \ "https://graph.facebook.com/v7.0/2918040388250909?allow_bm_crossposting=true&access_token=EAABkW..."
{ "success": true }
Each crossposted Video has its own unique video_id
. You can see video insights from each Video and Page.
For more information about crossposting, visit our Help Center.