Skip to content
Download Beeper

Bridges

Manage bridge-backed account types, connections, and login sessions

Get bridge
GET/v1/bridges/{bridgeID}
Get bridge capabilities
GET/v1/bridges/{bridgeID}/capabilities
ModelsExpand Collapse
Bridge object { id, accounts, activeAccountCount, 7 more }

Available bridge that can connect or reconnect chat accounts.

id: string

Bridge ID. Use with bridge endpoints.

accounts: array of Account { accountID, bridge, status, 5 more }

Connected accounts for this bridge. Uses the same Account schema as GET /v1/accounts.

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 { id, provider, type }

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+.

One of the following:
"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.

One of the following:
"connected"
"connecting"
"backfilling"
"connection_required"
"reconnect_required"
"attention_required"
"disconnected"
"disabled"
user: User { id, cannotMessage, email, 5 more }

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.

activeAccountCount: number

Number of active accounts for this network on this device.

minimum0
displayName: string

Human-friendly bridge name shown in Beeper.

provider: "cloud" or "self-hosted" or "local" or "platform-sdk"

Where accounts for this bridge run: on this device or in Beeper Cloud.

One of the following:
"cloud"
"self-hosted"
"local"
"platform-sdk"
status: "available" or "connected" or "limit_reached" or 2 more

Whether this bridge can currently be used to connect new accounts.

One of the following:
"available"
"connected"
"limit_reached"
"temporarily_unavailable"
"disabled"
supportsMultipleAccounts: boolean

Whether this bridge can have multiple active accounts for the same network.

type: string

Underlying bridge type, such as matrix, discordgo, slackgo, whatsapp, telegram, or twitter.

network: optional string

Network grouping used for account counts and limits.

statusText: optional string

Human-friendly status text matching Beeper account management language.

One of the following:
DisappearingTimerCapability object { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
GroupFieldCapability object { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
GroupTypeCapabilities object { type_description, avatar, disappear, 5 more }

Group creation capabilities for one group type.

type_description: string
avatar: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
disappear: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
name: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
parent: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
participants: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
topic: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
username: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
LoginFlow object { id, description, name }

Connect or reconnect flow option for a bridge.

id: string

Flow ID to pass when creating a bridge login session.

description: optional string

Short explanation for when to use this flow, when provided.

name: optional string

Display name for the flow, when provided.

LoginInputField object { id, initialValue, label, 3 more }
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.

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
One of the following:
"waiting_for_input"
"waiting_for_cookies"
"waiting_for_display"
"complete"
"cancelled"
"failed"
account: optional Account { accountID, bridge, status, 5 more }

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 { id, provider, type }

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+.

One of the following:
"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.

One of the following:
"connected"
"connecting"
"backfilling"
"connection_required"
"reconnect_required"
"attention_required"
"disconnected"
"disabled"
user: User { id, cannotMessage, email, 5 more }

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.

One of the following:
UserInput object { fields, stepID, type, 2 more }
fields: array of LoginInputField { id, initialValue, label, 3 more }
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"
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, name, type }
One of the following:
stepID: string
type: "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 }
One of the following:
QrCode object { data, type }
data: string
type: "qr"
Emoji object { imageURL, type }
imageURL: string
type: "emoji"
Empty object { type }
type: "nothing"
stepID: string
type: "display_and_wait"
instructions: optional string

User-facing instructions for this step.

Complete object { type, account, instructions, 2 more }
type: "complete"
account: optional Account { accountID, bridge, status, 5 more }

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 { id, provider, type }

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+.

One of the following:
"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.

One of the following:
"connected"
"connecting"
"backfilling"
"connection_required"
"reconnect_required"
"attention_required"
"disconnected"
"disabled"
user: User { id, cannotMessage, email, 5 more }

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.

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"
One of the following:
"current-device"
"all-devices"
status: "connected" or "connecting" or "needs_login" or 2 more
One of the following:
"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 { id, cannotMessage, email, 5 more }

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.

stepID: optional string
error: optional APIError { code, message, details }
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"
One of the following:
"current-device"
"all-devices"
status: "connected" or "connecting" or "needs_login" or 2 more
One of the following:
"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 { id, cannotMessage, email, 5 more }

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.

loginID: optional string

Bridge login ID for reconnect flows, when known.

ProvisioningCapabilities object { group_creation, resolve_identifier, image_pack_import }

Advanced network capabilities for account lookup and group creation.

group_creation: map[GroupTypeCapabilities { type_description, avatar, disappear, 5 more } ]
type_description: string
avatar: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
disappear: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
name: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
parent: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
participants: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
topic: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
username: optional GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

allowed: boolean
max_length: optional number
min_length: optional number
required: optional boolean
settings: optional DisappearingTimerCapability { types, omit_empty_timer, timers }

Disappearing-message timer capability.

types: array of "" or "after_read" or "after_send"
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: optional true
timers: optional array of number
resolve_identifier: ResolveIdentifierCapabilities { any_phone, contact_list, create_dm, 4 more }

Identifier lookup capabilities for this bridge.

any_phone: boolean
contact_list: boolean
create_dm: boolean
lookup_email: boolean
lookup_phone: boolean
lookup_username: boolean
image_pack_import: optional boolean
ResolveIdentifierCapabilities object { any_phone, contact_list, create_dm, 4 more }

Identifier lookup capabilities for this bridge.

any_phone: boolean
contact_list: boolean
create_dm: boolean
lookup_email: boolean
lookup_phone: boolean
lookup_username: boolean
BridgeListResponse object { items }

Available bridges and their connected accounts.

items: array of Bridge { id, accounts, activeAccountCount, 7 more }
id: string

Bridge ID. Use with bridge endpoints.

accounts: array of Account { accountID, bridge, status, 5 more }

Connected accounts for this bridge. Uses the same Account schema as GET /v1/accounts.

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 { id, provider, type }

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+.

One of the following:
"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.

One of the following:
"connected"
"connecting"
"backfilling"
"connection_required"
"reconnect_required"
"attention_required"
"disconnected"
"disabled"
user: User { id, cannotMessage, email, 5 more }

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.

activeAccountCount: number

Number of active accounts for this network on this device.

minimum0
displayName: string

Human-friendly bridge name shown in Beeper.

provider: "cloud" or "self-hosted" or "local" or "platform-sdk"

Where accounts for this bridge run: on this device or in Beeper Cloud.

One of the following:
"cloud"
"self-hosted"
"local"
"platform-sdk"
status: "available" or "connected" or "limit_reached" or 2 more

Whether this bridge can currently be used to connect new accounts.

One of the following:
"available"
"connected"
"limit_reached"
"temporarily_unavailable"
"disabled"
supportsMultipleAccounts: boolean

Whether this bridge can have multiple active accounts for the same network.

type: string

Underlying bridge type, such as matrix, discordgo, slackgo, whatsapp, telegram, or twitter.

network: optional string

Network grouping used for account counts and limits.

statusText: optional string

Human-friendly status text matching Beeper account management language.

BridgeRetrieveResponse object { id, accounts, activeAccountCount, 7 more }

Available bridge that can connect or reconnect chat accounts.

id: string

Bridge ID. Use with bridge endpoints.

accounts: array of Account { accountID, bridge, status, 5 more }

Connected accounts for this bridge. Uses the same Account schema as GET /v1/accounts.

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 { id, provider, type }

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+.

One of the following:
"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.

One of the following:
"connected"
"connecting"
"backfilling"
"connection_required"
"reconnect_required"
"attention_required"
"disconnected"
"disabled"
user: User { id, cannotMessage, email, 5 more }

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.

activeAccountCount: number

Number of active accounts for this network on this device.

minimum0
displayName: string

Human-friendly bridge name shown in Beeper.

provider: "cloud" or "self-hosted" or "local" or "platform-sdk"

Where accounts for this bridge run: on this device or in Beeper Cloud.

One of the following:
"cloud"
"self-hosted"
"local"
"platform-sdk"
status: "available" or "connected" or "limit_reached" or 2 more

Whether this bridge can currently be used to connect new accounts.

One of the following:
"available"
"connected"
"limit_reached"
"temporarily_unavailable"
"disabled"
supportsMultipleAccounts: boolean

Whether this bridge can have multiple active accounts for the same network.

type: string

Underlying bridge type, such as matrix, discordgo, slackgo, whatsapp, telegram, or twitter.

network: optional string

Network grouping used for account counts and limits.

statusText: optional string

Human-friendly status text matching Beeper account management language.

BridgesLogin Flows

Available bridges, bridge logins, login sessions for connect and reconnect flows, and advanced network capabilities.

List login flows
GET/v1/bridges/{bridgeID}/login-flows
ModelsExpand Collapse
LoginFlowListResponse object { items }
items: array of LoginFlow { id, description, name }
id: string

Flow ID to pass when creating a bridge login session.

description: optional string

Short explanation for when to use this flow, when provided.

name: optional string

Display name for the flow, when provided.

BridgesConnections

BridgesLogin Sessions

Available bridges, bridge logins, login sessions for connect and reconnect flows, and advanced network capabilities.

Create bridge login session
POST/v1/bridges/{bridgeID}/login-sessions
Get bridge login session
GET/v1/bridges/{bridgeID}/login-sessions/{loginSessionID}
Cancel bridge login session
DELETE/v1/bridges/{bridgeID}/login-sessions/{loginSessionID}
ModelsExpand Collapse
LoginSessionCancelResponse object { bridgeID, loginSessionID, status }
bridgeID: string
loginSessionID: string
status: "cancelled"

BridgesLogin SessionsSteps

Available bridges, bridge logins, login sessions for connect and reconnect flows, and advanced network capabilities.

Submit login step
POST/v1/bridges/{bridgeID}/login-sessions/{loginSessionID}/steps/{stepID}