ZOOM Api is reporting incorrect participant data

We are encountering an issue with the Zoom API for fetching participants.

Most of the time, the API only returns a subset of the list. However, when we log in and download the list from a host’s account, we are able to retrieve the entire list.

I wanted to share this to see if this is a common issue that others have faced. Any help in resolving this would be greatly appreciated.

For reference, we have used both of the following APIs to fetch the participant list w/o much success:

  • /report/meetings/{meetingId}/participants
  • /past_meetings/{meetingUUID}/participants

Hi @subrat
Thanks for reaching out to the Zoom Developer Forum and welcome to our community!
Have you been able to troubleshoot this issue? If not, could you share with me some examples of what you are getting to take a look at it?

@elisa.zoom We have been experiencing the same issue quite frequently. See the Post I made last week with full details:

This has been very painful as there’s no way to know that Zoom is going to return incomplete lists

Our current process is:

  1. Users are registered for the event via API and launched into Zoom at time of meeting using the unique event launch per registered user
  2. When meeting ends, we receive a webhook for event ended.
  3. We then immediately call Zoom with the meeting ID to https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/reportWebinarParticipants (or equivalent for meetings) to pull back participants and see who attended, and their duration. Since this call has been inconsistent in getting results right away, we also try again 2-3 minutes later.
  4. Approx 2-3 min later we make another call to the API (https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/reportWebinarParticipants) to pull back full participant data. This is used in our system to determine who gets full vs partial credit and to issue certificates.

However step 4 is where we are still seeing a subset of webinars/meetings return participant data that is incomplete (only partial attendance data included). Later in the day if the client runs the report directly in zoom, the data is there, but it is not available within 1-3 minutes after the event. This causes major issues for clients who rely on the automated system to process attendance data and grant users credits automatically. When there is a delay, significant end-user support issues are encountered.

1 Like

Hi @jkendall
Thanks for reaching out.
I will go ahead and close the other thread so we can keep the communication just in one post.

I believe this issue could be due to the way you are calling the report endpoint. The data takes somewhere between 1 to 2 minutes to process, so instead of calling the Report endpoint immediately after the meeting or webinar ended, I would encourage you to delay this call to get all the data.

But allow me some time to do some testing on my end to troubleshoot this.

@elisa.zoom thank you for the response!

We have tried to add in delays. The issue is the results are very inconsistent (sometimes available in 1 min, and every so often much longer (10min?). And the OP’s issue happens to us as well. The endpoint will return data right way, it is just partially incomplete and there is no indication that it’s still processing, just random missing data which makes it hard to rely on the output of the endpoint.

1 Like

Thanks for the clarification @jkendall
I was out for a couple of days but I will go ahead and continue doing some testing on this issue.

@elisa.zoom same situation happened even when two users were in the meeting - after the webinar ended, we waited 5 minutes and then tried to get report data and it wasn’t ready (was blank for 1 user) then after approx 15 min we tried one more time - and it was ready (for both users)
how we could know when report data is completely generated end we could pull it?

Hi @ganzha.dmitriy
Thanks for reaching out to the Zoom Developer Forum and welcome to our community.
Interesting. Do you happen to have a recent example of this issue ??? with timestamps so I can reach out to our Engineering team?

Meeting ID 89047626200
there is participants’ information

    [0] {
                         "id" => "gTqiLFOKQJuS6Unr5AINvA",
                    "user_id" => "16778240",
                       "name" => "nata test",
                 "user_email" => "nata_dnepr@ukr.net",
                  "join_time" => "2023-04-05T10:14:58Z",
                 "leave_time" => "2023-04-05T10:18:24Z",
                   "duration" => 206,
        "attentiveness_score" => "",
                   "failover" => false,
                     "status" => "in_meeting",
               "customer_key" => "",
        "participant_user_id" => "gTqiLFOKQJuS6Unr5AINvA"
    [1] {
                         "id" => "",
                    "user_id" => "16779264",
                       "name" => "Kira Green",
                 "user_email" => "xxkira@test.comxx",
                  "join_time" => "2023-04-05T10:15:26Z",
                 "leave_time" => "2023-04-05T10:15:29Z",
                   "duration" => 3,
        "attentiveness_score" => "",
              "registrant_id" => "JEHymhIzSlmrZG6-wPqBBA",
                   "failover" => false,
                     "status" => "in_waiting_room",
               "customer_key" => ""
    [2] {
                         "id" => "",
                    "user_id" => "16780288",
                       "name" => "Kira Green",
                 "user_email" => "xxkira@test.comxx",
                  "join_time" => "2023-04-05T10:15:29Z",
                 "leave_time" => "2023-04-05T10:18:23Z",
                   "duration" => 174,
        "attentiveness_score" => "",
              "registrant_id" => "JEHymhIzSlmrZG6-wPqBBA",
                   "failover" => false,
                     "status" => "in_meeting",
               "customer_key" => ""

we tried to pull the report 5 min after we ended the webinar and didn’t even receive any information about this user xxkira@test.comxx
then after 15 min ± we make additional requests and receive all information about all participants

We struggle with this current behavior as well. If the development team is open to suggestions - it would be nice if the ‘meeting.ended’ webhook did not get submitted until all participant data has been saturated. Right now its a guessing game on when the participant data is available… and even a 200 response is no guarantee that the participant list is complete.

1 Like

or a special webhook that would notify that all participant data has been saturated
like ‘meeting.participant_report_ready’

1 Like

Any update here?

We are also facing the same problem. There is no consistency in the response here.

Would be great if we can have a new key in the report response.

This seems like an ideal solution. @elisa.zoom Is there any appropriate place to request or upvote an addition like this?

Hi @michael3
Feel free to make a feature request here: