Social Media API

Manage your social presence from one place

Base URL: https://api.wemasy.nl/api
ⓘ The token stays in this browser tab only (sessionStorage) and is sent to the WEMASY API only. Don't use production tokens on shared computers.

Analytics

POST analytics/posts: published posts with the newest snapshot per platform row. Filters: platform, format, hook, line, script, cut, pack, date_from, date_to (published_at, UTC), per_page, page

POST /services/social-media/v1/analytics/posts Auth

POST analytics/overview: totals and averages per platform and per format, best and worst by completion rate and by shares. Same filters as analytics/posts; the date range defaults to the last 90 days and the set is capped at 1000 posts

POST /services/social-media/v1/analytics/overview Auth

POST analytics/post/{id}/history: every snapshot of every platform row

POST /services/social-media/v1/analytics/post/{id}/history Auth

POST analytics/sync: {id}. Fetch the metrics of one post now (the refresh button; in the sandbox the way to see numbers at once)

POST /services/social-media/v1/analytics/sync Auth

Calendar

POST calendar/week — {week_start_date, timezone?} → posts grouped per day

POST /services/social-media/v1/calendar/week Auth

POST calendar/month — {month, year} → posts grouped per day

POST /services/social-media/v1/calendar/month Auth

POST queue/stats — counts for the dashboard cards

POST /services/social-media/v1/queue/stats Auth

Connection

POST connection/list — all connections for the project (no tokens)

POST /services/social-media/v1/connection/list Auth

POST connection/x/redirect — step 1 of the X OAuth flow

POST /services/social-media/v1/connection/x/redirect Auth

POST connection/bluesky/connect — handle + app password form (no OAuth)

POST /services/social-media/v1/connection/bluesky/connect Auth

POST connection/disconnect — revoke (best-effort) + delete

POST /services/social-media/v1/connection/disconnect Auth

POST connection/language {id, language} (#1057): the account's language label (nl, en, hi, pt-br). Empty or null: the project's language again. A post's text in that language goes to this account

POST /services/social-media/v1/connection/language Auth

POST connection/sandbox/connect — {platform, username}. Creates a connected row without OAuth. Refused (403) unless the sandbox is on, which itself needs APP_ENV local or testing (SandboxMode)

POST /services/social-media/v1/connection/sandbox/connect Auth

POST connection/{platform}/redirect

POST /services/social-media/v1/connection/{platform}/redirect Auth

POST connection/accounts — the cached selectable entities

POST /services/social-media/v1/connection/accounts Auth

POST connection/select — bind the chosen page/org/board/location

POST /services/social-media/v1/connection/select Auth

Posts

POST posts/list — filter by status/platform/date range

POST /services/social-media/v1/posts/list Auth

POST posts/get

POST /services/social-media/v1/posts/get Auth

POST posts/create — creates a draft (optionally scheduled directly)

POST /services/social-media/v1/posts/create Auth

POST posts/update — drafts and scheduled posts only

POST /services/social-media/v1/posts/update Auth

POST posts/delete — drafts only

POST /services/social-media/v1/posts/delete Auth

POST posts/schedule — {id, scheduled_at (UTC)}

POST /services/social-media/v1/posts/schedule Auth

POST posts/publish-now

POST /services/social-media/v1/posts/publish-now Auth

POST posts/cancel

POST /services/social-media/v1/posts/cancel Auth

POST posts/approve {id} (#711): only the project owner, signed in to the dashboard. Never through the AI chat or an API key

POST /services/social-media/v1/posts/approve Auth

A post file (store = files) also sends {fingerprint}: the post's approval_fingerprint as the dashboard showed it, so only that content is approved (decision 19 Oct 2026); a post changed since is refused.

POST posts/retry — failed platform rows only

POST /services/social-media/v1/posts/retry Auth

POST posts/duplicate — clone as a new draft

POST /services/social-media/v1/posts/duplicate Auth

POST posts/tag, {id, format?, hook?, line?, script?, cut?, pack?}: sets the analytics tags on any post, published ones too (posts/update refuses published posts). A key left out stays; null clears it

POST /services/social-media/v1/posts/tag Auth