/api/v4/social/connections/disconnectDisconnect a connection
Takes a connected social account offline immediately; its slot in the account-wide pool is held until the end of the billing period.
Parameters
Body
| Name | Type | Required | Description |
|---|---|---|---|
| input | object | required | Wrapper object. The entire request body must be nested under `input`. |
| input.socialProfileConnectedChannelId | string | required | UUID of the connection to remove, the `id` of a row from GET /social/brands/{brandId}/connections. |
Sample request
Ready-to-paste body. Replace placeholder IDs and values with yours.
{ "input": { "socialProfileConnectedChannelId": "b81d5b3c-4a90-4f6a-9c11-71e0dd2fa4a7" }}Responses
200Connection removed.
{ "data": { "disconnectSocialConnectedChannel": { "success": true, "error": null } }}200The connection could not be removed, most often because it belongs to a different brand (`SY95052`) or has already been disconnected. The status is still 200: read `success`.
{ "data": { "disconnectSocialConnectedChannel": { "success": false, "error": { "message": "SY95052: Connected channel does not belong to this brand", "code": "SY95052", "contextInfo": null } } }}401Unauthenticated, missing or invalid API key.
Removes one connected social account from its brand. The brand is not addressed directly: the connection ID identifies both. This is a one-way operation, with no cancel window and no undo. To restore the channel, issue a fresh connection link and have the user re-authorize.
Use case: a client revokes access to one channel. When a customer removes a
Page from your control, disconnect that channel so scheduled posts stop trying
to publish to it. Read the id from
the brand's connections, disconnect it, then
re-read the list to confirm.
Notes.
- The request body must be wrapped in an
inputobject. The field issocialProfileConnectedChannelId— the connection's own UUID, not the platform'sconnectedAccountIdand not the brand ID. - Check
success, not the HTTP status. A connection that belongs to a different brand, or that has already gone, returnsHTTP 200withsuccess: false. The payload carries no ID, so keep your own record of which connection you asked to remove. - Mind the near-miss. This body field is
socialProfileConnectedChannelId, withProfilein the middle. The adjacent insights endpoint takessocialConnectedChannelId— the same ID, one word shorter. They are one word apart and neither accepts the other's name. - Scheduled posts are not cancelled. A post that was scheduled to this
channel will fail at publish time with
SY95045rather than being dropped. Cancel it first withPOST /social/posts/cancelif you do not want the failure. - Already-published posts stay live. Disconnecting removes Synup's ability to publish and to read insights; it does not delete anything from the platform.
- The slot returns to the pool at renewal, not on success.
GET /social/limitsshows this straight away as a lowerusage.connectionsActiveand a higherusage.connectionsReleased, withusage.connections— the billable number the cap is applied to — unchanged until the billing period turns.usage.connectionsReleasedis how much capacity comes back at renewal. See Plans and add-ons. - Relinking the same account to the same brand is free. Reconnecting a
social account you disconnected from that brand earlier in the same period
reuses its existing slot: it moves back out of
connectionsReleasedintoconnectionsActiveand the billableconnectionsdoes not change. A slot is held per brand-and-account pair, so a different social account costs a new slot, and so does the same account on a different brand. - Archiving a brand disconnects every connection on it, so you do not need to call this first when archiving. The slots are held to period end there too — the release path makes no difference.
Write operation: not executed against the live account. The request and response shown are built from the API schema.
curl -X POST 'https://listingsapi.com/api/v4/social/connections/disconnect' \ -H "Authorization: API $LISTINGSAPI_KEY" \ -H 'Content-Type: application/json' \ -d '{ "input": { "socialProfileConnectedChannelId": "b81d5b3c-4a90-4f6a-9c11-71e0dd2fa4a7" } }'