Skip to content
Download Beeper

Get chat account

client.accounts.retrieve(stringaccountID, RequestOptionsoptions?): AccountRetrieveResponse { accountID, bridge, status, 5 more }
GET/v1/accounts/{accountID}

Get one chat account connected to this Beeper Client API server.

ParametersExpand Collapse
accountID: string

Account ID this resource belongs to.

ReturnsExpand Collapse
AccountRetrieveResponse { 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.

Get chat account

import BeeperDesktop from '@beeper/desktop-api';

const client = new BeeperDesktop({
  accessToken: process.env['BEEPER_ACCESS_TOKEN'], // This is the default and can be omitted
});

const account = await client.accounts.retrieve('accountID');

console.log(account.bridge);
{
  "accountID": "accountID",
  "bridge": {
    "id": "id",
    "provider": "cloud",
    "type": "type"
  },
  "status": "connected",
  "user": {
    "id": "id",
    "cannotMessage": true,
    "email": "email",
    "fullName": "fullName",
    "imgURL": "imgURL",
    "isSelf": true,
    "phoneNumber": "phoneNumber",
    "username": "username"
  },
  "capabilities": {
    "foo": "bar"
  },
  "loginID": "loginID",
  "network": "network",
  "statusText": "statusText"
}
Returns Examples
{
  "accountID": "accountID",
  "bridge": {
    "id": "id",
    "provider": "cloud",
    "type": "type"
  },
  "status": "connected",
  "user": {
    "id": "id",
    "cannotMessage": true,
    "email": "email",
    "fullName": "fullName",
    "imgURL": "imgURL",
    "isSelf": true,
    "phoneNumber": "phoneNumber",
    "username": "username"
  },
  "capabilities": {
    "foo": "bar"
  },
  "loginID": "loginID",
  "network": "network",
  "statusText": "statusText"
}