Reconnect one platform's chat
Read GET /v1/studios/{studioId}/chat/connectors with chat:read to see the
studio's current platform states and latest reconnect attempts. This read does
not reconnect anything. Connector status describes attachment, not a guarantee
that every future message will arrive.
To reconnect a desired platform, send a bodyless
POST /v1/studios/{studioId}/chat/connectors/kick/reconnect with studios:write
and studio edit permission. Replace kick with the selected platform key from
the snapshot. Only that platform is cycled; messages on it may pause briefly.
An ineligible platform returns 409 with safe guidance. Reconnecting cannot
replace an OAuth consent step when the account needs to be relinked.
202 acknowledges the operation. Keep showing progress while reconnectState
is reconnecting; show success only when the matching attempt becomes
succeeded. For failed, show reconnectError and allow a deliberate retry.
Do not turn a platform green merely because the HTTP request succeeded.
The existing studio SSE endpoint, GET /v1/studios/{studioId}/events, carries
the same fields in chatConnector events and snapshot chatConnectors rows:
{
"platform": "kick",
"desired": true,
"requiresLiveBroadcast": false,
"state": "connecting",
"error": "",
"reconnectAttemptId": "example-attempt",
"reconnectState": "reconnecting",
"reconnectError": "",
"reconnectUpdatedAt": "2026-09-06T06:30:00.123456789Z"
}
Match both the platform and attempt ID. An update for Twitch does not finish a
pending Kick operation. Reject older update timestamps, preserving their
fractional precision, and replace the complete row, including empty error
fields. The event stream retains its documented scopes: stream:read,
sources:read, and destinations:read. Receiving chat connector snapshot rows
and chatConnector/chatConnectorRemoved events also requires chat:read;
otherwise they are omitted while authorized base events continue. The stream
carries connector metadata, not chat message contents.
Concurrent requests share an active attempt. A new request after completion
starts another attempt, so a timed-out request must not be retried blindly:
read the connector snapshot first. Reconnect SSE with Last-Event-ID when
available. Replay is bounded; an expired ID receives a fresh snapshot, which
also reconciles a completion event the client missed. This is not a durable
event-delivery guarantee.
See the API reference for the complete request, response, authentication, and error contracts.