Zoom

Learn how to use Zoom with Composio

Overview

SLUG: ZOOM

Description

Zoom is a video conferencing and online meeting platform featuring breakout rooms, screen sharing, and integrations with various enterprise tools

Authentication Details

client_id
stringRequired
client_secret
stringRequired
full
stringDefaults to https://api.zoom.us/v2Required
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to device:read:admin,meeting:read,meeting:read:admin,meeting:write,meeting:write:admin,meeting_summary:read:admin,recording:read,recording:read:admin,recording:write,recording:write:admin,report:read:admin,webinar:read,webinar:read:admin,webinar:read:list_webinars:admin,webinar:write:registrant
bearer_token
string

Connecting to Zoom

Create an auth config

Use the dashboard to create an auth config for the Zoom toolkit. This allows you to connect multiple Zoom accounts to Composio for agents to use.

1

Select App

Navigate to Zoom.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Zoom Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4zoom_auth_config_id = "ac_YOUR_ZOOM_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Zoom: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, zoom_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Zoom toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["ZOOM"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Create a meeting

Description

Enable zoom meeting creation via user-level apps with "me". "start url" for hosts expires in 2 hours, or 90 days for "custcreate" users. renew via api, capped at 100 requests/day. requires "meeting:write" permission, subject to medium rate limit.

Action Parameters

agenda
string
default_password
boolean
duration
integer
password
string
pre_schedule
boolean
recurrence__end__date__time
string
recurrence__end__times
integerDefaults to 1
recurrence__monthly__day
integerDefaults to 1
recurrence__monthly__week
integer
recurrence__monthly__week__day
integer
recurrence__repeat__interval
integer
recurrence__type
integerDefaults to 2
recurrence__weekly__days
stringDefaults to 1
schedule_for
string
settings__additional__data__center__regions
array
settings__allow__multiple__devices
boolean
settings__alternative__host__update__polls
boolean
settings__alternative__hosts
string
settings__alternative__hosts__email__notification
booleanDefaults to True
settings__approval__type
integerDefaults to 2
settings__approved__or__denied__countries__or__regions__approved__list
array
settings__approved__or__denied__countries__or__regions__denied__list
array
settings__approved__or__denied__countries__or__regions__enable
boolean
settings__approved__or__denied__countries__or__regions__method
string
settings__audio
stringDefaults to both
settings__audio__conference__info
string
settings__authentication__domains
string
settings__authentication__exception
array
settings__authentication__option
string
settings__auto__recording
stringDefaults to none
settings__auto__start__ai__companion__questions
boolean
settings__auto__start__meeting__summary
boolean
settings__breakout__room__enable
boolean
settings__breakout__room__rooms
array
settings__calendar__type
integer
settings__close__registration
boolean
settings__cn__meeting
boolean
settings__contact__email
string
settings__contact__name
string
settings__continuous__meeting__chat__auto__add__invited__external__users
boolean
settings__continuous__meeting__chat__enable
boolean
settings__email__notification
booleanDefaults to True
settings__encryption__type
string
settings__focus__mode
boolean
settings__global__dial__in__countries
array
settings__host__save__video__order
boolean
settings__host__video
boolean
settings__in__meeting
boolean
settings__internal__meeting
boolean
settings__jbh__time
integer
settings__join__before__host
boolean
settings__language__interpretation__enable
boolean
settings__language__interpretation__interpreters
array
settings__meeting__authentication
boolean
settings__meeting__invitees
array
settings__mute__upon__entry
boolean
settings__participant__focused__meeting
boolean
settings__participant__video
boolean
settings__private__meeting
boolean
settings__push__change__to__calendar
boolean
settings__registrants__confirmation__email
boolean
settings__registrants__email__notification
boolean
settings__registration__type
integerDefaults to 1
settings__resources
array
settings__show__share__button
boolean
settings__sign__language__interpretation__enable
boolean
settings__sign__language__interpretation__interpreters
array
settings__use__pmi
boolean
settings__waiting__room
boolean
settings__watermark
boolean
start_time
string
template_id
string
timezone
string
topic
string
tracking_fields
array
type
integerDefaults to 2
userId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get a meeting

Description

The text provides details on api permissions for reading meeting information, categorizing permissions into general and granular scopes, and labels the rate limit as 'light'.

Action Parameters

meetingId
integerRequired
occurrence_id
string
show_previous_occurrences
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get a meeting summary

Description

Meeting summary info requires a pro+ host plan, ai companion enabled, excluding e2ee meetings. scopes include meeting summary:read and admin versions. rate limit: light.

Action Parameters

meetingId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get meeting recordings

Description

To download meeting recordings, use `download url`. include oauth token in the header for passcode-protected ones. supports `recording:read` and `phone recording:read:admin` scopes, with a `light` rate limit.

Action Parameters

include_fields
string
meetingId
stringRequired
ttl
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List all recordings

Description

This text details how to list zoom cloud recordings for a user, notably by using "me" for user-level apps and requiring an oauth token for access. it requires a pro plan, cloud recording enabled, and has a medium rate limit.

Action Parameters

from
string
mc
stringDefaults to false
meeting_id
integer
next_page_token
string
page_size
integerDefaults to 30
to
string
trash
boolean
trash_type
stringDefaults to meeting_recordings
userId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List meetings

Description

This zoom api lists a user's scheduled meetings using the `me` value for user-level apps, excluding instant meetings and only showing unexpired ones. it requires specific scopes and has a `medium` rate limit.

Action Parameters

from
string
next_page_token
string
page_number
integer
page_size
integerDefaults to 30
timezone
string
to
string
type
stringDefaults to scheduled
userId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Add a meeting registrant

Description

This text guides on creating and customizing a user's registration for a zoom meeting, with a max of 4,999 registrants. preconditions include the host being licensed. api scopes and a light rate limit apply.

Action Parameters

address
string
auto_approve
boolean
city
string
comments
string
country
string
custom_questions
array
email
stringRequired
first_name
stringRequired
industry
string
job_title
string
language
string
last_name
string
meetingId
integerRequired
no_of_employees
string
occurrence_ids
string
org
string
phone
string
purchasing_time_frame
string
role_in_purchase_process
string
state
string
zip
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Add a webinar registrant

Description

Zoom users with a webinar plan can create and manage webinars, broadcasting to up to 10,000 attendees. registration requires a pro plan, specific permissions, and is governed by a "light" rate limit.

Action Parameters

address
string
city
string
comments
string
country
string
custom_questions
array
email
stringRequired
first_name
stringRequired
industry
string
job_title
string
language
string
last_name
string
no_of_employees
string
occurrence_ids
string
org
string
phone
string
purchasing_time_frame
string
role_in_purchase_process
string
source_id
string
state
string
webinarId
integerRequired
zip
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete meeting recordings

Description

Summary: to delete all meeting recordings, ensure the user's account has cloud recording enabled. required permissions include `recording:write:admin` and `recording:write` with a `light` rate limit label.

Action Parameters

action
stringDefaults to trash
meetingId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get a webinar

Description

Access zoom webinar details requires pro or higher plan and webinar add-on. scopes include `webinar:read:admin` and `webinar:read`. granular scopes and a 'light' rate limit also apply.

Action Parameters

occurrence_id
string
show_previous_occurrences
boolean
webinarId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get daily usage report

Description

The daily report provides zoom service usage details, like new users, meetings, participants, and minutes per day for a month, requiring a pro plan or higher. it has a 'heavy' rate limit.

Action Parameters

group_id
string
month
integer
year
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get past meeting participants

Description

Api allows paid users (pro+) to fetch past meeting attendee info, excluding solo participants. requires double encoding for certain uuids, with `meeting:read` scope and others. rate limit is medium.

Action Parameters

meetingId
stringRequired
next_page_token
string
page_size
integerDefaults to 30

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List archived files

Description

Zoom's archiving solution enables administrators to automatically record and archive meeting data to third-party platforms for compliance, needing the meeting and webinar archiving feature enabled.

Action Parameters

from
string
group_id
string
next_page_token
string
page_size
integerDefaults to 30
query_date_type
stringDefaults to meeting_start_time
to
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List devices

Description

This api lets you list devices. **scopes:** `device:read:admin`,`device:write:admin` **[rate limit label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `heavy`

Action Parameters

device_model
string
device_status
integerDefaults to -1
device_type
integerDefaults to -1
device_vendor
string
is_enrolled_in_zdm
booleanDefaults to True
next_page_token
string
page_size
integerDefaults to 30
platform_os
string
search_text
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List webinars

Description

The api lists all scheduled webinars for zoom users with a webinar plan, using `me` for user-level apps. it only shows unexpired webinars for hosts broadcasting to up to 10,000 attendees. requires pro plan upwards and specific scopes. rate limit: medium.

Action Parameters

page_number
integerDefaults to 1
page_size
integerDefaults to 30
type
stringDefaults to scheduled
userId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List webinar participants

Description

Get a list of past webinar participants with a pro plan or above plus an add-on. requires specific scopes and has a medium rate limit.

Action Parameters

next_page_token
string
page_size
integerDefaults to 30
webinarId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update a meeting

Description

To update a meeting via api, ensure `start time` is future-dated; `recurrence` is needed. limit: 100 requests/day, 100 updates/meeting in 24 hrs. requires `meeting:write` and `meeting:write:admin` scopes, with a `light` rate limit.

Action Parameters

agenda
string
duration
integer
meetingId
integerRequired
occurrence_id
string
password
string
pre_schedule
boolean
recurrence__end__date__time
string
recurrence__end__times
integerDefaults to 1
recurrence__monthly__day
integerDefaults to 1
recurrence__monthly__week
integer
recurrence__monthly__week__day
integer
recurrence__repeat__interval
integer
recurrence__type
integer
recurrence__weekly__days
stringDefaults to 1
schedule_for
string
settings__allow__multiple__devices
boolean
settings__alternative__host__update__polls
boolean
settings__alternative__hosts
string
settings__alternative__hosts__email__notification
booleanDefaults to True
settings__approval__type
integerDefaults to 2
settings__approved__or__denied__countries__or__regions__approved__list
array
settings__approved__or__denied__countries__or__regions__denied__list
array
settings__approved__or__denied__countries__or__regions__enable
boolean
settings__approved__or__denied__countries__or__regions__method
string
settings__audio
stringDefaults to both
settings__audio__conference__info
string
settings__authentication__domains
string
settings__authentication__exception
array
settings__authentication__name
string
settings__authentication__option
string
settings__auto__recording
stringDefaults to none
settings__auto__start__ai__companion__questions
boolean
settings__auto__start__meeting__summary
boolean
settings__breakout__room__enable
boolean
settings__breakout__room__rooms
array
settings__calendar__type
integer
settings__close__registration
boolean
settings__cn__meeting
boolean
settings__contact__email
string
settings__contact__name
string
settings__continuous__meeting__chat__auto__add__invited__external__users
boolean
settings__continuous__meeting__chat__enable
boolean
settings__custom__keys
array
settings__email__notification
booleanDefaults to True
settings__encryption__type
string
settings__enforce__login
boolean
settings__enforce__login__domains
string
settings__focus__mode
boolean
settings__global__dial__in__countries
array
settings__global__dial__in__numbers
array
settings__host__save__video__order
boolean
settings__host__video
boolean
settings__in__meeting
boolean
settings__internal__meeting
boolean
settings__jbh__time
integer
settings__join__before__host
boolean
settings__language__interpretation__enable
boolean
settings__language__interpretation__interpreters
array
settings__meeting__authentication
boolean
settings__meeting__invitees
array
settings__mute__upon__entry
boolean
settings__participant__focused__meeting
boolean
settings__participant__video
boolean
settings__private__meeting
boolean
settings__registrants__confirmation__email
boolean
settings__registrants__email__notification
boolean
settings__registration__type
integerDefaults to 1
settings__resources
array
settings__show__share__button
boolean
settings__sign__language__interpretation__enable
boolean
settings__sign__language__interpretation__interpreters
array
settings__use__pmi
boolean
settings__waiting__room
boolean
settings__watermark
boolean
start_time
string
template_id
string
timezone
string
topic
string
tracking_fields
array
type
integerDefaults to 2

Action Response

data
objectRequired
error
string
successful
booleanRequired