Issue Description
We are building an automated meeting bot that joins Zoom meetings, records audio, generates
meeting summaries, and sends those summaries to all participants via email.
The critical missing piece is reliably retrieving participant email addresses after a meeting has
ended.
SDKs and APIs Currently in Use
- Zoom Meeting SDK for Linux (via zoom-meeting-sdk Python bindings)
● Purpose: Joining meetings, recording audio/video, real-time transcription
● Version: Latest from PyPI
● Documentation: Meeting SDK for Linux API Reference: Main Page - Zoom REST API v2 (via Python requests library)
● Purpose: OAuth authentication, meeting management, participant retrieval
● Base URL: https://api.zoom.us/v2/
Endpoints Tested
EndpointStatu
sScope UsedResult /
Error
/v2/meetings/{meetingId}/participantsTeste
dmeeting:read:list_past_participant
s404 Not
Found –
Only
works for
active or
very
recently
ended
meetings
/v2/past_meetings/{meetingUUID}/pa
rticipantsPartia
lly
testedmeeting:read:list_past_participant
sRequires
meeting
UUID
(hard to
obtain
after
meeting
ends)EndpointStatu
sScope UsedResult /
Error
/v2/report/meetings/{meetingId}/parti
cipantsTeste
dreport:read:list_meeting_participa
nts:admin400
Error –
Scope
not
available
in App
Marketpl
ace
Error from Report endpoint:
JSON
{
“code”: 4711,
“message”: “Invalid access token, does not contain
scopes:[report:read:list_meeting_participants:admin].”
}
Current OAuth App Configuration
● App Type: Server-to-Server OAuth
● Enabled Scopes: meeting:read:list_past_participants (and other meeting-related
scopes)
● Missing Scope: report:read:list_meeting_participants:admin (not visible in the Zoom
App Marketplace dashboard)
Questions
1. What is the recommended endpoint to retrieve participant email addresses for ended
meetings?
2. Is the scope report:read:list_meeting_participants:admin available for OAuth apps
(especially Server-to-Server), or is it account-level / admin-only?
3. If reporting scopes are not available for our app type, what is the best alternative
approach?
4. For the endpoint /v2/past_meetings/{meetingUUID}/participants:
○ What is the best way to obtain the meeting UUID after the meeting has ended?
○ How long after the meeting ends is this endpoint still available?
5. Are there any account-level requirements (e.g., Business, Education, or Enterprise
plan) to access detailed participant data including emails?
Use Case Summary● Bot automatically joins meetings using the Meeting SDK
● Records audio and performs transcription during the meeting
● After meeting ends: Retrieve all participant emails → Send personalized meeting
summary emails
● Current workaround: Only sending summary to the host email
Technical Details
●
●
●
●
Language: Python 3.10+
OAuth Flow: Authorization Code flow with refresh tokens (Server-to-Server OAuth)
Authentication: Bearer token via requests library
Error Handling: Implemented fallback logic trying all three endpoints
Request
We need clear guidance on:
● The correct endpoint + scope combination for our use case
● How to enable reporting scopes (if possible)
● Recommended workaround if reporting API is not available for Server-to-Server OAuth
apps
● Any plan or account requirements