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