Works with all AI agents

Connect your AI agent

Choose your AI agent and connect in seconds.

Add to Claude

Works on every Claude plan, including free. Full Claude guide

  1. 1

    Add to Claude

    One click from Claude’s connector directory.

  2. 2

    Sign up or sign in

    Takes seconds, then you’re sent straight back.

  3. 3

    Ask Claude

    “Plan and schedule my posts for next week.”

PostEverywhere Facebook API Guide

PostEverywhere API reference for Facebook: request fields, video types, link previews and examples for Page posts, Reels and link shares.

Publish text posts, image posts, Reels, video posts, and link shares to Facebook Pages. PostEverywhere handles Facebook's Graph API interactions, media uploads, and post creation through a single endpoint. For a general overview of all supported platforms, see the Introduction.

Connect your Facebook account to PostEverywhere

Connect Facebook from the dashboard with OAuth, or headlessly from code: mint a connect link and hand it to the account owner - no dashboard session needed. Both flows are covered in 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 vertical video uploads.
Video post Video (MP4) Standard video post with any aspect ratio. Set videoType to "video", or contentType to "Post" or "Video". A landscape video is always a regular video post.
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:

{
  "platform_content": {
    "facebook": {
      "content": "Facebook post text",
      "settings": {
        "videoType": "reel",
        "link": "https://example.com"
      }
    }
  }
}

Settings Reference

Setting Type Default Description
content string N/A Override the default text with a Facebook-specific version.
contentType string N/A For a video: "Reels" posts a Reel; "Post" or "Video" posts a regular video. settings.videoType wins if both are set.
settings.videoType string "reel" Video format: "reel" (vertical, 9:16) or "video" (any aspect ratio). video_type is also accepted. A landscape video always posts as a regular video, even when "reel" is asked for.
settings.link string N/A URL to share on a text or single-image post. Facebook generates a preview card with title, description, and thumbnail.

First comments are not available on Facebook through the API yet. A firstComment (or first_comment) sent for Facebook is removed before the post is saved, and the response notes say so. They work on X.

Video Types

Value Aspect Ratio Description
reel 9:16 (vertical) Facebook Reel. Appears in the Reels tab and feed. Default for video uploads; a landscape video posts as a regular video instead.
video Any Standard video post. Supports landscape, square, or portrait aspect ratios.

Publish to Facebook: a working request

Schedule a Facebook Reel

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"
        }
      }
    }
  }'

Schedule a Link Share Post

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).",
        "settings": {
          "link": "https://example.com/blog/scheduling-strategies"
        }
      }
    }
  }'

Schedule a Standard Video Post

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 (longer is refused with 400 content_too_long)
Image formats JPEG, PNG, WebP, GIF
Image max file size 20 MB
Video format MP4 (H.264)
Video max file size 4 GB
Reel duration 3 - 90 seconds
Reel aspect ratio 9:16 (vertical, 1080x1920)
Standard video duration Up to 4 hours
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.
  • 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 4 hours long. A video over 90 seconds, or any landscape video, always posts as a regular video. Set videoType to "reel" or "video" in platform_content.facebook.settings, or set contentType to "Reels" (Reel) or "Post"/"Video" (regular video), when creating a post. A landscape video always posts as a regular video.

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.

Can the API post a first comment on Facebook?

Not yet. A firstComment sent for Facebook is removed before the post is saved, and the response notes say so. To share a link, use settings.link for a preview card or put the URL in the post text.

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 -- owned by Meta, supports cross-posting of Reels and image content
  • LinkedIn -- similar post formats with text, image, video, and link support
  • Threads -- Meta's text-first companion platform

Related: Facebook media requirements · Page token health · scheduling Facebook posts with an API · the social media API overview