Create Photo Post
facebook_create_photo_postPublish a single photo to a Facebook Page with optional caption, draft, or scheduled time. Supports image URL or local file, with dry-run preview by default.
Instructions
Publish ONE photo to a Page, optionally with a caption, as a draft, or scheduled. The photo is either an https:// URL Meta fetches itself or a local file inside FB_MEDIA_DIR. 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. | |
| photo | Yes | The image: an https:// URL Meta fetches itself (no credentials in the URL), or a local file path inside FB_MEDIA_DIR whose bytes this server uploads. | |
| caption | No | Text shown with the photo. Unicode and emoji pass through unchanged. | |
| 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). | |
| published | No | false ⇒ create the post UNPUBLISHED (a draft that stays invisible until facebook_update_post action:"publish_now"). Omitted or true ⇒ publish immediately. Must be omitted when scheduled_publish_time is set. | |
| 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 | When to publish, as an ISO-8601 instant WITH an explicit offset — "2026-08-01T09:30:00+03:00" or "2026-08-01T06:30:00Z". A bare local time ("2026-08-01T09:30:00") and a raw epoch number are both REFUSED, because they have no unambiguous meaning. Must be more than 10 minutes and at most 75 days ahead. Setting this creates the post unpublished; do NOT also pass published:true. |