Skip to main content

Accounts API

The /v1/accounts endpoints manage the social accounts connected to your organization. You'll need account IDs to target posts.

Requires authentication. All data is scoped to your organization.


List accounts​

GET /api/v1/accounts

Returns the connected social accounts in your organization. Disconnected accounts (those with a disconnectedAt timestamp) are excluded.

Example​

curl https://<your-api-origin>/api/v1/accounts \
-H "Authorization: Bearer sx_live_YOUR_API_KEY"

Response — 200 OK​

{
"data": [
{
"id": "acc_abc123",
"platform": "instagram",
"username": "postbuzz",
"displayName": "post.buzz"
},
{
"id": "acc_def456",
"platform": "x",
"username": "postbuzz",
"displayName": "post.buzz"
}
]
}

Fields​

FieldDescription
idThe account ID. Use this as accountId when creating posts.
platformOne of the supported platforms (e.g. instagram, x).
usernameThe handle/username on the platform.
displayNameThe display name, where available.

Get a connect URL​

GET /api/v1/accounts/connect-url?platform=<platform>&client=web|mobile

Returns an OAuth authorization URL for connecting a new account. State and PKCE are handled server-side — you only need to send the user to the URL and wait for the account to appear in GET /v1/accounts.

Query parameters​

ParameterTypeRequiredDescription
platformstringyesPlatform identifier (see Platforms)
clientstringnoweb (default) or mobile (deep-link completion)

Response — 200 OK​

{ "data": { "url": "https://api.instagram.com/oauth/authorize?..." } }

Errors​

StatusWhen
400Platform doesn't use OAuth (e.g. Telegram, Bluesky) or isn't configured

Get an account​

GET /api/v1/accounts/{id}

Returns the full profile for one account.

Response — 200 OK​

{
"data": {
"id": "acc_abc123",
"platform": "instagram",
"platformId": "17841400000000000",
"username": "postbuzz",
"displayName": "post.buzz",
"bio": "Schedule everything.",
"avatarUrl": "https://...",
"signature": null,
"minPostGapMinutes": 0,
"followersCount": 12000,
"followersSyncedAt": "2026-07-01T00:10:00.000Z",
"tier": null,
"tokenExpiresAt": "2026-08-01T00:00:00.000Z",
"disconnectedAt": null,
"createdAt": "2026-01-15T09:00:00.000Z",
"updatedAt": "2026-07-01T00:10:00.000Z"
}
}
note

The response never includes platform access tokens — tokens stay server-side.

Errors​

StatusBody
404{ "error": { "code": "not_found", ... } }

Refresh an account​

POST /api/v1/accounts/{id}/refresh

Performs a server-side OAuth token refresh for the account. Returns the updated profile (same shape as get). Useful when tokenExpiresAt is approaching.


Disconnect an account​

DELETE /api/v1/accounts/{id}

Disconnects the account from post.buzz.

Response — 200 OK​

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

Account tools​

GET /api/v1/accounts/{id}/tools
POST /api/v1/accounts/{id}/tools/{tool}

Some platforms expose extra data that a connection flow needs before posting. GET lists the tools available for the account; POST runs one and returns its result inside data.

ToolPlatformResult
reddit-flairsRedditAvailable user flairs for the subreddit
pinterest-boardsPinterestThe account's boards

Errors​

StatusBody
400{ "error": { "code": "unknown_tool", "details": { "available": [...] } } }

Account analytics​

Account-level analysis (GET /v1/accounts/{id}/analytics) and forced insight refreshes (POST /v1/accounts/{id}/analytics/refresh) are documented on the Analytics page.

  • Posts API — use these account IDs to create posts.
  • Analytics — account analytics + refresh.
  • Platforms — capability and limit reference.