Facebook Pages is restricted to approved beta workspaces. Meta approval for general customer access is pending. Personal profiles and Groups are unsupported.
Connect a Page
Open Brands → Connected Accounts → Facebook Page in the app. Complete official Facebook consent, then select the intended eligible Pages. Request beta access if the app shows Request access. Tokens remain on the server; never paste a Page access token into an API request or MCP client. The CLI can open the same connection flow:client.brands.facebookConnection('my-brand'). Page consent and explicit selection happen in the app.
Create a draft
Usefacebook as the platform and always pass explicit connected Page IDs, including when a brand has only one Page.
https://app.autoposting.ai/api-proxy/posts with your Autoposting API key. Omitting scheduledAt saves a draft; creation does not publish immediately.
- CLI
- SDK
- MCP
ap posts publish <post-id> publishes immediately.Formats and overrides
Media uses
{ "url": "https://...", "type": "image" } or "video". Provider media constraints also apply. Upload local files through the CLI or app; use the released upload-media MCP tool according to its input schema.
platformTexts.facebook overrides the shared caption; "" is intentional. platformMedia.facebook overrides shared attachments; [] excludes them. Omit either property to use shared content. Edit through PUT /posts/:id, ap posts update <id> --from <file.json>, the SDK posts.update, or MCP update-post.
Outcomes and recovery
Read each Page outcome inplatformResults.facebook.accounts. A Page can be published, failed, pending or unknown. Remote post IDs and URLs are returned when available; a missing URL is not proof that publishing failed.
Only Pages listed in the server’s facebookRecoveryPageIds are eligible for explicit recovery. Never republish a successful Page or blindly retry an Unknown result.
- API:
POST /posts/:id/retry?platform=facebookorPUT /posts/:id/schedulewith{ "scheduledAt": "future-ISO-time", "platform": "facebook" }. - CLI:
ap posts retry <id> --platforms facebook, orap posts schedule <id> --at <future-ISO-time> --platform facebook. - SDK:
client.posts.retry(id, 'facebook')orclient.posts.schedule(id, futureTime, 'facebook'). - MCP:
retry-postorschedule-post, withidandplatform: "facebook".
{ "cancel": true }, CLI --cancel, or SDK posts.unschedule(id). CLI MCP v0.5.4 has no cancellation tool.

