List Social Accounts

Social accounts are the connected profiles and pages you publish to. Connect new accounts with the Connect API or in the Socialit app. Use their id as target_account_ids when creating posts. Each account can belong to one profile (or none) and to any number of groups.

The social account object

{
  "id": "sa_2Xa9kQ1mB3cD4eF5gH6iJ7kL8m",
  "profile_id": "pro_9aB8cD7eF6gH5iJ4kL3mN2oP1q",
  "group_ids": ["grp_..."],
  "platform": "linkedin",
  "account_type": "organization",
  "username": "socialit",
  "name": "Socialit",
  "display_name": "Socialit",
  "avatar_url": "https://...",
  "external_id": "urn:li:organization:123",
  "status": "active",
  "created_at": "2026-06-25T08:00:00.000Z"
}

Provider tokens are never exposed.

GET/v1/social-accounts

Filter to a single profile with ?profile_id=pro_..., or to a single group with ?group_id=grp_....

GET /v1/social-accounts
curl https://api.socialit.com/v1/social-accounts \
  -H "Authorization: Bearer sk_live_..."
{ "social_accounts": [ { "id": "sa_...", "platform": "linkedin", "...": "..." } ] }

Get Social Account

GET/v1/social-accounts/:id
GET /v1/social-accounts/:id
curl https://api.socialit.com/v1/social-accounts/sa_2Xa... \
  -H "Authorization: Bearer sk_live_..."
{ "social_account": { "id": "sa_...", "...": "..." } }

Update Social Account

PATCH/v1/social-accounts/:id

Assign the account to a profile (or pass null to unassign), or rename it.

PATCH /v1/social-accounts/:id
curl -X PATCH https://api.socialit.com/v1/social-accounts/sa_2Xa... \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "profile_id": "pro_9aB..." }'
{ "social_account": { "id": "sa_...", "profile_id": "pro_9aB...", "...": "..." } }

Check Health

GET/v1/social-accounts/:id/health

Runs a live token check and diffs the scopes granted to the connection against those the platform requires. Use it to detect connections that need to be reconnected before a scheduled post fails.

GET /v1/social-accounts/:id/health
curl https://api.socialit.com/v1/social-accounts/sa_2Xa.../health \
  -H "Authorization: Bearer sk_live_..."
{
  "health": {
    "ok": true,
    "token": {
      "valid": true,
      "strategy": "expiry",
      "expires_at": "2026-08-25T08:00:00.000Z",
      "detail": null
    },
    "scopes": {
      "posting": [{ "scope": "w_organization_social", "granted": true }],
      "analytics": [],
      "optional": [{ "scope": "r_organization_admin", "granted": true }]
    },
    "can_post": true,
    "can_analytics": false
  }
}
  • token.strategy is always-refresh for connections whose tokens are renewed on every publish (e.g. Bluesky); otherwise expiry.
  • can_post is true only when the token is valid and every posting scope is granted.
  • Scopes are grouped into posting (required to publish), analytics (insights), and optional.