Channels

Facebook

How an agent publishes to a Facebook Page through uplika: feed posts, link posts, reels and stories, and what the API does not offer.

Quick reference

NameTypeDescription
characterstext63,206
imagesmediaup to 10 per post; more than that and the first 10 go out with a warning
carouselmedia2-10 items
videomedia1 per post
text alonemediaallowed
posts / 24hlimit100
deletes / 24hlimit50
statusstatelive

These numbers come from the same file the server validates against. Text alone publishes. A link post (options.facebook.link) gets a preview card and cannot carry media alongside.

Feed, reel or story?

options.facebook.contentType picks it. A single video becomes a reel by default (3 to 90 seconds). A story takes exactly one image or video and is rejected if you send any text: publish the story with no content and put the words in a feed post.

How do I publish my first post?

Call publish with text, or with a media id. Nothing else is required.

curl -X POST https://api.uplika.com/v1/posts \
  -H "Authorization: Bearer $UPLIKA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Read the full story",
    "accountIds": ["conn_..."],
    "options": { "facebook": { "link": "https://uplika.com" } }
  }'

What options.facebook takes

NameTypeDescription
contentTypefeed | story | reelWhat kind of post. Defaults to reel for a single video and feed otherwise. A Facebook story is rejected if you send any text: publish the story with no content, and put the words in a feed post instead. A story also takes exactly one image or video and no first comment.
linkstringMakes a link post with a preview card. Cannot be combined with media.
titlestringReel title, separate from the caption.
scheduledPublishTimestringISO 8601 time to publish a feed post later, 10 minutes to 28 days from now. Feed posts only, not reels or stories. Cannot be combined with firstComment (a scheduled post is not live yet, so nothing to comment on). This is Facebook's own scheduling; for scheduling across channels use scheduledAt on the post. (API only; the dashboard does not draw it.)
firstCommentstringA comment we post right after publishing. Not on stories, and not on scheduled posts. If it fails the post still goes up, with a warning.
contentstringText for this channel only. When set it replaces the shared content for this channel, and the length and media checks use it. Leave it out to use the shared content.

Generated from the same schema the server validates with. GET /v1/platforms returns it too. scheduledPublishTime is Facebook's own scheduling for feed posts; for a post going to several channels use scheduledAt on the post instead.

What is not available?

Personal profiles (Pages only), editing a published post, and deleting posts that were not published through this app. Comments left by others on your post come through list_replies.

Frequently asked

Can I post to my personal profile?

No. Meta's API publishes to Pages only, and that is what uplika connects. A profile has no equivalent permission.

Why was my story rejected?

Because it carried text, or more than one media item, or a first comment. A Facebook story is exactly one image or video and nothing else.

Can I schedule a Facebook post?

Yes, two ways. scheduledAt on the post is uplika's scheduling and works with any other channel in the same call. options.facebook.scheduledPublishTime is Facebook's own, feed posts only, 10 minutes to 28 days out.