Skip to main content
Multi Post Social

Made for

Social Media API for Developers: REST, Webhooks and MCP

Updated · Multi Post Social guide

A social media API should let you treat posting, channels and analytics as ordinary resources: create, list, update, delete, and get told when something changes. The Multi Post Social API does that over REST with JSON, API keys per workspace, signed webhooks and clear rate limits per plan. An MCP server exposes the same capabilities to AI agents, with a rule that nothing publishes without a human approval step. This page is the overview; the API documentation has every endpoint and field.

REST API overview

The base URL is /v1 on the API host shown in your workspace settings. Resources mirror the product: channels, posts, media, ideas, inbox, analytics, streams and webhooks. Every list endpoint supports cursor pagination, filtering by status and date, and sparse field selection. Times are ISO 8601 in UTC; the API returns the channel time zone alongside any scheduled time so you can display it correctly.

Core resources of the social media API
ResourceMethodsWhat it covers
/v1/channelsGETConnected channels, status, posting schedule, time zone; connection itself happens in the app through each network’s login
/v1/postsGET, POST, PATCH, DELETECreate to queue, schedule or draft; per-channel variants; thread items; first comment; retry a failed post
/v1/mediaPOSTUpload by URL or multipart; returns a media id and format checks per network
/v1/analyticsGETPer-post and per-channel metrics, best-time heat map, date-range summaries
/v1/inboxGET, POSTList items, reply, label, assign, mark done
/v1/streamsGET, POST, DELETEListening streams and their mentions
/v1/webhooksGET, POST, DELETERegister endpoints for events

Authentication with API keys

Create a key in Settings → API keys. Keys are scoped to one workspace and one of three scopes: read, write or admin. The full key is shown once; afterwards only the prefix is visible, so store it in your secret manager at creation time. Send it as a bearer token. Rotate a key by creating a new one, switching your integration, then revoking the old one; both work during the overlap. Keys never grant access to the network tokens themselves.

Example: create a post for two channels

One request creates a post group: a base text, an optional variant per channel, media with alt text, a schedule mode (queue, at with a timestamp, now or draft) and tags.

POST /v1/posts
Authorization: Bearer mps_live_7f3a...
Content-Type: application/json

{
  "channel_ids": ["ch_8k2v", "ch_1m9q"],
  "text": "Three small changes that made our Monday planning shorter.",
  "variants": { "ch_1m9q": { "text": "Three changes that shortened our Monday planning." } },
  "media": [{ "url": "https://example.com/planning.png", "alt": "A weekly planning board" }],
  "schedule": { "mode": "queue" },
  "tags": ["Tips"]
}
HTTP/1.1 201 Created

{
  "group_id": "grp_c4t8",
  "posts": [
    { "id": "post_x1", "channel_id": "ch_8k2v", "status": "queued", "scheduled_at": "2026-11-03T09:00:00Z" },
    { "id": "post_x2", "channel_id": "ch_1m9q", "status": "queued", "scheduled_at": "2026-11-03T09:00:00Z" }
  ]
}

Validation errors come back as 422 with a list of problems per channel, such as a caption over the X limit or an image ratio Pinterest rejects. The same checks run in the composer, so the API and the app always agree.

Webhooks

Register an HTTPS endpoint and choose events. Each delivery is signed with an HMAC header you verify with the webhook secret; deliveries retry with backoff for 24 hours and you can replay any event from Settings.

Webhook events
EventWhen it firesPayload highlights
post.publishedA post reached the networkpost id, channel id, network post URL
post.failedA post could not publishpost id, reason code, whether a reconnect is needed
post.approval_requestedA contributor submitted a postpost id, author, approvers
post.approved / post.rejectedAn approver decidedpost id, approver, note
channel.disconnectedA network token expired or was revokedchannel id, network
inbox.receivedA new comment, message or mention arriveditem id, kind, channel id, sentiment
stream.alertA listening stream passed its thresholdstream id, count, window

Rate limits per plan

Limits apply per workspace and reset on a rolling window. Every response carries X-RateLimit-Remaining and X-RateLimit-Reset headers; a 429 includes Retry-After.

API allowances by plan
PlanAPI keysRequests per 30 daysWebhooks
Free13,000No
Essentials37,500Yes
Team515,000Yes
Agency1050,000Yes
EnterpriseCustomCustomYes

Burst limits of 100 requests per 15 minutes apply on every plan. See the pricing page for the rest of each plan.

Linky the chain-link dog connecting a laptop with code to a small AI agent figure

MCP server for AI agents

The Model Context Protocol server exposes the API as tools an agent such as Claude or ChatGPT can call: read performance for a date range, list upcoming posts, draft a week of posts, add drafts to a workspace, reply to inbox items as drafts, and summarize a listening stream. Two rules are fixed. First, the server uses your API key's scope, so a read key can never write. Second, anything an agent creates lands as a draft or in Needs approval; a person approves in the app before it publishes. The integrations guide shows how to connect an agent in a few minutes, and the AI assistant guide explains how the in-app assistant differs from an external agent.

Safe use of the API

Keep API keys out of client-side code and repositories, use read scope wherever write is not needed, verify webhook signatures, and respect network rules in your automation: no duplicate mass posting, no engagement buying, no scraping of other people's data through the inbox endpoints. Abuse leads to key revocation under the acceptable use policy. Report security issues as described in the security guide.

Frequently Asked Questions

Can I connect a channel through the API?

No. Connecting requires the network’s own OAuth login in the app so that Multi Post Social never handles network passwords. After that, the channel is available to the API.

Is there a sandbox?

Every workspace can create a test channel that accepts posts without publishing anywhere. Use it with a free-plan key to build and test before touching real channels.

Which languages have SDKs?

The API is plain JSON over HTTPS and works with any HTTP client. Official examples cover JavaScript, Python and cURL in the API documentation.

Can an agent publish without approval?

Not through the MCP server. Agent-created posts always wait as drafts or in Needs approval. Direct API calls with a write key can queue posts, which is the intended path for your own automation.

Get a free API key

Create a free account, generate a key in Settings and make your first request against a test channel.