"Get chat messages reports" API endpoint is not consistently returning the same results for the same request

API Endpoint(s) and/or Zoom API Event(s)

We use the “sessions/chat messages” report endpoints to capture all sent chat messages within a Zoom account. We recently noticed that some of those messages were missing and later on we confirmed that the mentioned endpoint was not returning all expected messages at the time we processed a given time window.

Because “Get chat messages reports” endpoint is a time based endpoint, we would expect it to always return the same results while using the exact same query parameters. The following example illustrates the problem, events are in chronological order and dates are in UTC:

  • User “A” sent a message in session “1” on 2023-02-27T23:58:46Z

  • On 2023-02-28T00:00:42.900238662Z our system tried to get all chat message from session “1” for the previous day (i.e: GET https://api.zoom.us/v2/report/chat/sessions/1?from=2023-02-27&page_size=100&to=2023-02-28) At that time the response was:

      "from": "2023-02-27",
      "to": "2023-02-28",
      "messages": [],
      "page_size": 100,
      "next_page_token": ""
  • Then yesterday (Monday 13 March 2023) while trying to understand why there were some missing messages, we manually performed the same API request (same exact request) but this time we got 1 message:

      "from": "2023-02-27",
      "to": "2023-02-28",
      "messages": [
          "id": "{...}",
          "message": "...",
          "sender": "...",
          "sender_display_name": "...",
          "timestamp": 1677542326585,
          "date_time": "2023-02-27T23:58:46Z"
      "page_size": 100,
      "next_page_token": ""
  • Why does that message wasn’t returned when we originally did the GET request on 2023-02-28T00:00:42.900238662Z?

How To Reproduce
Unfortunately this has happened randomly.

Hi @emata_zoom , what type of access token are you using to query this endpoint and how? For example, doing a singular request or looping through?

Hi @gianni.zoom, thanks for replying back.

We are currently using an account level app token. So, it is a single call to get all user interactions for a given session within a given time window.

In regards to the “how”, we sent the Bearer token as a header request (Authorization header).


Hi @emata_zoom ,

I apologize for not being clearer. I was referring to the type of app you have such as Server-to-Server, regular OAuth, Chat, etc.

Hi @gianni.zoom,

Sure, no problem. It uses regular OAuth v2 (Authorization Code Grant Type)

@emata_zoom ,

This is definitely bizarre. I’d like to take a further look. Please private message me with the production client id for the app credentials you’re using to make this request as well as the full request/response.


@gianni.zoom I just did, thanks