GET/v1/accounts

List connected accounts

Returns every connected account that belongs to a given profile, ordered by connection time with the most recent first. OAuth tokens are never included in the response, so it's safe to log or display anywhere your application needs to.

curl https://api.synposter.com/v1/accounts?profileId=9b3a... \
  -H "x-api-key: YOUR_API_KEY"

Query parameters

FieldTypeRequiredDescription
profileIdstringYesThe Synposter UUID of the profile whose connected accounts you want to list. The profile must belong to your developer account.

Response (200)

json
{
  "data": [
    {
      "id": "acct_...",
      "profileId": "9b3a...",
      "platform": "twitter",
      "platformAccountId": "1234567890",
      "handle": "alice",
      "status": "active",
      "scopes": [
        "tweet.read",
        "tweet.write",
        "users.read",
        "offline.access"
      ],
      "connectedAt": "2026-04-28T12:00:00Z",
      "lastRefreshedAt": "2026-04-28T13:00:00Z"
    }
  ]
}

Account fields

FieldTypeRequiredDescription
idstringYesThe Synposter UUID for this connected account. Use it whenever you target the account from another endpoint, like publishing a post or disconnecting it.
profileIdstringYesThe parent profile this account belongs to.
platformstringYesThe platform identifier. Currently always twitter; more platforms are on the way.
platformAccountIdstringYesThe platform's own user ID for this account, useful when you want to look the user up directly on the platform's API.
handlestringNoThe user's username on the platform, cached for display. May be null if the platform didn't return one at connect time.
statusstringYesOne of active, expired, or revoked. Synposter refreshes tokens automatically, so you should only see expired when the refresh itself fails (typically because the user revoked access on the platform's settings).
scopesstring[]YesThe OAuth scopes the user granted at connect time, like tweet.write.
connectedAtstringYesISO 8601 timestamp of when the account was first connected.
lastRefreshedAtstringNoISO 8601 timestamp of the last successful token refresh. Null if no refresh has happened yet.

Status codes

200The list was returned successfully. The data array is empty if the profile has no connected accounts yet.
400The profileId query parameter is missing, or isn't a valid UUID.
401The API key was missing or invalid.
404Either no profile with that ID exists, or it's owned by a different developer. The same code is returned in both cases so an attacker can't probe for valid IDs.
500Something failed on Synposter's side. Safe to retry.