Skip to content
DunSocial Docs

List and connect

See connected accounts and start OAuth (no token secrets).

Social account routes need Bearer + X-Workspace-Id. List responses never include OAuth access tokens.

List accounts

GET /api/social-accounts

Also available as GET /api/workspaces/:id/social-accounts.

Each item includes id, provider, username / display name, avatar, expiry, and safe metadata.

Disconnect

DELETE /api/social-accounts/:id

Admins and owners only (canManageSocialAccounts). Members get 403.

Start OAuth

GET /api/social-accounts/oauth/:provider

Providers: x, linkedin, linkedin-business, threads, youtube, pinterest, instagram, reddit.

Returns { redirect } with the provider authorize URL. Pass ?redirect=1 to receive an HTTP 302 instead. Admins and owners only.

Pinterest alias: GET /api/social-accounts/oauth/pinterest/start.

Reddit eligibility helper (permissions only): GET /api/social-accounts/oauth/reddit/eligibility.

OAuth callbacks are browser redirects handled by DunSocial. You do not call them from your integration.

Bluesky (app password)

POST /api/social-accounts/connect/bluesky

{
"handle": "you.bsky.social",
"appPassword": "xxxx-xxxx-xxxx-xxxx"
}

Returns { socialAccountId, profile }.

Helpers: GET /api/social-accounts/bluesky/profile, POST .../bluesky/profile/refresh with { "socialAccountId": "..." }.

Composer helpers

Useful read-only helpers while composing:

Path Purpose
GET .../pinterest/boards Boards for a Pinterest account
GET .../reddit/flair-options?subreddit= Flair options
GET .../reddit/post-requirements Subreddit rules summary
GET .../x/heatmap Best-time heatmap data

Prefer /api/posts/* for publishing rather than any platform-specific publish shortcuts.