Zoom Developer Forum

Retrieving participant names through the Zoom SDK

Updated at:
October 14, 2025

Question

People commonly ask on the Zoom Developer Forum:

How can I retrieve participant names and identify meeting participants (ideally by email) in real time when using the Zoom Meeting SDK for Linux, especially in scenarios where participant names may duplicate? What methods can I use to map participant IDs to their display names and emails, and how do the different IDs (GetUserId vs GetPersistentId) relate to webhook or API IDs?

Answer

To effectively retrieve participant names and identify meeting participants using the Zoom Meeting SDK for Linux, you can follow these steps:

Retrieving Participant Names

  1. Access the Participants Controller: First, obtain the participants controller from your meeting service:

cpp IMeetingParticipantsController* participantCtl = m_meetingService->GetMeetingParticipantsController();

  1. Get the Participants List: Retrieve the list of participants, which consists of user IDs:

cpp auto list = participantCtl->GetParticipantsList();

  1. Fetch User Information: For each user ID in the list, you can obtain the participant's display name: cpp IUserInfo* user = participantCtl->GetUserByID(user_id); const wchar_t* name = user->GetUserName(); // This returns the participant’s display name

This approach allows you to convert the IDs obtained from GetParticipantsList into names by using GetUserByID followed by IUserInfo and GetUserName().

Identifying Participants by Email

Identifying participants by email, particularly for external guests, requires a combination of SDK events and external data:

  1. OAuth Consent: Ensure that you require OAuth consent (specifically the user:read scope) from each participant. This means that each participant must install your application to grant the necessary permissions. During the meeting, you can correlate SDK user IDs with the users who authorized:
  • Use the Get a User endpoint to fetch their email after obtaining their user ID.
  1. Understanding User IDs:
  • GetUserId(): This ID is valid only for the current meeting session.
  • GetPersistentId(): This ID is intended to remain stable across multiple meetings for the same user, making it a better choice for cross-meeting identification. However, be aware that some developers have reported inconsistencies with persistent IDs across meetings, so it's advisable to validate this behavior in your environment.
  1. Utilizing Meeting Registration: If your meetings require registration, you can capture the registrant_id from the meeting.participant_joined webhook. You can then call the Get a Meeting Registrant endpoint to retrieve the registrant’s email. This method works well for external guests who register for the meeting.

If you prefer not to build your own mapping solution, consider using third-party APIs like Recall.ai, which provide meeting bots and calendar integrations to help associate meeting participants with their emails.

Additional Considerations

  • It is important to note that there is no single SDK call that returns participant emails for all users, especially for external guests.
  • When correlating SDK participant IDs with webhook payloads, such as participant_user_id, thorough testing is necessary to confirm the mappings.
  • The ListMeetingParticipants API is another option but requires a Business or higher plan.

Zoom Developer Forum Examples

Some examples of this question are: