Conversations
Get conversations
Requires Authorization.
Also POST /v3/inbox, seems to be aliased to v4 now
POST /v4/inboxQuery (optional):
page— 1-based number, pagination, optional
Body (optional):
unreadOnly— booleanchemistryOnly— booleanfavoritesOnly— booleanrightNowOnly— booleanonlineNowOnly— booleandistanceMeters— "double" number value ornullpositions— array of integers, sexual position IDsincludeReactionUnreads— boolean, optional. WithunreadOnly, a conversation whose only new activity is the other participant's reaction to your message came back with neithertruenorfalse
Response:
entries— array of ConversationshowsFreeHeaderLabel— booleantotalFullConversations— number, e.g."5"totalPartialConversations— number, e.g.0maxDisplayLockCount— number, e.g.99nextPage— integer, e.g.2;nullor absent on the last page
Get conversations (v3 alias)
Requires Authorization.
POST /v3/inboxQuery (optional):
page— 1-based number, pagination, optional
Body (optional):
unreadOnly— booleanchemistryOnly— booleanfavoritesOnly— booleanrightNowOnly— booleanonlineNowOnly— booleandistanceMeters— "double" number value ornullpositions— array of integers, sexual position IDsincludeReactionUnreads— boolean, optional. WithunreadOnly, a conversation whose only new activity is the other participant's reaction to your message came back with neithertruenorfalse
Response:
entries— array of ConversationshowsFreeHeaderLabel— booleantotalFullConversations— number, e.g."5"totalPartialConversations— number, e.g.0maxDisplayLockCount— number, e.g.99nextPage— integer, e.g.2;nullor absent on the last page
Get conversations by IDs
Note: in this v1 endpoint, each participants item only includes profileId, primaryMediaHash, lastOnline, and distanceMetres. Fields onlineUntil, position, isInAList, and hasDatingPotential are absent.
POST /v1/inbox/conversationBody:
Array of Conversation ID.
Response:
Array of ConversationData.
Get conversations by IDs (v2)
POST /v2/inbox/conversationQuery (optional):
includeReactionUnreads— boolean. Right after the other participant reacted to the previewed message,trueandfalsereturned the same conversation, optional
Body:
Array of Conversation ID.
Response:
Array of ConversationData.
Delete a conversation
Requires Authorization.
Deletes the conversation on your side. Does not delete the conversation for the other chat participant.
Repeated requests are completed without errors.
DELETE /v4/chat/conversation/{conversationId}Response:
Empty.
Pin a conversation
Requires Authorization.
Affects sorting position in get conversations endpoint response.
Requests on nonexistent conversations seem to be affecting them after they have been created.
Repeated requests are completed without errors.
POST /v4/chat/conversation/{conversationId}/pinResponse:
Empty.
Unpin a conversation
Requires Authorization.
Affects sorting position in get conversations endpoint response. Requests on nonexistent conversations seem to be affecting them after they have been created.
Repeated requests are completed without errors.
POST /v4/chat/conversation/{conversationId}/unpinResponse:
Empty.
Mute a conversation
Requires Authorization.
Requests on nonexistent conversations seem to be affecting them after they have been created.
Repeated requests are completed without errors.
POST /v1/push/conversation/{conversationId}/muteResponse:
Empty
Unmute a conversation
Requires Authorization.
Requests on nonexistent conversations seem to be affecting them after they have been created.
Repeated requests are completed without errors.
POST /v1/push/conversation/{conversationId}/unmuteResponse:
Empty
Get shared media in conversation
Requires Authorization.
GET /v5/chat/media/shared/images/with-me/{conversationId}Response:
images— array of ChatImageBody
Refresh messages
Requires Authorization.
Returns the messages with the given message IDs, oldest first. IDs of messages that don't exist are left out.
POST /v4/chat/conversation/{conversationId}/message-by-idBody:
messageIds— array of strings
Response:
messages— array of Message
Mark messages as read
Requires Authorization.
Regardless of messageId passed, the whole conversation's unreadCount will be reset to 0. messageId is taken into account to present the "Read" label to the sender.
If you'd like to mark the conversation as read but don't show it to the other participant, you could pass a valid but nonexistent messageId, such as 0:00000000-0000-0000-0000-000000000000.
Invalid messageIds will cause HTTP status 400 Bad Request errors.
POST /v4/chat/conversation/{conversationId}/read/{messageId}Response:
Empty.
AI chat suggestions
Requires Authorization.
GET /v1/chat/suggestionsQuery:
conversationId— Conversation ID
Response:
suggestions— array of objectsid— UUIDv3text— stringtype— string,SAVED_PHRASE|SMART_PHRASE
Get muted profiles (deprecated)
Requires Authorization.
Removed in the official Android client v26.14.0.
GET /v4/me/muted-profilesResponse:
profileIds— array of long integers
Conversation ID
String with two long integers separated by :, e.g. "12345678:23456789". Long integers are IDs of Profile. The order of these IDs is always from the lower ID to the higher ID, regardless of who started the chat.
ConversationParticipant
profileId— integer, Profile ID, optionalprimaryMediaHash— string ornull, see Media -> Public CDN files, optionallastOnline— unix timestamp in milliseconds ornull, optionalonlineUntil— unix timestamp in milliseconds ornull; not sent by/v1/inbox/conversation; may be absent, optionaldistanceMetres— float number ornull, optionalposition— Sexual position ID ornull; not sent by/v1/inbox/conversation; may be absent, optionalisInAList— boolean, not sent by/v1/inbox/conversation; may be absent, optionalhasDatingPotential— boolean, not sent by/v1/inbox/conversation; may be absent, optionalisOnPrep— boolean, not sent by/v1/inbox/conversation; may be absent, optional
ConversationPreview
conversationId— object, optionalvalue— Conversation ID
messageId— see Message for format, optionalchat1MessageId— string with UUIDv4, second part ofmessageId, optionalsenderId— Profile ID, optionalreactorId— long integer,nullin every observed response, including right after the other participant reacted to the previewed message; not sent by/v1/inbox/conversation; may be absent, optionalreactionType— unknown,nullin every observed response, including right after a reaction to the previewed message; not sent by/v1/inbox/conversation; may be absent, optionalreactionTimestamp— unknown,nullin every observed response, including right after a reaction to the previewed message; not sent by/v1/inbox/conversation; may be absent, optionalunsent— boolean; not sent in any observed response. Once the last message is unsent,previewitself isnull., optionaltype— Message type, optionalchat1Type— Chat1MessageType, optionaltext— string ornull, optionalurl— string, forImage, the image's media hash, not a URL; forGiphy, the message'surlPath; forGaymoji, the message'simageHash, e.g.gaymoji/1_2_Yass.png;nullforText,Location,Audio,AlbumandAlbumContentReply, optionallat— number, forLocation, the shared latitude; otherwisenull, optionallon— forLocation, the shared longitude; otherwisenull, optionalalbumId— integer, forAlbumandAlbumContentReply, the album ID; otherwisenull, optionalalbumContentId— integer, forAlbumContentReply, the ID of the album content replied to; otherwisenull, optionalalbumContentReply— string, forAlbumContentReply, the reply text; otherwisenull, optionalduration— long integer, forAudio, thelengththe audio was uploaded with, in milliseconds; otherwisenull, optionalimageHash— string, forProfilePhotoReply, the media hash of the profile photo replied to;nullforText,Location,Image,Audio,Album,AlbumContentReply,GiphyandGaymoji, optionalphotoContentReply— string, forProfilePhotoReply, the reply text; otherwisenull, optional
ConversationData
conversationId— Conversation ID, optionalname— string, profile name, may be an empty string, e.g."", optionalparticipants— array of ConversationParticipant, optionallastActivityTimestamp— unix timestamp in milliseconds, optionalunreadCount— integer, optionalpreview— Conversation preview ornull(e.g. a partial conversation with no message, or once the last message was unsent), optionalmuted— boolean, optionalpinned— boolean, optionalfavorite— boolean, optionalcontext— unknown,nullin every observed response, optionalonlineUntil— unknown,nullon the conversation; use ConversationParticipant'sonlineUntilinstead., optionaltranslatable— boolean, optionalrightNow— string, e.g."NOT_ACTIVE", optionalrightNowStatus— RightNowAttributionStatus, Right Now attribution status, e.g."NONE"ornull, optionalhasUnreadThrob— boolean, optionalisTopConnection— boolean, not sent by/v1/inbox/conversation; may be absent, optionalsmartLabel— unknown,nullin every observed response; not sent by/v1/inbox/conversation; may be absent, optional
Conversation
An inbox entry, discriminated by type. The onlineNowOnly, distanceMeters and positions filters are paid: only the first totalFullConversations matches come back full, the rest as partial_conversation_v1. The unfiltered inbox returns the same conversations in full.
type— string, optionaldata— object, optional
FullConversation
type— stringdata— ConversationData
PartialConversation
type— stringdata— PartialConversationData
PartialConversationData
Conversation data as a partial entry carries it. Fields muted, pinned, favorite, context, onlineUntil, translatable, rightNow and hasUnreadThrob are absent.
conversationId— Conversation IDname— string, profile name, may be an empty string, e.g.""participants— array of ConversationParticipantlastActivityTimestamp— unix timestamp in millisecondsunreadCount— integerpreview— Conversation preview ornull
InboxFilterRequest
unreadOnly— booleanchemistryOnly— booleanfavoritesOnly— booleanrightNowOnly— booleanonlineNowOnly— booleandistanceMeters— "double" number value ornullpositions— array of integers, sexual position IDsincludeReactionUnreads— boolean, optional. WithunreadOnly, a conversation whose only new activity is the other participant's reaction to your message came back with neithertruenorfalse, optional
InboxResponse
entries— array of Conversation, optionalshowsFreeHeaderLabel— boolean, optionaltotalFullConversations— number, e.g."5", optionaltotalPartialConversations— number, e.g.0, optionalmaxDisplayLockCount— number, e.g.99, optionalnextPage— integer, e.g.2;nullor absent on the last page, optional
ConversationProfileMini
profileId— long integername— stringmediaHash— string, See Media -> Public CDN files -> Profile Images ornullonlineUntil— unix timestamp in milliseconds ornulldistance— number ornullshowDistance— boolean
ChatSuggestionsResponse
suggestions— array of objectsid— UUIDv3text— stringtype— string,SAVED_PHRASE|SMART_PHRASE