Facebook API: posting reference
Facebook is supported via the Facebook Graph API. OmniSocials posts to Facebook Pages (not personal profiles or Groups). The Facebook Page must be administered by the user who connects the account, and a workspace posts to one Page: when the sign-in gives access to several Pages, you pick one right after connecting.
For an overview and use cases, see Facebook API.
Channel ID: facebook
Supported content types
| Type | Supported | Notes |
|---|---|---|
| Feed post | ✅ | Text with photos, one video, or a link preview (not mixed) |
| Story | ✅ | Image or video, no caption. Up to 10 slides per post, each published as its own story in order |
| Reel | ✅ | Vertical video |
Minimal example
Terminal
Unlike Instagram, Facebook accepts text-only posts with no media.
Platform-specific options
Set these under the facebook key on the post body:
| Field | Type | Description |
|---|---|---|
facebook.first_comment | string | Text auto-posted as the first comment right after the post publishes (max 8000 characters). Feed posts and reels; not posted for stories. |
facebook.thumbnail_type | string | Video thumbnail for feed videos and reels: from-video or from-library. The top-level video_cover does the same for every platform at once. |
facebook.thumb_offset | number | Timestamp in milliseconds, used when thumbnail_type is from-video. |
facebook.cover_url | string | URL of a custom cover image (JPEG or PNG, max 10 MB), used when thumbnail_type is from-library. |
Facebook has no required option fields. Aside from the optional first comment and thumbnail, the default create-post body is sufficient for most use cases.
The thumbnail is set right after the video is live (POST /{video_id}/thumbnails). If Facebook refuses it, the post still publishes with the default frame and the refusal is logged.
Media requirements
| Media | Requirement |
|---|---|
| Image | JPEG, PNG, GIF, or WebP (WebP is transcoded to JPEG at post time). Max 10 MB. |
| Video | MP4 or MOV, up to 240 minutes, max 1 GB |
| Story image | JPEG or PNG, 9:16 recommended |
| Story video | MP4, up to 60 seconds per slide (OmniSocials' cap) |
| Reel video | MP4, vertical 9:16, up to 240 minutes (same as a feed video; Facebook removed the 90 second Reel limit) |
| Multiple photos | 2 or more images in one feed post |
Facebook does not support mixing images and video in the same post: attach images only, or a single video. Mixed media returns a 400 validation_error at create/schedule time.
Alt text. Per-media alt entries are accepted but not delivered; the platform's API does not support alt text on third-party posts. It is safe to send the same media objects you use for other platforms.
Character limit
63,206 characters per post. In practice you will never hit it; write for readers, not the cap.
Comment-to-DM automations
A Facebook Page post can send a private message to everyone who comments a keyword on it, once per person, with an optional public reply under the comment. The message lands in the person's Messenger. The same automation can also listen to a keyword in a Messenger message to the Page. Facebook has no story replies, so the story_reply trigger is Instagram only.
Meta's rules are the same as on Instagram: one private reply per comment, within 7 days of the comment, and a follow-up only after the person answers (24-hour window). OmniSocials sends at most 180 DMs an hour per Page.
Attach one at create time with comment_dm_automation and platforms: ["facebook"] (or ["instagram", "facebook"] for a post that goes to both), or manage them with the Automations endpoints and platform: "facebook". For a post published on the Page outside OmniSocials, pass its id as facebook_post_id. In the activity log a person shows by name, since Facebook has no @handle.
JSON
Limitations
- Personal Facebook profiles (not Pages) are not supported
- Posts to Groups are not currently supported
- One Facebook Page per workspace
- Link previews are generated automatically from the first URL in the post content when no media is attached. Once Facebook has drawn the preview card, OmniSocials removes the URL from the post text; when Facebook draws no card, the URL stays in the text
- Mentioning another Page is possible in the OmniSocials composer only, not through the API
- Facebook reports no reach for posts; see Analytics for the metrics that are collected
- Facebook's API does not guarantee delivery timing for scheduled posts. Expect publish times within a few minutes of the scheduled time.