Facebook posting API for Pages, built for social media agents
Blotato's Facebook posting API publishes text, photos, Reels, and Stories to a Facebook Page from one request, with the Page access tokens refreshed on our side.
Pages only. Meta's publishing API does not allow posting to a personal profile, so no tool can, and this page will not pretend otherwise.
- REST
POST https://backend.blotato.com/v2/posts- Auth
blotato-api-key: YOUR_API_KEY- MCP
https://mcp.blotato.com/mcp
Updated September 2026. API access is included on every paid plan and excluded from the free trial.
What the Facebook posting API does in Blotato
Every Facebook request carries a pageId, because Blotato publishes to Pages and one Facebook login can own several. GET /users/me/accounts/:accountId/subaccounts lists them. Every video publishes as a Reel: Blotato does not support regular feed video on Facebook. Text and image posts need no mediaType at all. Poll GET /posts/:postSubmissionId for the result.
Reels, Stories, and link posts
mediaType reel is required for any video. mediaType story publishes a Story from one image or video. The link field attaches a preview to a text post.
First comment up to 8,000 characters
firstComment publishes as the first comment right after the post goes live. Posts and Reels only, not Stories.
Page comments and Messenger from one key
GET /comments and POST /comments cover comments on your Page posts. GET /conversations, GET /messages, and POST /messages cover Messenger, and every Facebook message carries the pageId it sends from.
DM automation on Page conversations
POST /dm-automations builds reply-only auto-replies triggered by a comment or an incoming message, inside the 24-hour reply window Meta enforces.
Two fields decide whether a Facebook post publishes: pageId and mediaType
pageId is required on every call. Leave it out and the request fails, because Blotato will not guess which Page you meant.
mediaType is required the moment you attach a video. Send reel for a video post or story for a Story. Blotato publishes all Facebook video as Reels and does not support regular feed video, so a video with no mediaType is the most common reason a Facebook post fails here.
POST https://backend.blotato.com/v2/posts
{
"post": {
"accountId": "98432",
"content": {
"text": "New episode is up. Link in the first comment.",
"mediaUrls": ["https://cdn.example.com/episode-teaser.mp4"],
"platform": "facebook"
},
"target": {
"targetType": "facebook",
"pageId": "123456789",
"mediaType": "reel",
"firstComment": "Watch the full episode: https://example.com/ep-12"
}
}
}
Response: { "postSubmissionId": "uuid" }, a receipt. Poll GET /posts/:postSubmissionId for published or failed.
Every field: help.blotato.com/api/llm. Facebook's own reference: the Graph API docs.
What comes off a Facebook Page integration
- The inbox is behind the same key as the publish call. Comments, Messenger conversations, and reply-only automations are all Instagram and Facebook surfaces, so a Facebook Page is one of the two places an agent can run the whole loop.
- Expiring Page tokens stop being your problem. Page access tokens expire on Meta's schedule, which is a common reason a hand-built Facebook integration stops publishing. Blotato refreshes them.
- Meta's app review happened once, on our side. Registering an app, passing App Review, and verifying the business happened once, on our side. You connect a Page.
Four steps to a live Facebook Page post
- Connect Facebook. Sign in to Blotato and connect the Facebook login that administers your Pages. Each Page shows up as a subaccount.
- Generate an API key. In Settings, open API and generate a key. That click starts the paid Starter plan, since the trial does not cover the API.
- Fetch the pageId. GET /users/me/accounts, then GET /users/me/accounts/:accountId/subaccounts. Each Page comes back as a subaccount, and its id is what goes in target.pageId.
- POST and poll. Send the request above and poll GET /posts/:postSubmissionId until it reads published, or failed with the error message attached.
If a model decides what the Page posts, skip the curl: the Facebook tools are on the MCP server at https://mcp.blotato.com/mcp.
Setup per client is on the Facebook MCP server page, and the walkthrough of
posting to a Facebook Page from Claude shows the prompt-to-post flow. A prompt like
"Publish this video to our Facebook Page as a Reel and add the episode link as the first comment." calls the same endpoint this page documents.
Facebook Page posting caps, media specs, and cost
Blotato allows 25 posts per 24 hours per Facebook Page. Each Page has its own count, so three Pages under one login can publish 75. Facebook recommends staying under 5 a day per Page for organic reach, and that advice is worth more than the ceiling.
| Facebook limit | Value through Blotato |
|---|---|
| Blotato daily cap | 25 posts per Page per 24 hours (Facebook recommends under 5) |
| Text | 63,206 characters |
| Images | up to 30 MB, 1:1, 4:5 or 1.91:1 |
| Video (Reels) | MP4, MOV or AVI, up to 1 GB, 3 to 90 seconds, 9:16, at least 540 by 960 |
| First comment | up to 8,000 characters |
The Graph API itself has no per-call price. What App Review and business verification cost you in weeks is laid out in the Facebook API pricing guide.
On Facebook, this API covers publishing, scheduling, analytics, comments, direct messages and DM automation. Caps are listed at help.blotato.com/settings/social-accounts.
MCP tools that reach Facebook
The tool names an agent calls on the MCP server for this platform, verbatim from the server's tool list. The REST endpoint behind each one is in the API reference.
blotato_list_accountsblotato_create_postblotato_get_post_statusblotato_list_postsblotato_list_schedulesblotato_get_scheduleblotato_update_scheduleblotato_delete_scheduleblotato_create_presigned_upload_urlblotato_list_top_postsblotato_get_post_analyticsblotato_list_commentsblotato_get_commentblotato_post_commentblotato_list_conversationsblotato_get_conversationblotato_list_messagesblotato_get_messageblotato_send_messageblotato_create_automationblotato_list_automationsblotato_update_automationblotato_update_automation_triggerblotato_delete_automationblotato_list_automation_runsblotato_list_automation_logsblotato_get_automation_analytics
Facebook posting API FAQs
01 Can an API post to a personal Facebook profile?
02 Why does my Facebook video post fail through the API?
03 Can I publish the same post to several Facebook Pages?
04 Does the Facebook posting API include Messenger and comments?
Same key, eight more platforms
Facebook is one targetType on the same endpoint. The social media API page has the comparison table of every platform's required fields and caps.
Blotato Your AI Agent still can't post to social media.
Point Claude, ChatGPT, n8n, or your own agent at Blotato's MCP and that's fixed: 9 platforms behind one key, flat $29/mo.
Connect your agentFlat pricing. Cancel anytime.