Skip to content
  • Auto
  • Light
  • Dark
Download Beeper

Shared

Shared

ModelsExpand Collapse
Attachment = object { type, duration, fileName, 8 more }
type: "unknown" or "img" or "video" or "audio"

Attachment type.

Accepts one of the following:
"unknown"
"img"
"video"
"audio"
duration: optional number

Duration in seconds (audio/video).

fileName: optional string

Original filename if available.

fileSize: optional number

File size in bytes if known.

isGif: optional boolean

True if the attachment is a GIF.

isSticker: optional boolean

True if the attachment is a sticker.

isVoiceNote: optional boolean

True if the attachment is a voice note.

mimeType: optional string

MIME type if known (e.g., 'image/png').

posterImg: optional string

Preview image URL for video attachments (poster frame). May be temporary or local-only to this device; download promptly if durable access is needed.

size: optional object { height, width }

Pixel dimensions of the attachment: width/height in px.

height: optional number
width: optional number
srcURL: optional string

Public URL or local file path to fetch the asset. May be temporary or local-only to this device; download promptly if durable access is needed.

Error = object { code, message, details }
code: string

Machine-readable error code

message: string

Error message

details: optional object { issues } or map[unknown] or unknown

Additional error details for debugging

Accepts one of the following:
Issues = object { issues }

Validation error details

issues: array of object { code, message, path }

List of validation issues

code: string

Validation issue code

message: string

Human-readable description of the validation issue

path: array of string or number

Path pointing to the invalid field within the payload

Accepts one of the following:
UnionMember0 = string
UnionMember1 = number
UnionMember1 = map[unknown]

Additional error context

UnionMember2 = unknown

Arbitrary details payload supplied by the server

Message = object { id, accountID, chatID, 9 more }
id: string

Message ID.

accountID: string

Beeper account ID the message belongs to.

chatID: string

Unique identifier of the chat.

senderID: string

Sender user ID.

sortKey: string

A unique, sortable key used to sort messages.

timestamp: string

Message timestamp.

formatdate-time
attachments: optional array of Attachment { type, duration, fileName, 8 more }

Attachments included with this message, if any.

type: "unknown" or "img" or "video" or "audio"

Attachment type.

Accepts one of the following:
"unknown"
"img"
"video"
"audio"
duration: optional number

Duration in seconds (audio/video).

fileName: optional string

Original filename if available.

fileSize: optional number

File size in bytes if known.

isGif: optional boolean

True if the attachment is a GIF.

isSticker: optional boolean

True if the attachment is a sticker.

isVoiceNote: optional boolean

True if the attachment is a voice note.

mimeType: optional string

MIME type if known (e.g., 'image/png').

posterImg: optional string

Preview image URL for video attachments (poster frame). May be temporary or local-only to this device; download promptly if durable access is needed.

size: optional object { height, width }

Pixel dimensions of the attachment: width/height in px.

height: optional number
width: optional number
srcURL: optional string

Public URL or local file path to fetch the asset. May be temporary or local-only to this device; download promptly if durable access is needed.

isSender: optional boolean

True if the authenticated user sent the message.

isUnread: optional boolean

True if the message is unread for the authenticated user. May be omitted.

reactions: optional array of Reaction { id, participantID, reactionKey, 2 more }

Reactions to the message, if any.

id: string

Reaction ID, typically ${participantID}${reactionKey} if multiple reactions allowed, or just participantID otherwise.

participantID: string

User ID of the participant who reacted.

reactionKey: string

The reaction key: an emoji (😄), a network-specific key, or a shortcode like "smiling-face".

emoji: optional boolean

True if the reactionKey is an emoji.

imgURL: optional string

URL to the reaction's image. May be temporary or local-only to this device; download promptly if durable access is needed.

senderName: optional string

Resolved sender display name (impersonator/full name/username/participant name).

text: optional string

Plain-text body if present. May include a JSON fallback with text entities for rich messages.

Reaction = object { id, participantID, reactionKey, 2 more }
id: string

Reaction ID, typically ${participantID}${reactionKey} if multiple reactions allowed, or just participantID otherwise.

participantID: string

User ID of the participant who reacted.

reactionKey: string

The reaction key: an emoji (😄), a network-specific key, or a shortcode like "smiling-face".

emoji: optional boolean

True if the reactionKey is an emoji.

imgURL: optional string

URL to the reaction's image. May be temporary or local-only to this device; download promptly if durable access is needed.

User = object { 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. May be temporary or local-only to 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.