logo
In-app Chat
Powered Byspreading
On this page

Query the message list of one-on-one chats


Overview

You can call this operation to paginate and fetch the message list of a specific one-on-one chat for a specified user.

Operation prototype

  • Request metho`d: POST
  • Request URL: https://zim-api.zego.im/?Action=QueryPeerMsg
  • Protocol: HTTPS
  • QPS limit: 20 calls per second

Request parameters

The following table describes only the operation-specific request parameters and some common request parameters. For the complete list of common request parameters, see the Public request parameters section of the Accessing Server APIs topic.

ParameterTypeRequiredDescription
FromUserIdStringYesTo query the list of the one-to-one chat messages between User A and User B, fill in the UserID of user A here.
ToUserIdStringYesFill in the UserID of user B here.
LimitNumberNoThe number of messages to retrieve at a time, with a value range of (0, 100], defaulting to 10.
  • When the value ≤ 0, it is corrected to 10.
  • When the value > 100, it is corrected to 100.
NextNumberNo

Pagination flag for pulling messages. Fill in 0 for the first time, and then fill in the Next value returned from the previous call. When the returned Next is 0, it means that the message list has been completely retrieved.

For example, if there are 250 messages in the current one-on-one chat session and you call this interface to query:

  1. First call this interface, fill in 100 for Limit, and fill in 0 for Next to query the 1st to 100th messages; the Next value in the returned result is num1.
  2. Second call this interface, fill in 100 for Limit, and fill in num1 for Next to query the 101st to 200th messages; the Next value in the returned result is num2.
  3. Third call this interface, fill in 100 for Limit, and fill in num2 for Next to query the 201st to 250th messages; the query is complete, and the Next in the returned result is 0.

WithEmptyMsgNumberNoWhether the returned result includes retracted messages and messages that have been deleted on the server.
  • 0: Default value, not included.
  • 1: Included.
Note

The FromUserId and ToUserId parameter can contain only digits, letters, and the following characters: '!','#','$','%','&','(',')','+','-',':',';','<','=','.','>','?','@','[',']','^','_',' ','{','}','|','~'.

Sample request

  • Request URL:

Untitled
https://zim-api.zego.im/?Action=QueryPeerMsg
&<Common request parameters>
1
Copied!
  • Request message body:
Untitled
{
"FromUserId": "u1",
"ToUserId": "u2",
"Limit": 10,
"Next": 0,
"WithEmptyMsg": 0
}
1
Copied!

Response parameters

CodeNumberThe return code.
MessageStringThe description of the request result.
RequestIdStringThe request ID.
NextNumberPagination flag.
  • Not 0: indicates that there is more conversation information to be returned, and this field needs to be set to the Next  parameter in the request to fetch more conversation information.
  • 0: indicates that the complete conversation list has been returned.
ListNumberMessage list. Return the results in descending order by MsgTime.
└SenderStringMessage sender ID.
└MsgTypeNumberMessage type:
  • 1: Text.
  • 11: Image.
  • 12: Document.
  • 13: Audio.
  • 14: Video.
  • 200: Custom.
  • └SubMsgTypeNumberSpecific custom type. The value is filled in by the user when sending a custom message, and the value range is [0, 200]. This parameter is only meaningful when MsgType is 200 (custom type).
    └MsgBodyStringMessage content.
    • When the message is sent by the client:
      • When msg_type is 1 (text type) or 200 (custom type), msg_body is the message content passed in when sending the message, and developers can directly read the message content.
      • When msg_type is 11, 12, 13, 14, which means the message is a media type, msg_body is a JSON string. Please use URLDecode to decode this JSON string and parse it according to the structure of the multimedia message to retrieve the data of various fields in the message. Please refer to the media message structure.
    • When the message is sent by the server, regardless of the message type, the content passed in when sending the message is directly returned.
    └MsgIdNumberMessage ID, which can be used to determine the uniqueness of the message.
    └MsgSeqNumberThe message Seq.
    └PayloadStringMessage extension field.
    └MsgTimeNumberTimestamp when the server receives the message, in Unix time format with milliseconds (ms) as the unit.
    └IsEmptyNumberWhether it is an empty message.
    • 0: Not empty.
    • 1: Message is deleted or has expired.
    • 2: Message is revoked.

    Explanation of parameters in the parsed result of the msg_body JSON string

    ParameterTypeDescription
    md5StringThe MD5 value of the file.
    file_nameStringFile name.
    file_sizeStringFile size in bytes (B).
    download_urlStringDownload address.
    media_durationStringThe duration of the audio or video, in seconds (s).

    Sample response

    Untitled
    {
        "Code": 0
        "Message": "success",
        "RequestId": "343649807833778782",
        "Next": 1000,
        "List": [
            {
                "Sender": "user1",
                "MsgType": 1,
                "MsgBody": "This is a message.",
                "MsgId": 971503777289036700,
                "MsgSeq": 1,
                "Payload": "Payload",
                "MsgTime": 1705895412000,
                "IsEempy": 0
            }
        ]
    }
    
    1
    Copied!

    Return codes

    The following table describes only the return codes related to the business logic of the operation. For the complete list of return codes, see Return codes.

    Return CodeDescriptionSolution
    660000002Invalid parameter.Check the input parameter.
    660300005The QPS limit specified in AppID is exceeded.Try again later.
    660500002FromUserId is not registered.Check if FromUserId is correct.

    Previous

    Query conversation list

    Next

    Query the message list of group chats