Skip to content

Model schemas

These 55 definitions describe the JSON used by the API. Request and response models can differ. References link to definitions without expanding recursive models.

55 models

APIError
object
codeRequired
field_detailsOptional
array
Each array item
messageRequired
string
request_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
APIErrorCode
string
Allowed:"malformed_json""invalid_authentication""invalid_destination""ambiguous_destination""ambiguous_conversation""disallowed_recipient""unknown_conversation""unknown_message""unknown_media""unknown_request""unsupported_capability""sender_unavailable""database_unavailable""invalid_cursor""unsafe_media""media_too_large""duplicate_request""send_result_unknown""reaction_result_unknown""read_result_unknown""messages_unavailable""typing_conflict""typing_result_unknown""request_tracking_unavailable""invalid_request""internal_error""not_found"
APIFieldError
object
fieldRequired
string
messageRequired
string
CapabilityAvailability
string
Allowed:"available""unavailable""permission_unknown""unsupported"
Conversation
object
display_nameOptional
string
idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
identifierOptional
string
is_groupRequired
boolean
last_message_atOptional
string (date-time)
participantsRequired
array
Each array item
provider_guidOptional
string
serviceOptional
string
unread_countRequired
integer
ConversationReadResponse
object
conversation_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
request_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
ConversationReadStatus
string
Allowed:"applied""unchanged"
ConversationTypingResponse
object
conversation_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
expires_atOptional
string (date-time)
request_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
ConversationTypingStatus
string
Allowed:"active""inactive"
DatabaseStatus
object
errorOptional
string
identityOptional
string
readyRequired
boolean
DeliveryState
string
Allowed:"unknown""not_sent""sent""delivered""failed"
MediaAvailableEvent
object
media_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
message_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
observed_atRequired
string (date-time)
MediaReceipt
object
media_idRequired
string | null
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
message_idRequired
string | null
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
requested_media_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
MediaReference
object
byte_sizeOptional
integer (int64)
filenameOptional
string
is_stickerRequired
boolean
media_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
mime_typeOptional
string
sourceRequired
MediaSource
string
Allowed:"messages""upload"
Message
object
attachmentsRequired
array
Each array item
balloon_bundle_idOptional
string
conversation_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
created_atRequired
string | null (date-time)
delivered_atRequired
string | null (date-time)
delivery_stateRequired
idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
is_audio_messageOptional
boolean
is_from_meRequired
boolean
partsRequired
array | null
Each array item
pollOptional
provider_guidRequired
string | null
reactionsRequired
array
Each array item
read_atRequired
string | null (date-time)
read_stateRequired
scheduleOptional
senderRequired
textRequired
string | null
threadRequired
url_previewOptional
MessageChangedField
string
Allowed:"delivery_state""read_state"
MessageCreatedEvent
object
conversation_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
is_from_meRequired
boolean
message_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
observed_atRequired
string (date-time)
MessagePart
Exactly one of these3 variants
object
indexRequired
integer
Validation rules
Minimum
0
textRequired
string
typeRequired
stringValue: "text"
object
attachmentRequired
indexRequired
integer
Validation rules
Minimum
0
typeRequired
stringValue: "attachment"
object
indexRequired
integer
Validation rules
Minimum
0
typeRequired
stringValue: "unknown"
MessageReceipt
object
message_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
statusRequired
MessageSchedule
object
scheduled_atOptional
string (date-time)
stateRequired
integer (int64)
typeRequired
integer (int64)
MessageStatus
string
Allowed:"accepted""queued""sending""sent""delivered""read""failed""unsupported""result_unknown"
MessageUpdatedEvent
object
changed_fieldsRequired
array
Each array item
conversation_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
message_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
observed_atRequired
string (date-time)
NativePoll
object
kindRequired
original_message_idOptional
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
NativePollKind
string
Allowed:"created""vote"
PaginatedResponseOfConversation
object
has_moreRequired
boolean
itemsRequired
array
Each array item
next_cursorOptional
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
PaginatedResponseOfMessage
object
has_moreRequired
boolean
itemsRequired
array
Each array item
next_cursorOptional
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
PermissionAvailability
string
Allowed:"granted""not_granted""unknown"
Reaction
object
actionRequired
created_atOptional
string (date-time)
emojiOptional
string
idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
is_from_meRequired
boolean
kindRequired
senderOptional
target_part_indexOptional
integer
ReactionAction
string
Allowed:"added""removed"
ReactionChangedEvent
object
message_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
observed_atRequired
string (date-time)
reaction_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
ReactionKind
string
Allowed:"love""like""dislike""laugh""emphasis""question""custom""unknown"
ReactionWriteResponse
object
message_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
reactionRequired
request_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
ReactionWriteStatus
string
Allowed:"applied""unchanged"
ReadState
string
Allowed:"unknown""unread""read"
RecipientHandle
object
display_valueOptional
string
valueRequired
string
RecipientHandleType
string
Allowed:"phone""email""other"
ReplyTarget
object
message_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
SendCorrelationStatus
string
Allowed:"pending""partial""complete""ambiguous"
Sender
object
account_identityOptional
string
availabilityRequired
capabilitiesRequired
configuredRequired
boolean
idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
loginOptional
permissionsRequired
reasonOptional
string
SenderAvailability
string
Allowed:"available""unavailable""permission_unknown"
SenderCapabilities
object
group_creationRequired
native_replyRequired
SenderPermissions
object
accessibilityRequired
automationRequired
SendMediaReference
object
media_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
SendMessageRequest
All of these2 variants
object

Exactly one non-null destination. The service requires text or uploaded media. Participant sends require text and do not support media or reply_to. Normalized participants must be unique.

conversation_idOptional
string | null
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
mediaOptional
array | null
Each array item
participantsOptional
array | null
Validation rules
Minimum items
2
Each array item
string
Validation rules
Minimum length
1
reply_toOptional
textOptional
string | null
toOptional
string | null
Validation rules
Minimum length
1

Other fields are not accepted.

Exactly one of these3 variants
object
conversation_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
participantsOptional
null
toOptional
null
object
conversation_idOptional
null
participantsOptional
null
toRequired
string
Validation rules
Minimum length
1
object
conversation_idOptional
null
participantsRequired
array
Validation rules
Minimum items
2
Each array item
string
Validation rules
Minimum length
1
toOptional
null
SendMessageResponse
object
conversation_idOptional
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
correlation_statusRequired
mediaRequired
array
Each array item
messagesRequired
array
Each array item
poll_urlOptional
string
request_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
statusRequired
ServiceStatus
object
databaseRequired
healthyRequired
boolean
senderRequired
versionRequired
string
SetReactionRequest
object
reactionRequired
StreamReadyEvent
object
database_identityRequired
string
replay_supportedRequired
boolean
StreamResetEvent
object
messageRequired
string
reasonRequired
refetch_requiredRequired
boolean
resume_after_event_idOptional
string
StreamResetReason
string
Allowed:"database_changed""observer_failed""replay_unavailable""subscriber_overflow"
ThreadReference
object
provider_reply_to_message_idOptional
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
reply_to_message_idOptional
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
thread_originator_message_idOptional
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
UploadMediaResponse
object
download_urlRequired
string
mediaRequired
URLPreview
object
balloon_bundle_idRequired
string
created_atOptional
string (date-time)
message_idRequired
string
Validation rules
Minimum length
1
Pattern
^[^\p{Cc}\p{Cf}]+$
provider_guidRequired
string
WritableReaction
string
Allowed:"love""like""dislike""laugh""emphasis""question"