Skip to content
Download Beeper

Bridges

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

List available bridges
bridges.list() -> BridgeListResponse
GET/v1/bridges
Get bridge
bridges.retrieve(strbridge_id) -> BridgeRetrieveResponse
GET/v1/bridges/{bridgeID}
Get bridge capabilities
bridges.retrieve_capabilities(strbridge_id) -> ProvisioningCapabilities
GET/v1/bridges/{bridgeID}/capabilities
ModelsExpand Collapse
class Bridge:

Available bridge that can connect or reconnect chat accounts.

id: str

Bridge ID. Use with bridge endpoints.

accounts: List[Account]

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

account_id: str

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 metadata for the account. Available in Beeper Desktop v4.2.785+.

id: str

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: Literal["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: str

Bridge type, such as matrix, discordgo, slackgo, whatsapp, telegram, or twitter. Available in Beeper Desktop v4.2.785+.

status: Literal["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

User the account belongs to.

id: str

Stable Beeper user ID. Use as the primary key when referencing a person.

cannot_message: Optional[bool]

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[str]

Email address if known. Not guaranteed verified.

full_name: Optional[str]

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

img_url: Optional[str]

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.

is_self: Optional[bool]

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

phone_number: Optional[str]

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

username: Optional[str]

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

capabilities: Optional[Dict[str, Optional[object]]]

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

login_id: Optional[str]

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

network: Optional[str]

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

status_text: Optional[str]

Human-friendly account status text.

active_account_count: int

Number of active accounts for this network on this device.

minimum0
display_name: str

Human-friendly bridge name shown in Beeper.

provider: Literal["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: Literal["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"
supports_multiple_accounts: bool

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

type: str

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

network: Optional[str]

Network grouping used for account counts and limits.

status_text: Optional[str]

Human-friendly status text matching Beeper account management language.

One of the following:
class DisappearingTimerCapability:

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
class GroupFieldCapability:

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
class GroupTypeCapabilities:

Group creation capabilities for one group type.

type_description: str
avatar: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
disappear: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
name: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
parent: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
participants: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
topic: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
username: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
class LoginFlow:

Connect or reconnect flow option for a bridge.

id: str

Flow ID to pass when creating a bridge login session.

description: Optional[str]

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

name: Optional[str]

Display name for the flow, when provided.

class LoginInputField:
id: str

Field ID to send back in the fields object.

initial_value: Optional[str]

Initial field value, when provided by the network.

label: Optional[str]

Field label to show to the user.

optional: Optional[bool]

True if the user can leave this field empty.

placeholder: Optional[str]

Placeholder text to show when the field is empty.

type: Optional[str]

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

class LoginSession:
bridge_id: str

Bridge ID.

login_session_id: str

Temporary bridge login session ID.

status: Literal["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: Optional[Account]

A chat account added to Beeper.

account_id: str

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 metadata for the account. Available in Beeper Desktop v4.2.785+.

id: str

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: Literal["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: str

Bridge type, such as matrix, discordgo, slackgo, whatsapp, telegram, or twitter. Available in Beeper Desktop v4.2.785+.

status: Literal["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

User the account belongs to.

id: str

Stable Beeper user ID. Use as the primary key when referencing a person.

cannot_message: Optional[bool]

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[str]

Email address if known. Not guaranteed verified.

full_name: Optional[str]

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

img_url: Optional[str]

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.

is_self: Optional[bool]

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

phone_number: Optional[str]

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

username: Optional[str]

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

capabilities: Optional[Dict[str, Optional[object]]]

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

login_id: Optional[str]

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

network: Optional[str]

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

status_text: Optional[str]

Human-friendly account status text.

account_id: Optional[str]

Chat account ID for reconnect flows, when known.

current_step: Optional[CurrentStep]

Step the client should show or complete next. Omitted when the session is complete, cancelled, or failed.

One of the following:
class CurrentStepUserInput:
fields: List[LoginInputField]
id: str

Field ID to send back in the fields object.

initial_value: Optional[str]

Initial field value, when provided by the network.

label: Optional[str]

Field label to show to the user.

optional: Optional[bool]

True if the user can leave this field empty.

placeholder: Optional[str]

Placeholder text to show when the field is empty.

type: Optional[str]

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

step_id: str
type: Literal["user_input"]
attachments: Optional[List[Optional[object]]]
instructions: Optional[str]

User-facing instructions for this step.

class CurrentStepCookies:
fields: List[CookieField]
One of the following:
step_id: str
type: Literal["cookies"]
url: str

URL to open for the user.

expected_final_url_regex: Optional[str]

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

extract_js: Optional[str]

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

instructions: Optional[str]

User-facing instructions for this browser step.

user_agent: Optional[str]

Suggested user agent for the browser session.

class CurrentStepDisplayAndWait:
display: CurrentStepDisplayAndWaitDisplay
One of the following:
class CurrentStepDisplayAndWaitDisplayQrCode:
data: str
type: Literal["qr"]
class CurrentStepDisplayAndWaitDisplayEmoji:
image_url: str
type: Literal["emoji"]
class CurrentStepDisplayAndWaitDisplayEmpty:
type: Literal["nothing"]
step_id: str
type: Literal["display_and_wait"]
instructions: Optional[str]

User-facing instructions for this step.

class CurrentStepComplete:
type: Literal["complete"]
account: Optional[Account]

A chat account added to Beeper.

account_id: str

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 metadata for the account. Available in Beeper Desktop v4.2.785+.

id: str

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: Literal["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: str

Bridge type, such as matrix, discordgo, slackgo, whatsapp, telegram, or twitter. Available in Beeper Desktop v4.2.785+.

status: Literal["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

User the account belongs to.

id: str

Stable Beeper user ID. Use as the primary key when referencing a person.

cannot_message: Optional[bool]

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[str]

Email address if known. Not guaranteed verified.

full_name: Optional[str]

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

img_url: Optional[str]

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.

is_self: Optional[bool]

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

phone_number: Optional[str]

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

username: Optional[str]

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

capabilities: Optional[Dict[str, Optional[object]]]

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

login_id: Optional[str]

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

network: Optional[str]

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

status_text: Optional[str]

Human-friendly account status text.

instructions: Optional[str]

Completion instructions, when provided.

login: Optional[CurrentStepCompleteLogin]

Signed-in identity for a bridge. One bridge login can contain multiple chat accounts.

bridge_id: str

Bridge ID.

login_id: str

Bridge login ID.

remove_scopes: List[Literal["current-device", "all-devices"]]
One of the following:
"current-device"
"all-devices"
status: Literal["connected", "connecting", "needs_login", 2 more]
One of the following:
"connected"
"connecting"
"needs_login"
"logged_out"
"unknown"
account_ids: Optional[List[str]]

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

status_text: Optional[str]

Human-friendly bridge login status text.

user: Optional[User]

User the account belongs to.

id: str

Stable Beeper user ID. Use as the primary key when referencing a person.

cannot_message: Optional[bool]

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[str]

Email address if known. Not guaranteed verified.

full_name: Optional[str]

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

img_url: Optional[str]

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.

is_self: Optional[bool]

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

phone_number: Optional[str]

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

username: Optional[str]

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

step_id: Optional[str]
error: Optional[APIError]
code: str
message: str
details: Optional[Dict[str, Optional[object]]]
login: Optional[Login]

Signed-in identity for a bridge. One bridge login can contain multiple chat accounts.

bridge_id: str

Bridge ID.

login_id: str

Bridge login ID.

remove_scopes: List[Literal["current-device", "all-devices"]]
One of the following:
"current-device"
"all-devices"
status: Literal["connected", "connecting", "needs_login", 2 more]
One of the following:
"connected"
"connecting"
"needs_login"
"logged_out"
"unknown"
account_ids: Optional[List[str]]

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

status_text: Optional[str]

Human-friendly bridge login status text.

user: Optional[User]

User the account belongs to.

id: str

Stable Beeper user ID. Use as the primary key when referencing a person.

cannot_message: Optional[bool]

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[str]

Email address if known. Not guaranteed verified.

full_name: Optional[str]

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

img_url: Optional[str]

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.

is_self: Optional[bool]

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

phone_number: Optional[str]

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

username: Optional[str]

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

login_id: Optional[str]

Bridge login ID for reconnect flows, when known.

class ProvisioningCapabilities:

Advanced network capabilities for account lookup and group creation.

group_creation: Dict[str, GroupTypeCapabilities]
type_description: str
avatar: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
disappear: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
name: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
parent: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
participants: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
topic: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
username: Optional[GroupFieldCapability]

Group creation field capability.

allowed: bool
max_length: Optional[int]
min_length: Optional[int]
required: Optional[bool]
settings: Optional[DisappearingTimerCapability]

Disappearing-message timer capability.

types: List[Literal["", "after_read", "after_send"]]
One of the following:
""
"after_read"
"after_send"
omit_empty_timer: Optional[Literal[true]]
timers: Optional[List[int]]
resolve_identifier: ResolveIdentifierCapabilities

Identifier lookup capabilities for this bridge.

any_phone: bool
contact_list: bool
create_dm: bool
lookup_email: bool
lookup_phone: bool
lookup_username: bool
image_pack_import: Optional[bool]
class ResolveIdentifierCapabilities:

Identifier lookup capabilities for this bridge.

any_phone: bool
contact_list: bool
create_dm: bool
lookup_email: bool
lookup_phone: bool
lookup_username: bool
class BridgeListResponse:

Available bridges and their connected accounts.

items: List[Bridge]
id: str

Bridge ID. Use with bridge endpoints.

accounts: List[Account]

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

account_id: str

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 metadata for the account. Available in Beeper Desktop v4.2.785+.

id: str

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: Literal["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: str

Bridge type, such as matrix, discordgo, slackgo, whatsapp, telegram, or twitter. Available in Beeper Desktop v4.2.785+.

status: Literal["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

User the account belongs to.

id: str

Stable Beeper user ID. Use as the primary key when referencing a person.

cannot_message: Optional[bool]

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[str]

Email address if known. Not guaranteed verified.

full_name: Optional[str]

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

img_url: Optional[str]

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.

is_self: Optional[bool]

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

phone_number: Optional[str]

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

username: Optional[str]

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

capabilities: Optional[Dict[str, Optional[object]]]

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

login_id: Optional[str]

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

network: Optional[str]

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

status_text: Optional[str]

Human-friendly account status text.

active_account_count: int

Number of active accounts for this network on this device.

minimum0
display_name: str

Human-friendly bridge name shown in Beeper.

provider: Literal["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: Literal["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"
supports_multiple_accounts: bool

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

type: str

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

network: Optional[str]

Network grouping used for account counts and limits.

status_text: Optional[str]

Human-friendly status text matching Beeper account management language.

class BridgeRetrieveResponse:

Available bridge that can connect or reconnect chat accounts.

id: str

Bridge ID. Use with bridge endpoints.

accounts: List[Account]

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

account_id: str

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 metadata for the account. Available in Beeper Desktop v4.2.785+.

id: str

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: Literal["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: str

Bridge type, such as matrix, discordgo, slackgo, whatsapp, telegram, or twitter. Available in Beeper Desktop v4.2.785+.

status: Literal["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

User the account belongs to.

id: str

Stable Beeper user ID. Use as the primary key when referencing a person.

cannot_message: Optional[bool]

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[str]

Email address if known. Not guaranteed verified.

full_name: Optional[str]

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

img_url: Optional[str]

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.

is_self: Optional[bool]

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

phone_number: Optional[str]

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

username: Optional[str]

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

capabilities: Optional[Dict[str, Optional[object]]]

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

login_id: Optional[str]

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

network: Optional[str]

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

status_text: Optional[str]

Human-friendly account status text.

active_account_count: int

Number of active accounts for this network on this device.

minimum0
display_name: str

Human-friendly bridge name shown in Beeper.

provider: Literal["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: Literal["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"
supports_multiple_accounts: bool

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

type: str

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

network: Optional[str]

Network grouping used for account counts and limits.

status_text: Optional[str]

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
bridges.login_flows.list(strbridge_id) -> LoginFlowListResponse
GET/v1/bridges/{bridgeID}/login-flows
ModelsExpand Collapse
class LoginFlowListResponse:
items: List[LoginFlow]
id: str

Flow ID to pass when creating a bridge login session.

description: Optional[str]

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

name: Optional[str]

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
bridges.login_sessions.create(strbridge_id, LoginSessionCreateParams**kwargs) -> LoginSession
POST/v1/bridges/{bridgeID}/login-sessions
Get bridge login session
bridges.login_sessions.retrieve(strlogin_session_id, LoginSessionRetrieveParams**kwargs) -> LoginSession
GET/v1/bridges/{bridgeID}/login-sessions/{loginSessionID}
Cancel bridge login session
bridges.login_sessions.cancel(strlogin_session_id, LoginSessionCancelParams**kwargs) -> LoginSessionCancelResponse
DELETE/v1/bridges/{bridgeID}/login-sessions/{loginSessionID}
ModelsExpand Collapse
class LoginSessionCancelResponse:
bridge_id: str
login_session_id: str
status: Literal["cancelled"]

BridgesLogin SessionsSteps

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

Submit login step
bridges.login_sessions.steps.submit(strstep_id, StepSubmitParams**kwargs) -> LoginSession
POST/v1/bridges/{bridgeID}/login-sessions/{loginSessionID}/steps/{stepID}