Create Reel
facebook_create_reelPublish a Facebook Reel from a local file as PUBLISHED, DRAFT, or SCHEDULED. Preview with a dry run, then upload in three phases to post to your Page.
Instructions
Publish a Facebook Reel through the three-phase upload (start → transfer → finish) with an explicit video_state: PUBLISHED, DRAFT or SCHEDULED. The file must be local (the protocol streams the bytes from this server). Each publish consumes one of the Page's 30 API Reels per rolling 24 h. Dry run by default.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| apply | No | Set true to actually perform the write. Omitted or false ⇒ the server decides from its configured write mode: usually a dry run that returns a plan preview and changes nothing, but a server (or package) configured apply-first performs the write. To be certain nothing happens, read the result: a dry run always reports the plan and says the write was NOT performed. | |
| title | No | Internal title for the video object. | |
| video | Yes | Local file path inside FB_MEDIA_DIR. A remote URL is REFUSED here: the Reels upload protocol has no "fetch this URL" mode, so the bytes must be readable by this server. Meta enforces 9:16 aspect, at least 540x960, 3-90 s, MP4/MOV — none of which is checked locally. | |
| plan_id | No | The `planId` returned by a preceding dry-run preview of this same tool. Required for irreversible and spend-tier writes; plans expire a few minutes after they are created. | |
| profile | No | Page profile key (e.g. "brand-a") or a raw Page ID. Omitted ⇒ the default Page (FB_PAGE_ID). | |
| description | No | The Reel caption. Omitted ⇒ the Reel is published without one. | |
| video_state | No | PUBLISHED ⇒ goes live as soon as encoding finishes (there is no unpublish step in this flow). DRAFT ⇒ stays in the Page's draft area. SCHEDULED ⇒ requires scheduled_publish_time, more than 10 minutes and at most 29 days ahead. | PUBLISHED |
| page_timezone | No | IANA timezone name of the Page (e.g. "Europe/Sofia"), used only to echo a scheduled instant in Page-local time next to UTC. Omitted ⇒ the server reads the Page's own timezone; if that read fails the echo is UTC-only. | |
| scheduled_publish_time | No | Only with video_state:"SCHEDULED". ISO-8601 WITH an explicit offset ("2026-08-01T09:30:00+03:00" / "...Z"); naive local times and raw epoch numbers are refused. Reels accept a shorter window than feed posts: more than 10 minutes and at most 29 days ahead. |