Build on WePost
A REST API, signed webhooks and an MCP server for automating social publishing, with the same validation, approvals and no-double-post guarantees as the app.
Early access Available to early-access workspaces. Request access and we will enable API keys for your workspace.
REST API
- Base URL
https://api.wepo.st/v1- Format
- JSON over HTTPS
- Authentication
Authorization: Bearer wp_live_…with a workspace or operator API key. Keys have read, write or admin permissions, are shown once when created, and can be revoked at any time.- Idempotency
- Every
POSTaccepts anIdempotency-Keyheader. Retrying with the same key returns the original result instead of creating a duplicate. - Specification
- An OpenAPI description and a typed TypeScript SDK are provided to early-access workspaces.
# Create a post for Instagram and YouTube
curl -X POST https://api.wepo.st/v1/posts \
-H "Authorization: Bearer $WEPOST_API_KEY" \
-H "Idempotency-Key: 2c1f7a52-summer-teaser" \
-H "Content-Type: application/json" \
-d '{
"workspace": "ws_northwind",
"caption": "Summer collection, first look",
"media": ["med_8Jx2"],
"targets": [
{ "account": "acc_ig_01", "type": "reel" },
{ "account": "acc_yt_01", "type": "short",
"options": {
"title": "Summer collection, first look",
"privacy": "public",
"made_for_kids": false
} }
],
"schedule": { "at": "2026-10-08T17:00:00Z" },
"ai_generated": false
}' Settings that express the account owner’s consent, such as TikTok privacy and interaction options or a YouTube title, visibility and made-for-kids flag, have no server-side defaults. Send them explicitly or the request is rejected.
Endpoints
The core resources. Full request and response schemas are in the OpenAPI description.
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/workspaces | List workspaces (operator key). |
| POST | /v1/workspaces | Create a workspace (operator key). |
| GET | /v1/accounts | Connected accounts with health, capabilities and remaining quota. Filter by workspace, platform or external_ref. |
| POST | /v1/connect-links | Create a connect link for a workspace, optionally limited to platforms, with an expiry, external_ref and return_url. |
| POST | /v1/media | Start a presigned (multipart) upload. |
| POST | /v1/media/{id}/complete | Complete an upload; WePost probes the file and makes it ready. |
| POST | /v1/media/import | Import media from a URL. |
| POST | /v1/posts | Create a post: caption, media, per-platform options, targets, schedule (a time, "next_slot" or "now"), ai_generated, draft. |
| GET | /v1/posts | List posts, filtered by status or date range. |
| GET | /v1/posts/{id} | A post with the status and permalink of every target. |
| PATCH | /v1/posts/{id} | Edit or reschedule a post before it publishes. |
| DELETE | /v1/posts/{id} | Cancel a scheduled post. |
| POST | /v1/posts/{id}/retry | Retry the failed targets of a post. |
| GET | /v1/usage | Posting and quota usage per account and per platform. |
Webhooks
Register an HTTPS endpoint and WePost sends a JSON event whenever something changes. Every delivery is signed with HMAC-SHA256 using your endpoint’s secret, so you can verify it came from WePost. Failed deliveries are retried with exponential backoff.
post.publishedEvery target of a post is live.post.partialSome targets published and some failed.post.failedThe post could not be published.post.needs_approvalA post is waiting for someone to approve it.account.connectedAn account was connected, for example through a connect link.account.needs_reconnectAn account’s access expired or was revoked and must be reconnected.
MCP server
WePost runs a Model Context Protocol server, so assistants and agent frameworks can publish through WePost with an API key. It uses the Streamable HTTP transport.
- Endpoint
https://api.wepo.st/mcp- Auth
- WePost API key
list_workspacesWorkspaces the key can accesslist_accountsConnected accounts and their healthimport_mediaImport media from a URLcreate_postCreate or schedule a postget_postStatus and permalinks of a postlist_scheduledUpcoming scheduled postscancel_postCancel a scheduled postcreate_connect_linkCreate a connect link for a workspace
Guarantees and good behavior
Never a double post
Idempotency keys on every write, and a publishing engine that confirms with the platform before any retry.
Validation up front
Posts are checked against each platform’s rules and limits when you create them, not when they are due.
Approvals for automation
Workspaces can require a person to approve API-created posts before they publish.
Connect links in code
Generate a connect link with your own external_ref and return_url to onboard users from your product.
AI disclosure
Set ai_generated: true and WePost applies each platform’s official label.
Scoped keys
Keys are stored hashed, scoped to a workspace, and can be revoked instantly. Every use is logged.
Questions about the API? Email support@wepo.st.
Get API access
The API, webhooks and MCP server are available to early-access workspaces. Tell us what you are building.