Skip to content
DunSocial Docs

Overview

Base URL, headers, and how the DunSocial API is organized.

The DunSocial API is a REST API. You send JSON over HTTPS and get JSON back. Most routes need a signed-in user and a workspace.

Base URL

https://api.dunsocial.com

All paths in these docs are relative to that host. Example: GET /api/user/profile means https://api.dunsocial.com/api/user/profile.

What you can build

  • Schedule and publish posts from your own app or script
  • Manage drafts, media, and brand memory
  • Connect social accounts and list members
  • Receive events with webhooks when posts publish or fail

For terminal and CI workflows, prefer the CLI. For chat assistants, prefer MCP. Both use this same API under the hood.

Common headers

Header When Notes
Authorization Almost every route Bearer <token> — session or personal access token
Content-Type JSON bodies application/json
X-Workspace-Id Workspace-scoped routes Must be a workspace you belong to

Some routes also accept a workspace id in the path (/api/workspaces/:id/...) or as ?workspaceId=. Prefer X-Workspace-Id for consistency.

Response shape

Successful responses usually look like this:

{
"success": true,
"data": { }
}

List endpoints often paginate:

{
"success": true,
"data": {
  "items": [],
  "total": 0,
  "limit": 20,
  "offset": 0,
  "hasMore": false
}
}

Quick example

Sign in, then list workspaces:

curl -X POST https://api.dunsocial.com/api/auth/sign-in/email \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","password":"your-password"}'

Next: Authentication.

Not in these docs

We do not document internal or business-critical surfaces here, including billing checkout and payment webhooks, QStash publish/deliver workers, Slack and email workers, admin-only routes, and compatibility notification/QStash helpers used only by the DunSocial web app. If you need something that is missing, contact us.