### Install Zoomus using pip Source: https://github.com/prschmid/zoomus/blob/develop/docs/source/index.md Installs the zoomus library using pip. This is the first step to using the Zoomus Python wrapper. ```bash pip install zoomus ``` -------------------------------- ### Install Testing Requirements Source: https://github.com/prschmid/zoomus/blob/develop/README.md Installs the necessary Python packages for running tests, typically defined in a requirements file. ```sh pip install -r requirements-tests.txt ``` -------------------------------- ### Use Zoom Client with Context Manager Source: https://github.com/prschmid/zoomus/blob/develop/README.md Demonstrates using the ZoomClient within a 'with' statement, which ensures proper resource management. This example shows fetching a list of users. ```python with ZoomClient('CLIENT_ID', 'CLIENT_SECRET', 'ACCOUNT_ID') as client: user_list_response = client.users.list() ... ``` -------------------------------- ### Initialize Development Environment Source: https://github.com/prschmid/zoomus/blob/develop/CONTRIBUTING.md Commands to create a Python virtual environment and install project dependencies. This ensures a clean and isolated workspace for development. ```sh python3 -m venv .venv source .venv/bin/activate pip install -U pip pip install -r requirements-tests.txt ``` -------------------------------- ### Run project tests Source: https://github.com/prschmid/zoomus/blob/develop/docs/source/index.md Commands to install necessary test dependencies and execute the test suite using the nose framework. ```bash pip install -r requirements-tests.txt nosetests ``` -------------------------------- ### Configure and Manage Zoom Live Streams Source: https://context7.com/prschmid/zoomus/llms.txt Demonstrates how to update live stream settings, start a stream, and stop an active stream for a specific meeting ID. These methods interact with the client.live_stream module. ```python client.live_stream.update(meeting_id=123456789, stream_url='rtmp://live.example.com/stream', stream_key='your-stream-key', page_url='https://example.com/live') client.live_stream.update_status(meeting_id=123456789, action='start', settings={'active_speaker_name': True, 'display_name': 'Company Webcast'}) client.live_stream.update_status(meeting_id=123456789, action='stop') ``` -------------------------------- ### Install Pre-commit Hooks Source: https://github.com/prschmid/zoomus/blob/develop/CONTRIBUTING.md Configures pre-commit hooks to automatically run the black code formatter before every git commit. This helps maintain consistent code style across the project. ```sh pipenv run pre-commit install ``` -------------------------------- ### GET /report/daily Source: https://context7.com/prschmid/zoomus/llms.txt Retrieves daily usage reports for a specific month and year. ```APIDOC ## GET /report/daily ### Description Retrieves daily usage reports for a specific month and year. ### Method GET ### Endpoint /report/daily ### Parameters #### Query Parameters - **year** (integer) - Required - The year for the report - **month** (integer) - Required - The month for the report ### Response #### Success Response (200) - **report** (object) - Daily usage report data #### Response Example { "report": { "date": "2024-01-01", "usage": 100 } } ``` -------------------------------- ### GET /contacts/search Source: https://context7.com/prschmid/zoomus/llms.txt Searches for contacts within the Zoom platform. ```APIDOC ## GET /contacts/search ### Description Searches for contacts within the Zoom platform. ### Method GET ### Endpoint /contacts/search ### Parameters #### Query Parameters - **search_key** (string) - Required - Search term ### Response #### Success Response (200) - **contacts** (array) - List of matching contacts #### Response Example { "contacts": [ { "first_name": "John", "last_name": "Doe" } ] } ``` -------------------------------- ### GET /phone/call_logs Source: https://context7.com/prschmid/zoomus/llms.txt Retrieves call logs for the account. Requires phone:read:admin scope. ```APIDOC ## GET /phone/call_logs ### Description Retrieves call logs for the account. Requires phone:read:admin scope. ### Method GET ### Endpoint /phone/call_logs ### Parameters #### Query Parameters - **page_size** (integer) - Optional - Number of records to return - **type** (string) - Optional - Type of logs to retrieve ('all' or 'missed') ### Response #### Success Response (200) - **call_logs** (array) - List of call log objects #### Response Example { "call_logs": [ { "caller_number": "+15550101", "callee_number": "+15550102" } ] } ``` -------------------------------- ### GET /users Source: https://context7.com/prschmid/zoomus/llms.txt Retrieve a list of users or specific user details from the Zoom account. ```APIDOC ## GET /users ### Description List all users in the account or retrieve details for a specific user. ### Method GET ### Endpoint /users ### Parameters #### Query Parameters - **page_size** (integer) - Optional - Number of records per page - **page_number** (integer) - Optional - Current page number ### Response #### Success Response (200) - **users** (array) - List of user objects #### Response Example { "users": [ { "id": "user_id_1", "email": "user@example.com" } ] } ``` -------------------------------- ### GET /past_meetings/{meeting_id} Source: https://context7.com/prschmid/zoomus/llms.txt Retrieves details for a specific past meeting. ```APIDOC ## GET /past_meetings/{meeting_id} ### Description Retrieves details for a specific past meeting. ### Method GET ### Endpoint /past_meetings/{meeting_id} ### Parameters #### Path Parameters - **meeting_id** (string) - Required - The UUID of the meeting ### Response #### Success Response (200) - **duration** (integer) - Meeting duration in minutes - **participants_count** (integer) - Total participants #### Response Example { "duration": 30, "participants_count": 5 } ``` -------------------------------- ### Retrieve Past Zoom Meeting Data - Python Source: https://context7.com/prschmid/zoomus/llms.txt Fetches historical meeting data, including instances of recurring meetings and participant details. Requires meeting IDs. Outputs meeting UUIDs, start times, duration, participant counts, and individual participant join/leave times. ```python import json from zoomus import ZoomClient client = ZoomClient('CLIENT_ID', 'CLIENT_SECRET', 'ACCOUNT_ID') # List instances of a recurring meeting instances_response = client.past_meeting.list(meeting_id='meeting_id_here') instances = json.loads(instances_response.content) for instance in instances.get('meetings', []): print(f"Instance: {instance['uuid']} at {instance['start_time']}") # Get past meeting details past_meeting_response = client.past_meeting.get(meeting_id='meeting_uuid') past_meeting = json.loads(past_meeting_response.content) print(f"Meeting duration: {past_meeting.get('duration')} minutes") print(f"Participants: {past_meeting.get('participants_count')}") # Get past meeting participants participants_response = client.past_meeting.get_participants(meeting_id='meeting_uuid') participants = json.loads(participants_response.content) for participant in participants.get('participants', []): print(f"Participant: {participant.get('name')} ({participant.get('user_email')})") print(f" Join time: {participant.get('join_time')}") print(f" Leave time: {participant.get('leave_time')}") ``` -------------------------------- ### Get Zoom Call Logs - Python Source: https://context7.com/prschmid/zoomus/llms.txt Retrieves call logs from the Zoom API, allowing filtering by type (all or missed). Requires the 'phone:read:admin' scope. Outputs caller and callee numbers. ```python import json call_logs_response = client.phone.call_logs( page_size=30, type='all' # 'all' or 'missed' ) call_logs = json.loads(call_logs_response.content) for call in call_logs.get('call_logs', []): print(f"Call: {call.get('caller_number')} -> {call.get('callee_number')}") ``` -------------------------------- ### Initialize Zoom Client (Python) Source: https://github.com/prschmid/zoomus/blob/develop/docs/source/index.md Demonstrates how to initialize the ZoomClient for API V2 (default) and API V1. It also shows how to use the client within a context manager. ```python import json from zoomus import ZoomClient # For API V2 (default) client = ZoomClient('CLIENT_ID', 'CLIENT_SECRET') # For API V1 client_v1 = ZoomClient('CLIENT_ID', 'CLIENT_SECRET', version=1) # Using with a manage context with ZoomClient('CLIENT_ID', 'CLIENT_SECRET') as client: user_list_response = client.users.list() ``` -------------------------------- ### Initialize ZoomClient for API Interactions Source: https://context7.com/prschmid/zoomus/llms.txt Demonstrates how to instantiate the ZoomClient using credentials. It covers standard V2 initialization, EU-specific endpoints, context manager usage, and legacy V1 support. ```python import json from zoomus import ZoomClient # Standard client initialization (V2 API - default) client = ZoomClient( client_id='YOUR_CLIENT_ID', client_secret='YOUR_CLIENT_SECRET', api_account_id='YOUR_ACCOUNT_ID' ) # EU GDPR-compliant client eu_client = ZoomClient( client_id='YOUR_CLIENT_ID', client_secret='YOUR_CLIENT_SECRET', api_account_id='YOUR_ACCOUNT_ID', base_uri='https://eu01api-www4local.zoom.us/v2' ) # Using context manager with ZoomClient('CLIENT_ID', 'CLIENT_SECRET', 'ACCOUNT_ID') as client: response = client.user.list() users = json.loads(response.content) print(f"Found {len(users.get('users', []))} users") # Legacy V1 API (deprecated by Zoom) v1_client = ZoomClient( client_id='CLIENT_ID', client_secret='CLIENT_SECRET', api_account_id='ACCOUNT_ID', version=1 ) ``` -------------------------------- ### Create Zoom Client v2 (Default) Source: https://github.com/prschmid/zoomus/blob/develop/README.md Initializes the ZoomClient for API v2, which is the default. It demonstrates fetching a list of users and then listing meetings for each user. The response content needs to be JSON-decoded. ```python import json from zoomus import ZoomClient client = ZoomClient('CLIENT_ID', 'CLIENT_SECRET', 'ACCOUNT_ID') user_list_response = client.user.list() user_list = json.loads(user_list_response.content) for user in user_list['users']: user_id = user['id'] print(json.loads(client.meeting.list(user_id=user_id).content)) ``` -------------------------------- ### Create User using Zoom API V2 (Python) Source: https://github.com/prschmid/zoomus/blob/develop/docs/source/index.md Shows how to create a new user in Zoom using the API V2. It includes the parameters required and how to handle the response. ```python params = { "action": "create", "user_info": { "email": "example@test.com", "type": 1, "first_name": "Terry", "last_name": "Jones" } } resp = client.user.create(**data) if resp.status_code == 200: print(resp.json()) ``` -------------------------------- ### Manage Zoom Groups Source: https://context7.com/prschmid/zoomus/llms.txt Demonstrates how to list, create, retrieve, and modify Zoom groups and their members. Requires a configured ZoomClient instance. ```python response = client.group.list() groups = json.loads(response.content) for group in groups.get('groups', []): print(f"Group: {group['name']} (ID: {group['id']})") create_response = client.group.create(name='Engineering Team') new_group = json.loads(create_response.content) group_id = new_group['id'] group_response = client.group.get(id=group_id) group = json.loads(group_response.content) members_response = client.group.list_members(groupid=group_id) members = json.loads(members_response.content) client.group.add_members( groupid=group_id, members=[{'id': 'user_id_1'}, {'id': 'user_id_2'}, {'email': 'user3@example.com'}] ) client.group.delete_member(groupid=group_id, memberid='user_id_here') client.group.delete(id=group_id) ``` -------------------------------- ### Schedule and Manage Zoom Meetings Source: https://context7.com/prschmid/zoomus/llms.txt Demonstrates how to list, create, retrieve, and update Zoom meetings. Includes configuration for meeting settings like passwords, video preferences, and registration types. ```python import json from datetime import datetime, timedelta from zoomus import ZoomClient client = ZoomClient('CLIENT_ID', 'CLIENT_SECRET', 'ACCOUNT_ID') # List meetings for a user response = client.meeting.list(user_id='user_id_here') meetings = json.loads(response.content) for meeting in meetings.get('meetings', []): print(f"Meeting: {meeting['topic']} (ID: {meeting['id']})") # Create a scheduled meeting start_time = datetime.utcnow() + timedelta(days=1) create_response = client.meeting.create( user_id='user_id_here', topic='Weekly Team Sync', type=2, # 1=Instant, 2=Scheduled, 3=Recurring no fixed time, 8=Recurring fixed time start_time=start_time, duration=60, # minutes timezone='America/New_York', password='meeting123', agenda='Discuss weekly progress and blockers', settings={ 'host_video': True, 'participant_video': True, 'join_before_host': False, 'mute_upon_entry': True, 'waiting_room': True, 'approval_type': 0, # 0=Auto, 1=Manual, 2=No registration 'registration_type': 1 # 1=Once, 2=Each occurrence, 3=Once for all } ) meeting = json.loads(create_response.content) print(f"Created meeting: {meeting['join_url']}") # Get meeting details meeting_response = client.meeting.get(id=meeting['id']) meeting_details = json.loads(meeting_response.content) # Update meeting client.meeting.update( id=meeting['id'], topic='Updated Team Sync', duration=90 ) ``` -------------------------------- ### Create Zoom Client v1 Source: https://github.com/prschmid/zoomus/blob/develop/README.md Initializes the ZoomClient specifically for API v1. Note that support for v1 is limited and not actively maintained. ```python import json from zoomus import ZoomClient client = ZoomClient('CLIENT_ID', 'CLIENT_SECRET', 'ACCOUNT_ID', version=1) ``` -------------------------------- ### Configure Zoom Live Stream - Python Source: https://context7.com/prschmid/zoomus/llms.txt Provides functionality to configure and control live streaming for Zoom meetings to external platforms. This snippet initializes the client but does not contain specific live stream configuration actions. ```python import json from zoomus import ZoomClient client = ZoomClient('CLIENT_ID', 'CLIENT_SECRET', 'ACCOUNT_ID') ``` -------------------------------- ### Create Zoom Client for EU Users (GDPR) Source: https://github.com/prschmid/zoomus/blob/develop/README.md Initializes the ZoomClient with a specific base_uri to target the EU endpoints for GDPR compliance. This requires your Zoom account to be configured as an EU account. ```python import json from zoomus import ZoomClient client = ZoomClient('CLIENT_ID', 'CLIENT_SECRET', 'ACCOUNT_ID', base_uri="https://eu01api-www4local.zoom.us/v2") ``` -------------------------------- ### Manage Zoom Rooms Source: https://context7.com/prschmid/zoomus/llms.txt Handles Zoom Room configuration, including listing rooms, creating new ones, fetching settings/devices, and performing check-in/out operations. ```python response = client.room.list() rooms = json.loads(response.content) for room in rooms.get('rooms', []): print(f"Room: {room['name']} (Status: {room.get('status')})") create_response = client.room.create(name='Conference Room A', type='ZoomRoom', location_id='location_id_here') new_room = json.loads(create_response.content) room_id = new_room['id'] room_response = client.room.get(id=room_id) settings_response = client.room.get_settings(id=room_id, setting_type='meeting') devices_response = client.room.get_devices(id=room_id) client.room.update(id=room_id, name='Conference Room A - Updated', calendar_resource_id='calendar_resource') client.room.check_in_or_out(id=room_id, method='check_in') client.room.delete(id=room_id) ``` -------------------------------- ### Manage Meeting Registrants and Status Source: https://context7.com/prschmid/zoomus/llms.txt Demonstrates how to add registrants to a meeting, list existing registrants, update their approval status, and manage the meeting lifecycle by ending or deleting it. ```python registrant_response = client.meeting.add_registrant(id=meeting['id'], email='attendee@example.com', first_name='Jane', last_name='Smith') registrant = json.loads(registrant_response.content) registrants_response = client.meeting.list_registrants(id=meeting['id']) registrants = json.loads(registrants_response.content) client.meeting.update_registrant_status(id=meeting['id'], action='approve', registrants=[{'id': 'registrant_id_here', 'email': 'attendee@example.com'}]) client.meeting.update_status(id=meeting['id'], action='end') client.meeting.delete(id=meeting['id']) ``` -------------------------------- ### Manage Webinar Lifecycle and Panelists Source: https://context7.com/prschmid/zoomus/llms.txt Covers the full webinar workflow including creation with specific settings, attendee registration, management of panelists, and final cleanup operations. ```python create_response = client.webinar.create(user_id='user_id_here', topic='Product Launch Webinar', type=5, start_time=start_time, duration=120, timezone='America/Los_Angeles', password='webinar123', settings={'host_video': True, 'panelists_video': True, 'practice_session': True, 'hd_video': True, 'approval_type': 0, 'registration_type': 1, 'audio': 'both', 'auto_recording': 'cloud', 'on_demand': True}) webinar = json.loads(create_response.content) client.webinar.add_panelists(id=webinar['id'], panelists=[{'name': 'Expert Panelist', 'email': 'panelist1@example.com'}, {'name': 'Guest Speaker', 'email': 'panelist2@example.com'}]) client.webinar.end(id=webinar['id']) client.webinar.delete(id=webinar['id']) ``` -------------------------------- ### POST /users Source: https://context7.com/prschmid/zoomus/llms.txt Create a new user in the Zoom account. ```APIDOC ## POST /users ### Description Create a new user account. ### Method POST ### Endpoint /users ### Parameters #### Request Body - **action** (string) - Required - Action to perform (e.g., 'create') - **user_info** (object) - Required - User details including email, type, first_name, and last_name ### Response #### Success Response (201) - **id** (string) - The ID of the created user #### Response Example { "id": "new_user_id", "email": "newuser@example.com" } ``` -------------------------------- ### Zoom Webinar Methods (Python) Source: https://github.com/prschmid/zoomus/blob/develop/docs/source/index.md Lists the zoomus client methods for managing Zoom webinars, including creation, updates, deletion, and participant management. ```python client.webinar.create(...) client.webinar.update(...) client.webinar.delete(...) client.webinar.list(...) client.webinar.get(...) client.webinar.end(...) client.webinar.register(...) client.webinar.add_panelists(...) client.webinar.list_panelists(...) client.webinar.remove_panelists(...) ``` -------------------------------- ### Zoom Meeting Methods (Python) Source: https://github.com/prschmid/zoomus/blob/develop/docs/source/index.md Provides a list of methods for managing Zoom meetings via the zoomus client, including creating, deleting, updating, and retrieving meeting details. ```python client.meeting.get(...) client.meeting.end(...) client.meeting.create(...) client.meeting.delete(...) client.meeting.list(...) client.meeting.update(...) client.meeting.add_registrant(...) client.meeting.list_registrants(...) client.meeting.update_registrant_status(...) client.meeting.update_status(...) ``` -------------------------------- ### User Management Methods Source: https://github.com/prschmid/zoomus/blob/develop/README.md Provides methods for creating, updating, retrieving, and managing user accounts within the Zoom system. This includes checking email availability and updating user settings. ```python client.user.create(...) client.user.cust_create(...) client.user.update(...) client.user.check_email(...) client.user.update_email(...) client.user.list(...) client.user.pending(...) client.user.get(...) client.user.get_by_email(...) client.user.get_settings(...) client.user.update_settings(...) ``` -------------------------------- ### Manage Zoom Rooms via zoomus client Source: https://github.com/prschmid/zoomus/blob/develop/docs/source/index.md Provides a list of methods available on the client.room object to interact with the Zoom Rooms API. These methods support listing, creating, updating, deleting, and retrieving settings or device information for Zoom rooms. ```python client.room.list(...) client.room.create(...) client.room.get(...) client.room.get_settings(...) client.room.get_devices(...) client.room.delete(...) client.room.check_in_or_out(...) client.room.update(...) ``` -------------------------------- ### Role Management Methods Source: https://github.com/prschmid/zoomus/blob/develop/README.md Provides methods for managing user roles in Zoom, including assigning/unassigning roles, creating, deleting, retrieving roles, and managing role members. ```python client.role.assign(...) client.role.create(...) client.role.delete(...) client.role.get(...) client.role.get_members(...) client.role.list(...) client.role.unassign(...) client.role.update(...) ``` -------------------------------- ### Execute Test Suite Source: https://github.com/prschmid/zoomus/blob/develop/CONTRIBUTING.md Runs the project test suite using tox to ensure compatibility across multiple configured Python versions in an isolated environment. ```sh tox ``` -------------------------------- ### Retrieve and Manage Cloud Recordings Source: https://context7.com/prschmid/zoomus/llms.txt Provides methods to list recordings within a date range, fetch details for specific meetings, and delete either entire meeting recording sets or individual files. ```python response = client.recording.list(user_id='user_id_here', start=start_date, end=end_date) recordings = json.loads(response.content) meeting_recordings = client.recording.get(meeting_id='meeting_id_here') client.recording.delete(meeting_id='meeting_id_here') client.recording.delete_single_recording(meeting_id='meeting_id_here', recording_id='recording_file_id') ``` -------------------------------- ### Manage Zoom Users Programmatically Source: https://context7.com/prschmid/zoomus/llms.txt Covers common user management operations including listing users, retrieving profile information, checking email availability, creating new accounts, and modifying user settings or status. ```python import json from zoomus import ZoomClient client = ZoomClient('CLIENT_ID', 'CLIENT_SECRET', 'ACCOUNT_ID') # List all users response = client.user.list(page_size=30, page_number=1) users = json.loads(response.content) for user in users.get('users', []): print(f"User: {user['email']} (ID: {user['id']})") # Get current user info me_response = client.user.me() me = json.loads(me_response.content) print(f"Current user: {me['email']}") # Get specific user by ID user_response = client.user.get(id='user_id_here') user = json.loads(user_response.content) # Check if email is registered email_check = client.user.check_email(email='test@example.com') result = json.loads(email_check.content) print(f"Email registered: {result.get('existed_email', False)}") # Create a new user create_response = client.user.create( action='create', user_info={ 'email': 'newuser@example.com', 'type': 1, # 1=Basic, 2=Licensed, 3=On-prem 'first_name': 'John', 'last_name': 'Doe' } ) # Update user settings client.user.update_settings( id='user_id_here', feature={ 'large_meeting': True, 'webinar': True } ) # Update user status (activate/deactivate) client.user.update_status(id='user_id_here', action='deactivate') # Delete user client.user.delete(id='user_id_here', action='delete') # Get user settings settings_response = client.user.get_settings(id='user_id_here') settings = json.loads(settings_response.content) ``` -------------------------------- ### Zoom User Methods (Python) Source: https://github.com/prschmid/zoomus/blob/develop/docs/source/index.md Lists various methods available for managing Zoom users through the zoomus client, such as creating, updating, and retrieving user information. ```python client.user.cust_create(...) client.user.update(...) client.user.check_email(...) client.user.update_email(...) client.user.list(...) client.user.pending(...) client.user.get(...) client.user.get_by_email(...) client.user.get_settings(...) client.user.update_settings(...) ``` -------------------------------- ### POST /users Source: https://github.com/prschmid/zoomus/blob/develop/docs/source/index.md Creates a new user in the Zoom account using the API V2. ```APIDOC ## POST /users ### Description Creates a new user in the Zoom account. ### Method POST ### Endpoint /users ### Request Body - **action** (string) - Required - The action to perform (e.g., "create") - **user_info** (object) - Required - Object containing user details like email, type, first_name, and last_name ### Request Example { "action": "create", "user_info": { "email": "example@test.com", "type": 1, "first_name": "Terry", "last_name": "Jones" } } ### Response #### Success Response (200) - **id** (string) - User ID - **first_name** (string) - User first name - **last_name** (string) - User last name - **email** (string) - User email - **type** (integer) - User type #### Response Example { "id": "string", "first_name": "string", "last_name": "string", "email": "string", "type": 1 } ``` -------------------------------- ### Zoom Reports and Metrics - Python Source: https://context7.com/prschmid/zoomus/llms.txt Fetches various reports and metrics from the Zoom API, including daily usage, account-level, user-specific, meeting participants, and dashboard metrics. Requires date/time parameters for reports and IDs for specific data. Outputs structured data for analysis. ```python import json from datetime import datetime, timedelta from zoomus import ZoomClient client = ZoomClient('CLIENT_ID', 'CLIENT_SECRET', 'ACCOUNT_ID') # Get daily usage report report_response = client.report.get_daily_report(year=2024, month=1) daily_report = json.loads(report_response.content) # Get account report start_time = datetime.utcnow() - timedelta(days=30) end_time = datetime.utcnow() account_report_response = client.report.get_account_report( start_time=start_time, end_time=end_time ) account_report = json.loads(account_report_response.content) # Get user report user_report_response = client.report.get_user_report( user_id='user_id_here', start_time=start_time, end_time=end_time ) user_report = json.loads(user_report_response.content) # Get meeting participants report participants_response = client.report.get_meeting_participants_report(id='meeting_id') participants = json.loads(participants_response.content) # Get webinar participants report webinar_participants_response = client.report.get_webinar_participants_report(id='webinar_id') webinar_participants = json.loads(webinar_participants_response.content) # Dashboard metrics - list meetings meetings_metric = client.metric.list_meetings(type='past') metrics = json.loads(meetings_metric.content) # Get meeting quality metrics meeting_metric_response = client.metric.get_meeting(meeting_id='meeting_uuid') meeting_metrics = json.loads(meeting_metric_response.content) # List meeting participants with metrics participants_metric = client.metric.list_participants(meeting_id='meeting_uuid') participant_metrics = json.loads(participants_metric.content) # Get participant quality of service qos_response = client.metric.get_participant_qos( meeting_id='meeting_uuid', participant_id='participant_id' ) qos = json.loads(qos_response.content) # List all participants QoS all_qos_response = client.metric.list_participants_qos(meeting_id='meeting_uuid') all_qos = json.loads(all_qos_response.content) ``` -------------------------------- ### Zoom Report Methods (Python) Source: https://github.com/prschmid/zoomus/blob/develop/docs/source/index.md Outlines the methods available in the zoomus client for generating and retrieving Zoom reports, such as account and user reports. ```python client.report.get_account_report(...) client.report.get_user_report(...) ``` -------------------------------- ### Manage Zoom Contacts - Python Source: https://context7.com/prschmid/zoomus/llms.txt Enables searching and retrieving contact information from Zoom. Supports searching by a key and listing the current user's contacts. Requires contact IDs for specific retrieval. Outputs contact names and email addresses. ```python import json from zoomus import ZoomClient client = ZoomClient('CLIENT_ID', 'CLIENT_SECRET', 'ACCOUNT_ID') # Search contacts search_response = client.contacts.search(search_key='john') contacts = json.loads(search_response.content) for contact in contacts.get('contacts', []): print(f"Contact: {contact.get('first_name')} {contact.get('last_name')}") # List current user's contacts user_contacts_response = client.contacts.list_user_contacts() user_contacts = json.loads(user_contacts_response.content) # Get specific contact details contact_response = client.contacts.get_user_contact(contact_id='contact_id_here') contact = json.loads(contact_response.content) ``` -------------------------------- ### Run Tests with Nose Source: https://github.com/prschmid/zoomus/blob/develop/README.md Executes the project's tests using the 'nose' test runner. ```sh nosetests ``` -------------------------------- ### Manage Zoom Roles Source: https://context7.com/prschmid/zoomus/llms.txt Provides administrative control over user roles, including creating custom roles, assigning permissions, and managing role membership. ```python response = client.role.list() roles = json.loads(response.content) for role in roles.get('roles', []): print(f"Role: {role['name']} (ID: {role['id']})") create_response = client.role.create(name='Custom Admin', description='Limited admin access', privileges=['User:Read', 'User:Edit']) role_id = json.loads(create_response.content)['id'] client.role.assign(id=role_id, members=[{'id': 'user_id_1'}]) client.role.unassign(id=role_id, member='user_id_here') client.role.delete(id=role_id) ``` -------------------------------- ### Recording Management API Source: https://context7.com/prschmid/zoomus/llms.txt Endpoints for managing Zoom cloud recordings. ```APIDOC ## GET /users/{userId}/recordings ### Description Lists cloud recordings for a user within a specified date range. ### Method GET ### Endpoint /users/{userId}/recordings ### Parameters #### Path Parameters - **userId** (string) - Required - The ID of the user whose recordings to list. #### Query Parameters - **start** (string) - Required - The start date for the recording search (YYYY-MM-DD). - **end** (string) - Required - The end date for the recording search (YYYY-MM-DD). ### Response #### Success Response (200) - **meetings** (array) - A list of meeting objects, each containing recording files. - **topic** (string) - The topic of the meeting. - **recording_files** (array) - A list of recording file objects. - **file_type** (string) - The type of the recording file (e.g., 'MP4', 'CHAT_LOG'). - **download_url** (string) - The URL to download the recording file. #### Response Example ```json { "meetings": [ { "topic": "Meeting Topic", "recording_files": [ { "file_type": "MP4", "download_url": "https://zoom.us/recording/download/url" } ] } ] } ``` ## GET /meetings/{meetingId}/recordings ### Description Retrieves all cloud recordings for a specific meeting. ### Method GET ### Endpoint /meetings/{meetingId}/recordings ### Parameters #### Path Parameters - **meetingId** (string) - Required - The ID of the meeting. ### Response #### Success Response (200) - **share_url** (string) - The URL to share the meeting recordings. #### Response Example ```json { "share_url": "https://zoom.us/recording/share/url" } ``` ## DELETE /meetings/{meetingId}/recordings ### Description Deletes all cloud recordings for a specific meeting. ### Method DELETE ### Endpoint /meetings/{meetingId}/recordings ### Parameters #### Path Parameters - **meetingId** (string) - Required - The ID of the meeting. ### Response #### Success Response (200) - **message** (string) - Confirmation message. #### Response Example ```json { "message": "All recordings for the meeting deleted successfully." } ``` ## DELETE /meetings/{meetingId}/recordings/{recordingId} ### Description Deletes a specific cloud recording file for a meeting. ### Method DELETE ### Endpoint /meetings/{meetingId}/recordings/{recordingId} ### Parameters #### Path Parameters - **meetingId** (string) - Required - The ID of the meeting. - **recordingId** (string) - Required - The ID of the recording file to delete. ### Response #### Success Response (200) - **message** (string) - Confirmation message. #### Response Example ```json { "message": "Recording file deleted successfully." } ``` ``` -------------------------------- ### Implement API Error Handling and Token Refresh Source: https://context7.com/prschmid/zoomus/llms.txt Shows how to handle standard HTTP status codes from Zoom API responses and implement a retry mechanism for expired authentication tokens. ```python import json from zoomus import ZoomClient client = ZoomClient('CLIENT_ID', 'CLIENT_SECRET', 'ACCOUNT_ID') response = client.meeting.get(id='invalid_meeting_id') if response.status_code == 200: meeting = json.loads(response.content) print(f"Meeting: {meeting['topic']}") elif response.status_code == 404: error = json.loads(response.content) print(f"Meeting not found: {error.get('message')}") elif response.status_code == 401: print("Authentication failed - refreshing token") client.refresh_token() elif response.status_code == 429: print("Rate limit exceeded - implement backoff") else: print(f"Error {response.status_code}: {response.content}") def make_api_call_with_retry(client, func, **kwargs): response = func(**kwargs) if response.status_code == 401: client.refresh_token() response = func(**kwargs) return response response = make_api_call_with_retry(client, client.user.list) ``` -------------------------------- ### Zoom Phone Methods (Python) Source: https://github.com/prschmid/zoomus/blob/develop/docs/source/index.md Details the zoomus client methods for interacting with Zoom Phone functionalities, such as accessing call logs and managing phone numbers. ```python client.phone.call_logs(...) client.phone.calling_plans(...) client.phone.numbers_get(...) client.phone.numbers_list(...) client.phone.users(...) ``` -------------------------------- ### POST /users/{userId}/meetings Source: https://context7.com/prschmid/zoomus/llms.txt Schedule a new meeting for a specific user. ```APIDOC ## POST /users/{userId}/meetings ### Description Create a scheduled meeting for the specified user. ### Method POST ### Endpoint /users/{userId}/meetings ### Parameters #### Path Parameters - **userId** (string) - Required - The ID of the user #### Request Body - **topic** (string) - Required - Meeting title - **type** (integer) - Required - Meeting type (e.g., 2 for scheduled) - **start_time** (string) - Required - ISO 8601 format start time - **duration** (integer) - Required - Duration in minutes ### Response #### Success Response (201) - **id** (string) - Meeting ID - **join_url** (string) - URL for participants to join #### Response Example { "id": "meeting_123", "join_url": "https://zoom.us/j/123" } ``` -------------------------------- ### Manage Zoom Groups via zoomus client Source: https://github.com/prschmid/zoomus/blob/develop/docs/source/index.md Provides a list of methods available on the client.group object to interact with the Zoom Groups API. These methods allow for listing, creating, retrieving, deleting, and managing members of Zoom groups. ```python client.group.list(...) client.group.create(...) client.group.get(...) client.group.delete(...) client.group.list_members(...) client.group.add_members(...) client.group.delete_member(...) ``` -------------------------------- ### User Management API Source: https://github.com/prschmid/zoomus/blob/develop/README.md Endpoints for managing Zoom users, including creation, retrieval, updates, and email verification. ```APIDOC ## POST /user/create ### Description Creates a new user in the Zoom account. ### Method POST ### Endpoint client.user.create(...) ### Parameters #### Request Body - **user_info** (object) - Required - User details including email, first name, and last name. ### Request Example { "action": "create", "user_info": { "email": "user@example.com", "type": 1, "first_name": "John", "last_name": "Doe" } } ### Response #### Success Response (201) - **id** (string) - The unique identifier of the created user. ``` -------------------------------- ### Meeting Management API Source: https://github.com/prschmid/zoomus/blob/develop/README.md Endpoints for scheduling, updating, listing, and ending Zoom meetings. ```APIDOC ## POST /meeting/create ### Description Schedules a new meeting for a user. ### Method POST ### Endpoint client.meeting.create(...) ### Parameters #### Request Body - **topic** (string) - Required - Meeting title. - **type** (integer) - Required - Meeting type (e.g., 2 for scheduled). ### Request Example { "topic": "Team Sync", "type": 2, "start_time": "2023-10-27T10:00:00Z" } ### Response #### Success Response (201) - **id** (long) - The unique meeting ID. ```