Skip to main content
Facebook posting in Postsiva targets Facebook Pages only. Personal Facebook profiles are not supported for publishing.

Connect

curl -X POST "https://backend.postsiva.com/unified/oauth/url" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: psk_live_YOUR_KEY" \
  -d '{"platform": ["facebook"]}'
Grant Page permissions during OAuth. Postsiva stores tokens per Page.

Post types

TypeEndpoint
TextPOST /unified/post/text
ImagePOST /unified/post/image
CarouselPOST /unified/post/carousel
VideoPOST /unified/post/video

facebook_page_ids (required)

Every Facebook post must specify which Page(s) to publish to:
curl -X POST "https://backend.postsiva.com/unified/post/text" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: psk_live_YOUR_KEY" \
  -d '{
    "platforms": ["facebook"],
    "default_text": "Hello from our Facebook Page!",
    "facebook": {
      "facebook_page_ids": ["756356074224043"]
    }
  }'
Post to multiple Pages in one request:
{
  "platforms": ["facebook"],
  "default_text": "Shared announcement across Pages.",
  "facebook": {
    "facebook_page_ids": ["756356074224043", "793433700521081"]
  }
}
List connected Pages and their IDs via GET /unified/user-profiles/ or in the app under Settings → Integrations → Facebook.

Per-page text and images

When Pages need different copy or images, use maps keyed by Page ID:
{
  "platforms": ["facebook"],
  "default_text": "Default caption for Pages not in the map.",
  "facebook": {
    "facebook_page_ids": ["756356074224043", "793433700521081"],
    "facebook_page_texts": {
      "756356074224043": "Welcome to our main brand Page!",
      "793433700521081": "Regional update for our second Page."
    },
    "facebook_page_images": {
      "756356074224043": "media-uuid-for-page-one-image"
    }
  }
}
FieldTypeDescription
facebook_page_textsobjectMap of page_id → caption
facebook_page_imagesobjectMap of page_id → image_id or image_url
Pages not listed in facebook_page_texts fall back to default_text. Pages not in facebook_page_images use default_image_id or default_image_url.

Character limit

Facebook Page post text supports up to 63,206 characters — effectively no practical limit for normal posts. See Character limits.

Scheduling and drafts

Add scheduled_time (ISO 8601 UTC) to any post endpoint, or use draft: true to save without publishing:
{
  "platforms": ["facebook"],
  "default_text": "Scheduled Page post.",
  "facebook": { "facebook_page_ids": ["756356074224043"] },
  "scheduled_time": "2026-07-15T09:00:00Z"
}
See Scheduling and Drafts.

Reading posts and comments

EndpointUse
GET /unified/posts?platforms=facebook&page_id=PAGE_IDRecent Page posts
GET /unified/comments?platform=facebook&facebook_page_ids=PAGE_IDPage comments

Common errors

ErrorCauseFix
NOT_CONNECTEDFacebook not linkedComplete OAuth
Missing Page IDNo facebook_page_idsAdd at least one Page ID
403API key scope excludes FacebookUpdate key scope