Developers

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 POST accepts an Idempotency-Key header. 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.

WePost API endpoints
MethodPathPurpose
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 access
  • list_accountsConnected accounts and their health
  • import_mediaImport media from a URL
  • create_postCreate or schedule a post
  • get_postStatus and permalinks of a post
  • list_scheduledUpcoming scheduled posts
  • cancel_postCancel a scheduled post
  • create_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.