Webinar APIs - Get Participants/Get Registrants

I have questions around Webinar APIs

Question 1:
API for getting webinar registrants is not returning constant output.
“/v2/webinars/webinar_id /registrants?page_size=30”

When I run this API for the webinar which happened on Dec 18, 2019, I am getting the expected output mentioned in the API documentation https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarregistrants

However when I execute the same API for Webinar that happened on Dec 16, 2019 I do not get last_name field in my output. That field is missing all together and rest all fields are present. I also saw that first_name is the concatenation of first_name and last_name for this particular API call.
Why am I getting different output structure?
I can share the webinar_ids over email if you need for debugging.

Question 2:
I am trying to generate the report using Zoom APIs which we can currently download from Zoom UI
via Reports > Usage Reports > Webinar > Attendee Report

There is no single API that helps me get all the below information in the report
The fields under this report are as follows:
Attended - Can you help what would be a good approach for generating this field?
First Name -
Last Name -
Email -
Registration Time -
Approval Status -
Join Time -
Leave Time -
Time in Session (minutes)
Attentiveness Score
Country/Region Name
Source Name - How to get this value via API?

Hey @nsoni,

Please share the payload you received. Feel free to private message it to me. (ZOOM-132994)

What is Attended and Source Name?

We do not have one single endpoint to get all of that data. However you can get all the data using the following endpoints:

The Webinar Participant Report endpoint gets you close.

You can get the location from the Get Webinar Participants endpoint.

You can get the Registration Time and Status from the List Webinar Registrants endpoint, or our Registrant Created and Registrant Approved Webhooks.


Hey @nsoni,

If a user joins a webinar via the Zoom App like this:


There is only one name field, which is then set as first name in the payload. The functionality you are describing is intended.