# PostEverywhere Facebook API Guide > Post to Facebook via API: publish and schedule Page posts, Reels, and link shares with one REST call. Video types, previews, examples. **Source:** https://posteverywhere.ai/docs/platforms/facebook **Section:** Platforms **API reference:** https://posteverywhere.ai/docs/api/reference --- Publish text posts, image posts, Reels, video posts, and link shares to Facebook Pages. PostEverywhere handles Facebook's Graph API interactions, [media uploads](/docs/api/init-media-upload), and post creation through a single endpoint. For a general overview of all supported platforms, see the [Introduction](/docs). ## Connect your Facebook account to PostEverywhere Connect Facebook from the dashboard with OAuth, or headlessly from code: mint a [connect link](/docs/api/create-connect-link) and hand it to the account owner - no dashboard session needed. Both flows are covered in [Connecting Accounts](/docs/connecting-accounts). ## What you can post to Facebook | Content Type | Media Required | Description | |-------------|---------------|-------------| | **Text post** | None | Plain text status update on your Page. | | **Image post** | Image(s) | Post with one or more attached images. | | **Reel** | Video (MP4, 9:16) | Vertical short-form video. Default for video uploads. | | **Video post** | Video (MP4) | Standard video post with any aspect ratio. Set `videoType` to `"video"`. | | **Link share** | None | Post with a URL that generates a link preview card. | ## Facebook-specific options in the API Use the `platform_content.facebook` object to customise your Facebook post: ```json { "platform_content": { "facebook": { "content": "Facebook post text", "settings": { "videoType": "reel", "link": "https://example.com", "firstComment": "First comment text" } } } } ``` ### Settings Reference | Setting | Type | Default | Description | |---------|------|---------|-------------| | `content` | string | N/A | Override the default text with a Facebook-specific version. | | `settings.videoType` | string | `"reel"` | Video format: `"reel"` (vertical, 9:16) or `"video"` (any aspect ratio). | | `settings.link` | string | N/A | URL to share. Facebook generates a preview card with title, description, and thumbnail. | | `settings.firstComment` | string | N/A | Text posted as the first comment after publishing. | ### Video Types | Value | Aspect Ratio | Description | |-------|-------------|-------------| | `reel` | 9:16 (vertical) | Facebook Reel. Appears in the Reels tab and feed. Default for video uploads. | | `video` | Any | Standard video post. Supports landscape, square, or portrait aspect ratios. | ## Publish to Facebook: a working request ### Schedule a Facebook Reel ```bash curl -X POST https://app.posteverywhere.ai/api/v1/posts \ -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "content": "Default text for other platforms", "account_ids": [2278], "media_ids": ["c9d0e1f2-a3b4-5678-9012-cdef01234567"], "scheduled_for": "2026-04-16T10:00:00Z", "timezone": "America/New_York", "platform_content": { "facebook": { "content": "3 things I wish I knew before starting my business 👇", "settings": { "videoType": "reel", "firstComment": "What would you add to this list? Drop it below!" } } } }' ``` ### Schedule a Link Share Post ```bash curl -X POST https://app.posteverywhere.ai/api/v1/posts \ -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "content": "Check out our new blog post", "account_ids": [2278], "scheduled_for": "2026-04-16T14:00:00Z", "timezone": "Europe/London", "platform_content": { "facebook": { "content": "We just published a deep dive into social media scheduling for 2026.\n\n5 strategies that actually work (based on data from 10,000+ posts).\n\nLink in the comments!", "settings": { "firstComment": "Read the full article: https://example.com/blog/scheduling-strategies" } } } }' ``` ### Schedule a Standard Video Post ```bash curl -X POST https://app.posteverywhere.ai/api/v1/posts \ -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "content": "Product demo", "account_ids": [2278], "media_ids": ["d0e1f2a3-b4c5-6789-0123-def012345678"], "platform_content": { "facebook": { "content": "Full product walkthrough — 5 minutes, no fluff.", "settings": { "videoType": "video" } } } }' ``` ## Facebook limits: characters, media and video | Requirement | Limit | |-------------|-------| | Post text length | 63,206 characters | | Image formats | JPEG, PNG, WebP, GIF | | Image max file size | 20 MB | | Video format | MP4 (H.264) | | Video max file size | 500 MB | | Reel duration | 3 - 90 seconds | | Reel aspect ratio | 9:16 (vertical, 1080x1920) | | Standard video duration | Up to 240 minutes | | Recommended image ratio | 1.91:1 (landscape) or 1:1 (square) | | Link preview | Auto-generated from Open Graph tags on the URL | ## Getting better results on Facebook - **Use `"videoType": "reel"` for maximum reach.** Facebook heavily promotes Reels in the feed and Reels tab. If your video is vertical (9:16), use the default `"reel"` type for significantly better organic distribution than standard video posts. - **Put links in `firstComment` instead of the post body.** Similar to LinkedIn, Facebook deprioritizes posts with external links in the main text. Use `firstComment` to share your URL after publishing to protect your organic reach. - **Use the `link` setting for intentional link shares.** When you explicitly want a link preview card (with title, image, and description), use the `link` setting. This tells Facebook to generate the preview from the URL's Open Graph meta tags. ## Common questions about posting to Facebook ### What is the difference between a Facebook Reel and a standard video post? Reels are vertical (9:16) short-form videos between 3 and 90 seconds. They appear in the dedicated Reels tab and get significantly more organic reach. Standard video posts support any aspect ratio and can be up to 240 minutes long. Set `videoType` to `"reel"` or `"video"` in `platform_content.facebook.settings` when [creating a post](/docs/api/create-post). ### How do I create a link share post with a preview card? Use the `settings.link` field in `platform_content.facebook` with a valid HTTPS URL. Facebook generates a preview card automatically from the URL's Open Graph meta tags (title, description, image). You do not need to attach any media -- the preview is generated from the linked page. ### Can I post to Facebook Groups via the API? No. The PostEverywhere API currently supports posting to Facebook Pages only. Facebook's API does not allow third-party apps to post to Groups. Connect your Page as a social account and use its `account_id` when creating posts. ### Should I put links in the post body or in a first comment? Use the `firstComment` setting for external links. Facebook's algorithm deprioritizes posts that contain links in the main text. By placing your link in the first comment (posted automatically after publishing), you preserve organic reach while still driving traffic. ### Will my posts show "Published by PostEverywhere" branding? Not to your audience. Facebook shows a small "Published by [name] · PostEverywhere" attribution line on Page posts made through any third-party tool, but it is visible **only to admins and editors of that Page**. Your followers and the public see a completely normal post with no tool branding anywhere; you can verify this yourself by viewing the post in an incognito window while logged out. The same line appears for Buffer, Hootsuite, and every other scheduler, it cannot be removed (Facebook attaches it to whichever tool published), and it has zero effect on the post's appearance or reach. ### Can I edit a Facebook post after it's published? No. `PATCH /v1/posts/:id` is only valid for posts in `scheduled` or `draft` status. Once Facebook accepts the publish, the post status becomes `published` and our API returns `400 invalid_post_status`. You can edit a live Page post's text directly in Facebook's UI, but media and Reel covers cannot be changed after publishing. ## Other platforms you can publish to - **[Instagram](/docs/platforms/instagram)** -- owned by Meta, supports cross-posting of Reels and image content - **[LinkedIn](/docs/platforms/linkedin)** -- similar post formats with text, image, video, and link support - **[Threads](/docs/platforms/threads)** -- Meta's text-first companion platform ## Related Facebook and API reference pages - [API Reference -- Create Post](/docs/api/create-post) - [Upload Media](/docs/api/init-media-upload) - [Quick Start Guide](/docs/quick-start) - [Facebook Scheduler on PostEverywhere](https://posteverywhere.ai/facebook-scheduler) **Related:** [Facebook media requirements](/docs/media-requirements) · [Page token health](/docs/account-health) · [scheduling Facebook posts with an API](/blog/post-to-facebook-api) · [the social media API overview](/social-media-api)