Skip to content
DunSocial Docs

List and connect

List and connect social accounts through the DunSocial API, and start OAuth flows for new platforms. List responses never expose OAuth access tokens.

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. Members get 403.

Start OAuth

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

Providers: x, linkedin, linkedin-business, threads, youtube, pinterest, instagram, reddit, tiktok, facebook. Facebook Pages are limited beta — connect the Page in the DunSocial app (OAuth starts there, same as every other provider).

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
POST .../pinterest/boards Create a board (name, optional privacy: PUBLIC or SECRET). Default is public.
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.