Skip to content

Guides

How to publish posts to Facebook through the SkedCast API

Publishing to Facebook through the SkedCast API is one POST to /v1/posts: connect a Page once, then send a compose request naming the account and, optionally, a facebook variant for feed/Reel/Story overrides and a post-publish first comment.

Browse docs

6 min read

Before you publish#

You need one already-connected account for the platform. Connect it yourself in the Agency Console, or — if a client owns the account — mint a self-serve connect link with POST /clients/:id/connect-invites and send it to them; they authorize from that page without ever getting a SkedCast login.

GET /v1/accounts lists what's connected, with each account's id — that id is what you pass in targets.accountIds below.

Compose and schedule#

bash
curl -X POST https://api.skedcast.com/v1/posts \
  -H "Authorization: Bearer sked_live_YOUR_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "clientId": "<clientId>",
    "content": "Launch day is here 🚀",
    "mediaIds": ["<mediaAssetId>"],
    "targets": { "mode": "selection", "accountIds": ["<facebookAccountId>"] },
    "schedule": { "type": "at", "scheduledAt": "2026-07-01T15:00:00Z" }
  }'
A minimal facebook post, scheduled for a specific time.

Publish posts to Facebook: the API fields#

Everything platform-specific goes in one variants entry with "platform": "facebook" and an overrides object. The adapter reads only the keys it declares (below) and ignores the rest — send facebook keys on a facebook variant, nothing more.

FieldTypeValues / defaultNotes
contentTypeenumfeed \| reel \| storyDefaults to feed.
firstCommentstringNeeds the Page engagement-management permission. Posted right after publish. Best-effort: a failed comment never fails the post and is not reported, so verify on the published post.

Verbatim from the REST API reference's Facebook table.

With the platform-specific overrides#

json
{
  "clientId": "<clientId>",
  "content": "New product drop 📦",
  "mediaIds": ["<mediaAssetId>"],
  "targets": { "mode": "selection", "accountIds": ["<facebookAccountId>"] },
  "variants": [
    { "platform": "facebook", "overrides": { "contentType": "reel" } }
  ],
  "schedule": { "type": "at", "scheduledAt": "2026-07-01T15:00:00Z" }
}
The same POST /posts body, with a variants entry added.

Checking the result#

Publishing fans out into one post target per account. GET /post-targets/:id (or GET /posts/:id) reports status, plus externalId (facebook's own post id) and permalink (its public URL) once published. Subscribe to the target.published / target.failed webhooks instead of polling if you can accept inbound HTTP — see the webhooks guide.

facebookapipublish

FAQ

Can I schedule a Facebook Reel through the API, not just a feed post?
Yes — set `variants[].overrides.contentType` to `"reel"` on a facebook variant with a video in `mediaIds`. Omit `contentType` (or set `"feed"`) for an ordinary feed post, or `"story"` for a Story.
Does the API support Facebook's own native scheduler?
Yes — set the post-level `scheduleMode` to `"native"` to hand Facebook (and YouTube) targets to the platform's own scheduler instead of SkedCast's managed queue.
Does the API let me share posts to Facebook, not just schedule them?
Yes — the same `POST /v1/posts` call that schedules a post can also publish immediately with `schedule: { "type": "now" }`, so you can share to Facebook via the API whether you're scheduling ahead or posting right away.
Is SkedCast's Facebook integration built on the Graph API?
Yes — Facebook and Instagram publishing both run on Meta's Graph API (the same Facebook Instagram Graph API Meta documents for both platforms), so scopes, App Review requirements, and rate limits follow Meta's own rules.

Ready to broadcast everywhere?

Sign up free — no credit card. You land on the Free plan, and you can start a one-time 7-day Studio trial from your workspace whenever you are ready. Connect your first accounts, import a batch, and watch one post fan out across every platform.