Skip to content
Download Beeper

Bridges

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

List available bridges
client.bridges.list(RequestOptionsoptions?): BridgeListResponse { items }
GET/v1/bridges
Get bridge
client.bridges.retrieve(stringbridgeID, RequestOptionsoptions?): BridgeRetrieveResponse { id, accounts, activeAccountCount, 7 more }
GET/v1/bridges/{bridgeID}
Get bridge capabilities
client.bridges.retrieveCapabilities(stringbridgeID, RequestOptionsoptions?): ProvisioningCapabilities { group_creation, resolve_identifier, image_pack_import }
GET/v1/bridges/{bridgeID}/capabilities
ModelsExpand Collapse
Bridge { id, accounts, activeAccountCount, 7 more }

Available bridge that can connect or reconnect chat accounts.

id: string

Bridge ID. Use with bridge endpoints.

accounts: Array<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" | "self-hosted" | "local" | "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" | "connecting" | "backfilling" | 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?: 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?: string

Email address if known. Not guaranteed verified.

fullName?: string

Display name as shown in clients (e.g., ‘Alice Example’). May include emojis.

imgURL?: 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?: boolean

True if this user represents the authenticated account’s own identity.

phoneNumber?: string

User’s phone number in E.164 format (e.g., ‘+14155552671’). Omit if unknown.

username?: string

Human-readable handle if available (e.g., ‘@alice’). May be network-specific and not globally unique.

capabilities?: Record<string, unknown>

Runtime chat/message capabilities for this connected account, when available.

loginID?: string

Bridge login ID for this account, when known. One bridge login can contain multiple chat accounts.

network?: string

Human-friendly network name for the account. Omitted when the network is unknown.

statusText?: 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" | "self-hosted" | "local" | "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" | "connected" | "limit_reached" | 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?: string

Network grouping used for account counts and limits.

statusText?: string

Human-friendly status text matching Beeper account management language.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
GroupTypeCapabilities { type_description, avatar, disappear, 5 more }

Group creation capabilities for one group type.

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

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
disappear?: GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
name?: GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
parent?: GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
participants?: GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
topic?: GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
username?: GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
LoginFlow { id, description, name }

Connect or reconnect flow option for a bridge.

id: string

Flow ID to pass when creating a bridge login session.

description?: string

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

name?: string

Display name for the flow, when provided.

LoginInputField { id, initialValue, label, 3 more }
id: string

Field ID to send back in the fields object.

initialValue?: string

Initial field value, when provided by the network.

label?: string

Field label to show to the user.

optional?: boolean

True if the user can leave this field empty.

placeholder?: string

Placeholder text to show when the field is empty.

type?: string

Suggested input type, such as text, password, or email.

LoginSession { bridgeID, loginSessionID, status, 6 more }
bridgeID: string

Bridge ID.

loginSessionID: string

Temporary bridge login session ID.

status: "waiting_for_input" | "waiting_for_cookies" | "waiting_for_display" | 3 more
One of the following:
"waiting_for_input"
"waiting_for_cookies"
"waiting_for_display"
"complete"
"cancelled"
"failed"
account?: 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" | "self-hosted" | "local" | "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" | "connecting" | "backfilling" | 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?: 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?: string

Email address if known. Not guaranteed verified.

fullName?: string

Display name as shown in clients (e.g., ‘Alice Example’). May include emojis.

imgURL?: 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?: boolean

True if this user represents the authenticated account’s own identity.

phoneNumber?: string

User’s phone number in E.164 format (e.g., ‘+14155552671’). Omit if unknown.

username?: string

Human-readable handle if available (e.g., ‘@alice’). May be network-specific and not globally unique.

capabilities?: Record<string, unknown>

Runtime chat/message capabilities for this connected account, when available.

loginID?: string

Bridge login ID for this account, when known. One bridge login can contain multiple chat accounts.

network?: string

Human-friendly network name for the account. Omitted when the network is unknown.

statusText?: string

Human-friendly account status text.

accountID?: string

Chat account ID for reconnect flows, when known.

currentStep?: UserInput { fields, stepID, type, 2 more } | Cookies { fields, stepID, type, 5 more } | DisplayAndWait { display, stepID, type, instructions } | Complete { 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 { fields, stepID, type, 2 more }
fields: Array<LoginInputField { id, initialValue, label, 3 more } >
id: string

Field ID to send back in the fields object.

initialValue?: string

Initial field value, when provided by the network.

label?: string

Field label to show to the user.

optional?: boolean

True if the user can leave this field empty.

placeholder?: string

Placeholder text to show when the field is empty.

type?: string

Suggested input type, such as text, password, or email.

stepID: string
type: "user_input"
attachments?: Array<unknown>
instructions?: string

User-facing instructions for this step.

Cookies { fields, stepID, type, 5 more }
fields: Array<CookieField { id, name, type } >
One of the following:
stepID: string
type: "cookies"
url: string

URL to open for the user.

expectedFinalURLRegex?: string

Regular expression that identifies the final URL after sign-in.

extractJS?: string

Optional extraction script for browser-based sign-in helpers. Treat as an opaque helper value.

instructions?: string

User-facing instructions for this browser step.

userAgent?: string

Suggested user agent for the browser session.

DisplayAndWait { display, stepID, type, instructions }
display: QrCode { data, type } | Emoji { imageURL, type } | Empty { type }
One of the following:
QrCode { data, type }
data: string
type: "qr"
Emoji { imageURL, type }
imageURL: string
type: "emoji"
Empty { type }
type: "nothing"
stepID: string
type: "display_and_wait"
instructions?: string

User-facing instructions for this step.

Complete { type, account, instructions, 2 more }
type: "complete"
account?: 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" | "self-hosted" | "local" | "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" | "connecting" | "backfilling" | 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?: 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?: string

Email address if known. Not guaranteed verified.

fullName?: string

Display name as shown in clients (e.g., ‘Alice Example’). May include emojis.

imgURL?: 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?: boolean

True if this user represents the authenticated account’s own identity.

phoneNumber?: string

User’s phone number in E.164 format (e.g., ‘+14155552671’). Omit if unknown.

username?: string

Human-readable handle if available (e.g., ‘@alice’). May be network-specific and not globally unique.

capabilities?: Record<string, unknown>

Runtime chat/message capabilities for this connected account, when available.

loginID?: string

Bridge login ID for this account, when known. One bridge login can contain multiple chat accounts.

network?: string

Human-friendly network name for the account. Omitted when the network is unknown.

statusText?: string

Human-friendly account status text.

instructions?: string

Completion instructions, when provided.

login?: Login { 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<"current-device" | "all-devices">
One of the following:
"current-device"
"all-devices"
status: "connected" | "connecting" | "needs_login" | 2 more
One of the following:
"connected"
"connecting"
"needs_login"
"logged_out"
"unknown"
accountIDs?: Array<string>

Chat accounts that belong to this bridge login, when known.

statusText?: string

Human-friendly bridge login status text.

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?: 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?: string

Email address if known. Not guaranteed verified.

fullName?: string

Display name as shown in clients (e.g., ‘Alice Example’). May include emojis.

imgURL?: 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?: boolean

True if this user represents the authenticated account’s own identity.

phoneNumber?: string

User’s phone number in E.164 format (e.g., ‘+14155552671’). Omit if unknown.

username?: string

Human-readable handle if available (e.g., ‘@alice’). May be network-specific and not globally unique.

stepID?: string
error?: APIError { code, message, details }
code: string
message: string
details?: Record<string, unknown>
login?: Login { 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<"current-device" | "all-devices">
One of the following:
"current-device"
"all-devices"
status: "connected" | "connecting" | "needs_login" | 2 more
One of the following:
"connected"
"connecting"
"needs_login"
"logged_out"
"unknown"
accountIDs?: Array<string>

Chat accounts that belong to this bridge login, when known.

statusText?: string

Human-friendly bridge login status text.

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?: 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?: string

Email address if known. Not guaranteed verified.

fullName?: string

Display name as shown in clients (e.g., ‘Alice Example’). May include emojis.

imgURL?: 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?: boolean

True if this user represents the authenticated account’s own identity.

phoneNumber?: string

User’s phone number in E.164 format (e.g., ‘+14155552671’). Omit if unknown.

username?: string

Human-readable handle if available (e.g., ‘@alice’). May be network-specific and not globally unique.

loginID?: string

Bridge login ID for reconnect flows, when known.

ProvisioningCapabilities { group_creation, resolve_identifier, image_pack_import }

Advanced network capabilities for account lookup and group creation.

group_creation: Record<string, GroupTypeCapabilities { type_description, avatar, disappear, 5 more } >
type_description: string
avatar?: GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
disappear?: GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
name?: GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
parent?: GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
participants?: GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
topic?: GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<number>
username?: GroupFieldCapability { allowed, max_length, min_length, 2 more }

Group creation field capability.

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

Disappearing-message timer capability.

types: Array<"" | "after_read" | "after_send">
One of the following:
""
"after_read"
"after_send"
omit_empty_timer?: true
timers?: Array<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?: boolean
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
BridgeListResponse { items }

Available bridges and their connected accounts.

items: Array<Bridge { id, accounts, activeAccountCount, 7 more } >
id: string

Bridge ID. Use with bridge endpoints.

accounts: Array<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" | "self-hosted" | "local" | "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" | "connecting" | "backfilling" | 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?: 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?: string

Email address if known. Not guaranteed verified.

fullName?: string

Display name as shown in clients (e.g., ‘Alice Example’). May include emojis.

imgURL?: 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?: boolean

True if this user represents the authenticated account’s own identity.

phoneNumber?: string

User’s phone number in E.164 format (e.g., ‘+14155552671’). Omit if unknown.

username?: string

Human-readable handle if available (e.g., ‘@alice’). May be network-specific and not globally unique.

capabilities?: Record<string, unknown>

Runtime chat/message capabilities for this connected account, when available.

loginID?: string

Bridge login ID for this account, when known. One bridge login can contain multiple chat accounts.

network?: string

Human-friendly network name for the account. Omitted when the network is unknown.

statusText?: 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" | "self-hosted" | "local" | "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" | "connected" | "limit_reached" | 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?: string

Network grouping used for account counts and limits.

statusText?: string

Human-friendly status text matching Beeper account management language.

BridgeRetrieveResponse { id, accounts, activeAccountCount, 7 more }

Available bridge that can connect or reconnect chat accounts.

id: string

Bridge ID. Use with bridge endpoints.

accounts: Array<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" | "self-hosted" | "local" | "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" | "connecting" | "backfilling" | 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?: 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?: string

Email address if known. Not guaranteed verified.

fullName?: string

Display name as shown in clients (e.g., ‘Alice Example’). May include emojis.

imgURL?: 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?: boolean

True if this user represents the authenticated account’s own identity.

phoneNumber?: string

User’s phone number in E.164 format (e.g., ‘+14155552671’). Omit if unknown.

username?: string

Human-readable handle if available (e.g., ‘@alice’). May be network-specific and not globally unique.

capabilities?: Record<string, unknown>

Runtime chat/message capabilities for this connected account, when available.

loginID?: string

Bridge login ID for this account, when known. One bridge login can contain multiple chat accounts.

network?: string

Human-friendly network name for the account. Omitted when the network is unknown.

statusText?: 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" | "self-hosted" | "local" | "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" | "connected" | "limit_reached" | 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?: string

Network grouping used for account counts and limits.

statusText?: 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
client.bridges.loginFlows.list(stringbridgeID, RequestOptionsoptions?): LoginFlowListResponse { items }
GET/v1/bridges/{bridgeID}/login-flows
ModelsExpand Collapse
LoginFlowListResponse { items }
items: Array<LoginFlow { id, description, name } >
id: string

Flow ID to pass when creating a bridge login session.

description?: string

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

name?: 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
client.bridges.loginSessions.create(stringbridgeID, LoginSessionCreateParams { accountID, flowID, loginID } body?, RequestOptionsoptions?): LoginSession { bridgeID, loginSessionID, status, 6 more }
POST/v1/bridges/{bridgeID}/login-sessions
Get bridge login session
client.bridges.loginSessions.retrieve(stringloginSessionID, LoginSessionRetrieveParams { bridgeID } params, RequestOptionsoptions?): LoginSession { bridgeID, loginSessionID, status, 6 more }
GET/v1/bridges/{bridgeID}/login-sessions/{loginSessionID}
Cancel bridge login session
client.bridges.loginSessions.cancel(stringloginSessionID, LoginSessionCancelParams { bridgeID } params, RequestOptionsoptions?): LoginSessionCancelResponse { bridgeID, loginSessionID, status }
DELETE/v1/bridges/{bridgeID}/login-sessions/{loginSessionID}
ModelsExpand Collapse
LoginSessionCancelResponse { 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
client.bridges.loginSessions.steps.submit(stringstepID, StepSubmitParams { bridgeID, loginSessionID, type, 3 more } params, RequestOptionsoptions?): LoginSession { bridgeID, loginSessionID, status, 6 more }
POST/v1/bridges/{bridgeID}/login-sessions/{loginSessionID}/steps/{stepID}