## Get bridge login session **get** `/v1/bridges/{bridgeID}/login-sessions/{loginSessionID}` Get the current state of a temporary bridge login session. ### Path Parameters - `bridgeID: string` Bridge ID. - `loginSessionID: string` Temporary bridge login session ID. ### Returns - `LoginSession object { bridgeID, loginSessionID, status, 6 more }` - `bridgeID: string` Bridge ID. - `loginSessionID: string` Temporary bridge login session ID. - `status: "waiting_for_input" or "waiting_for_cookies" or "waiting_for_display" or 3 more` - `"waiting_for_input"` - `"waiting_for_cookies"` - `"waiting_for_display"` - `"complete"` - `"cancelled"` - `"failed"` - `account: optional Account` A chat account added to Beeper. - `accountID: string` Chat account added to Beeper. Use this to route account-scoped actions. Examples include matrix for Beeper/Matrix, discordgo for a cloud bridge, slackgo.TEAM-USER for workspace-scoped cloud bridges, and local-whatsapp_ba_... for local bridges. - `bridge: AccountBridge` Bridge metadata for the account. Available in Beeper Desktop v4.2.785+. - `id: string` Bridge identifier. Beeper Cloud accounts often use the network type (for example matrix or discordgo); on-device accounts use a local bridge ID (for example local-whatsapp). Available in Beeper Desktop v4.2.785+. - `provider: "cloud" or "self-hosted" or "local" or "platform-sdk"` Where this account runs: on this device or in Beeper Cloud. Available in Beeper Desktop v4.2.785+. - `"cloud"` - `"self-hosted"` - `"local"` - `"platform-sdk"` - `type: string` Bridge type, such as matrix, discordgo, slackgo, whatsapp, telegram, or twitter. Available in Beeper Desktop v4.2.785+. - `status: "connected" or "connecting" or "backfilling" or 5 more` Current connection status for this account. - `"connected"` - `"connecting"` - `"backfilling"` - `"connection_required"` - `"reconnect_required"` - `"attention_required"` - `"disconnected"` - `"disabled"` - `user: User` User the account belongs to. - `id: string` Stable Beeper user ID. Use as the primary key when referencing a person. - `cannotMessage: optional boolean` True if Beeper cannot initiate messages to this user (e.g., blocked, network restriction, or no DM path). The user may still message you. - `email: optional string` Email address if known. Not guaranteed verified. - `fullName: optional string` Display name as shown in clients (e.g., 'Alice Example'). May include emojis. - `imgURL: optional string` Avatar image URL if available. This may be a remote URL, media URL, data URL, or local file URL depending on the source. May be temporary or available only on this device; download promptly if durable access is needed. - `isSelf: optional boolean` True if this user represents the authenticated account's own identity. - `phoneNumber: optional string` User's phone number in E.164 format (e.g., '+14155552671'). Omit if unknown. - `username: optional string` Human-readable handle if available (e.g., '@alice'). May be network-specific and not globally unique. - `capabilities: optional map[unknown]` Runtime chat/message capabilities for this connected account, when available. - `loginID: optional string` Bridge login ID for this account, when known. One bridge login can contain multiple chat accounts. - `network: optional string` Human-friendly network name for the account. Omitted when the network is unknown. - `statusText: optional string` Human-friendly account status text. - `accountID: optional string` Chat account ID for reconnect flows, when known. - `currentStep: optional object { fields, stepID, type, 2 more } or object { fields, stepID, type, 5 more } or object { display, stepID, type, instructions } or object { type, account, instructions, 2 more }` Step the client should show or complete next. Omitted when the session is complete, cancelled, or failed. - `UserInput object { fields, stepID, type, 2 more }` - `fields: array of LoginInputField` - `id: string` Field ID to send back in the fields object. - `initialValue: optional string` Initial field value, when provided by the network. - `label: optional string` Field label to show to the user. - `optional: optional boolean` True if the user can leave this field empty. - `placeholder: optional string` Placeholder text to show when the field is empty. - `type: optional string` Suggested input type, such as text, password, or email. - `stepID: string` - `type: "user_input"` - `"user_input"` - `attachments: optional array of unknown` - `instructions: optional string` User-facing instructions for this step. - `Cookies object { fields, stepID, type, 5 more }` - `fields: array of CookieField` - `id: string` Field ID to send back in the fields object. - `name: optional string` Cookie, header, or local storage key to collect. - `type: optional "cookie" or "header" or "local_storage"` Browser storage source for this value. - `"cookie"` - `"header"` - `"local_storage"` - `stepID: string` - `type: "cookies"` - `"cookies"` - `url: string` URL to open for the user. - `expectedFinalURLRegex: optional string` Regular expression that identifies the final URL after sign-in. - `extractJS: optional string` Optional extraction script for browser-based sign-in helpers. Treat as an opaque helper value. - `instructions: optional string` User-facing instructions for this browser step. - `userAgent: optional string` Suggested user agent for the browser session. - `DisplayAndWait object { display, stepID, type, instructions }` - `display: object { data, type } or object { imageURL, type } or object { type }` - `QrCode object { data, type }` - `data: string` - `type: "qr"` - `"qr"` - `Emoji object { imageURL, type }` - `imageURL: string` - `type: "emoji"` - `"emoji"` - `Empty object { type }` - `type: "nothing"` - `"nothing"` - `stepID: string` - `type: "display_and_wait"` - `"display_and_wait"` - `instructions: optional string` User-facing instructions for this step. - `Complete object { type, account, instructions, 2 more }` - `type: "complete"` - `"complete"` - `account: optional Account` A chat account added to Beeper. - `instructions: optional string` Completion instructions, when provided. - `login: optional object { bridgeID, loginID, removeScopes, 4 more }` Signed-in identity for a bridge. One bridge login can contain multiple chat accounts. - `bridgeID: string` Bridge ID. - `loginID: string` Bridge login ID. - `removeScopes: array of "current-device" or "all-devices"` - `"current-device"` - `"all-devices"` - `status: "connected" or "connecting" or "needs_login" or 2 more` - `"connected"` - `"connecting"` - `"needs_login"` - `"logged_out"` - `"unknown"` - `accountIDs: optional array of string` Chat accounts that belong to this bridge login, when known. - `statusText: optional string` Human-friendly bridge login status text. - `user: optional User` User the account belongs to. - `stepID: optional string` - `error: optional APIError` - `code: string` - `message: string` - `details: optional map[unknown]` - `login: optional object { bridgeID, loginID, removeScopes, 4 more }` Signed-in identity for a bridge. One bridge login can contain multiple chat accounts. - `bridgeID: string` Bridge ID. - `loginID: string` Bridge login ID. - `removeScopes: array of "current-device" or "all-devices"` - `"current-device"` - `"all-devices"` - `status: "connected" or "connecting" or "needs_login" or 2 more` - `"connected"` - `"connecting"` - `"needs_login"` - `"logged_out"` - `"unknown"` - `accountIDs: optional array of string` Chat accounts that belong to this bridge login, when known. - `statusText: optional string` Human-friendly bridge login status text. - `user: optional User` User the account belongs to. - `loginID: optional string` Bridge login ID for reconnect flows, when known. ### Example ```http curl http://localhost:23373/v1/bridges/$BRIDGE_ID/login-sessions/$LOGIN_SESSION_ID \ -H "Authorization: Bearer $BEEPER_ACCESS_TOKEN" ``` #### Response ```json { "bridgeID": "bridgeID", "loginSessionID": "loginSessionID", "status": "waiting_for_input", "account": { "accountID": "accountID", "bridge": { "id": "id", "provider": "cloud", "type": "type" }, "status": "connected", "user": { "id": "id", "cannotMessage": true, "email": "email", "fullName": "fullName", "imgURL": "imgURL", "isSelf": true, "phoneNumber": "phoneNumber", "username": "username" }, "capabilities": { "foo": "bar" }, "loginID": "loginID", "network": "network", "statusText": "statusText" }, "accountID": "accountID", "currentStep": { "fields": [ { "id": "id", "initialValue": "initialValue", "label": "label", "optional": true, "placeholder": "placeholder", "type": "type" } ], "stepID": "stepID", "type": "user_input", "attachments": [ {} ], "instructions": "instructions" }, "error": { "code": "code", "message": "message", "details": { "foo": "bar" } }, "login": { "bridgeID": "bridgeID", "loginID": "loginID", "removeScopes": [ "current-device" ], "status": "connected", "accountIDs": [ "string" ], "statusText": "statusText", "user": { "id": "id", "cannotMessage": true, "email": "email", "fullName": "fullName", "imgURL": "imgURL", "isSelf": true, "phoneNumber": "phoneNumber", "username": "username" } }, "loginID": "loginID" } ```