Scheduling to Facebook Pages through SkedCast's API#
SkedCast's /v1 REST API schedules text, image, link, carousel, video, Reel, and Story to Facebook Pages the same way it does every other platform: one POST https://api.skedcast.com/v1/posts call with a content caption and a targets block naming the connected accounts. You need a Facebook Page (page admin access), connected once through the console (or minted as a self-serve connect link via POST /v1/clients/:id/connect-invites).
SkedCast is not a raw wrapper over Facebook Pages's own developer API — it is one versioned, platform-agnostic contract that fans a single compose call out across every connected network, with the Facebook Pages-specific fields listed below folded into the same request shape.
Example: schedule a post to Facebook Pages#
{
"clientId": "…",
"content": "Our Q3 roadmap is live — link in the first comment.",
"targets": { "mode": "accounts", "accountIds": ["…"] },
"schedule": { "type": "at", "at": "2026-10-01T09:00:00" }
}Facebook Pages facts#
| Fact | Value |
|---|---|
| Max caption length | 63,206 characters |
| Media per post | up to 10 media items per post. |
| Native platform scheduling | Yes — SkedCast hands the timer to Facebook Pages's own scheduler |
| SkedCast's default pacing | 50 posts/day, ~1 min apart per account (conservative anti-ban default — not Facebook Pages's own published rate limit; see the rate-limit guide below) |
Published-post URL (permalink) | the feed/video/Reel forms are derivable from the stored {pageId}_{postId} id; Stories are read live (permalink_url) since they have no addressable feed URL. |
Reading status and results#
GET https://api.skedcast.com/v1/post-targets/:id returns the Facebook Pages target's status (scheduled, published, failed, …), plus error, statusReason, and retryAt when it's parked waiting on something — SkedCast's own pacing, a platform rate limit, or media still transcoding, each with its own machine-readable reason. Once published, externalId and permalink (see the table above) point at the live post.
- Subscribe to
target.published/target.failedwebhooks (or the legacypost.*pair) instead of polling — see [Webhooks](/developers/webhooks). - Or connect an MCP client and ask an agent to check — see [Connect an AI agent](/mcp).
FAQ
- What can I schedule to Facebook Pages through the API?
- Facebook Pages posts of type: text, image, link, carousel, video, Reel, and Story, via one `POST https://api.skedcast.com/v1/posts` call — the same endpoint used for every other connected platform.
- Can I schedule directly on Facebook's own scheduler through the API?
- Facebook is one of only two platforms (with YouTube) where SkedCast hands the timer to the platform's own native scheduler instead of holding it ourselves — the API behaviour is identical either way; `nativeSchedule` in the capabilities response just tells you which engine owns the wait.
- How do I authenticate against the Facebook Pages API endpoint?
- The same way as every `/v1` route: an API key (`Authorization: Bearer sked_live_…`) or an OAuth 2.1 bearer token, scoped to `posts.compose` to schedule and `posts.read` to read back status. See Authentication.