POST /users/{userId}/meetings

Create a meeting for a user.
This API has a daily rate limit of 100 requests per day. Therefore, only 100 Create a Meeting API requests are permitted within a 24 hour window for a user.

The start_url of a meeting is a URL using which a host or an alternative host can start a meeting. The expiration time for the start_url field is two hours for all regular users.

For custCreate meeting hosts( i.e., users created using the custCreate option via the Create Users API), the expiration time of the start_url field is 90 days from the generation of the start_url.

For security reasons, the recommended way to retrieve the updated value for the start_url field programmatically (after expiry) is by calling the Retrieve a Meeting API and referring to the value of the start_url field in the response.



Scopes: meeting:write:admin meeting:write

Rate Limit Label: Medium

Servers

Path parameters

Name Type Required Description
userId String Yes

The user ID or email address of the user. For user-level apps, pass me as the value for userId.

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Request body fields

Name Type Required Description
agenda String No

Meeting description.

timezone String No

Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our time zone list for supported time zones and their formats.

topic String No

Meeting topic.

tracking_fields[] Array No

Tracking fields

tracking_fields[].field String Yes

Label of the tracking field.

tracking_fields[].value String No

Tracking fields value

start_time String No

Meeting start time. We support two formats for start_time - local time and GMT.

To set time as GMT the format should be yyyy-MM-ddTHH:mm:ssZ. Example: "2020-03-31T12:02:00Z"

To set time using a specific timezone, use yyyy-MM-ddTHH:mm:ss format and specify the timezone ID in the timezone field OR leave it blank and the timezone set on your Zoom account will be used. You can also set the time as UTC as the timezone field.

The start_time should only be used for scheduled and / or recurring webinars with fixed time.

recurrence Object No

Recurrence object. Use this object only for a meeting with type 8 i.e., a recurring meeting with fixed time.

recurrence.weekly_days String No

This field is required if you're scheduling a recurring meeting of type 2 to state which day(s) of the week the meeting should repeat.

The value for this field could be a number between 1 to 7 in string format. For instance, if the meeting should recur on Sunday, provide "1" as the value of this field.

Note: If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide "1,3" as the value of this field.


1 - Sunday.
2 - Monday.
3 - Tuesday.
4 - Wednesday.
5 - Thursday.
6 - Friday.
7 - Saturday.

Valid values:

  • "4"
  • "3"
  • "2"
  • "1"
  • "7"
  • "6"
  • "5"

Default value: "1"

recurrence.end_date_time String No

Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)

recurrence.end_times Integer No

Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)

Default value: 1

recurrence.type Integer Yes

Recurrence meeting types:
1 - Daily.
2 - Weekly.
3 - Monthly.

Valid values:

  • 1
  • 2
  • 3
recurrence.repeat_interval Integer No

Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as 2 and the value of the type parameter as 3.

For a daily meeting, the maximum interval you can set is 90 days. For a weekly meeting the maximum interval that you can set is of 12 weeks. For a monthly meeting, there is a maximum of 3 months.

recurrence.monthly_day Integer No

Use this field only if you're scheduling a recurring meeting of type 3 to state which day in a month, the meeting should recur. The value range is from 1 to 31.

For instance, if you would like the meeting to recur on 23rd of each month, provide 23 as the value of this field and 1 as the value of the repeat_interval field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the repeat_interval field to 3.

Default value: 1

recurrence.monthly_week Integer No

Use this field only if you're scheduling a recurring meeting of type 3 to state the week of the month when the meeting should recur. If you use this field, you must also use the monthly_week_day field to state the day of the week when the meeting should recur.
-1 - Last week of the month.
1 - First week of the month.
2 - Second week of the month.
3 - Third week of the month.
4 - Fourth week of the month.

Valid values:

  • 1
  • 2
  • 3
  • -1
  • 4
recurrence.monthly_week_day Integer No

Use this field only if you're scheduling a recurring meeting of type 3 to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the monthly_week field.


1 - Sunday.
2 - Monday.
3 - Tuesday.
4 - Wednesday.
5 - Thursday.
6 - Friday.
7 - Saturday.

Valid values:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
password String No

Passcode to join the meeting. By default, passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ *] and can have a maximum of 10 characters.

Note: If the account owner or the admin has configured minimum passcode requirement settings, the passcode value provided here must meet those requirements.

If the requirements are enabled, you can view those requirements by calling either the Get User Settings API or the Get Account Settings API.

type Integer No

Meeting Type:
1 - Instant meeting.
2 - Scheduled meeting.
3 - Recurring meeting with no fixed time.
8 - Recurring meeting with fixed time.

Valid values:

  • 1
  • 2
  • 3
  • 8

Default value: 2

settings Object No

Meeting settings.

settings.contact_email String No

Contact email for registration

settings.alternative_hosts String No

Alternative host's emails or IDs: multiple values separated by a comma.

settings.approved_or_denied_countries_or_regions Object No

Approve or block users from specific regions/countries from joining this meeting.

settings.approved_or_denied_countries_or_regions.method String No

Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting.

approve: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the approved_list.

deny: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the denied_list

Valid values:

  • "deny"
  • "approve"
settings.approved_or_denied_countries_or_regions.approved_list[] Array No

List of countries/regions from where participants can join this meeting.

settings.approved_or_denied_countries_or_regions.enable Boolean No

true: Setting enabled to either allow users or block users from specific regions to join your meetings.

false: Setting disabled.

settings.approved_or_denied_countries_or_regions.denied_list[] Array No

List of countries/regions from where participants can not join this meeting.

settings.mute_upon_entry Boolean No

Mute participants upon entry.

Default value: false

settings.audio String No

Determine how participants can join the audio portion of the meeting.
both - Both Telephony and VoIP.
telephony - Telephony only.
voip - VoIP only.

Valid values:

  • "both"
  • "voip"
  • "telephony"

Default value: "both"

settings.breakout_room Object No

Setting to pre-assign breakout rooms.

settings.breakout_room.rooms[] Array No

Create room(s).

settings.breakout_room.rooms[].name String No

Name of the breakout room.

settings.breakout_room.rooms[].participants[] Array No

Email addresses of the participants who are to be assigned to the breakout room.

settings.breakout_room.enable Boolean No

Set the value of this field to true if you would like to enable the breakout room pre-assign option.

settings.authentication_option String No

Specify the authentication type for users to join a meeting withmeeting_authentication setting set to true. The value of this field can be retrieved from the id field within authentication_options array in the response of Get User Settings API.

settings.authentication_domains String No

Meeting authentication domains. This option, allows you to specify the rule so that Zoom users, whose email address contains a certain domain, can join the meeting. You can either provide multiple domains, using a comma in between and/or use a wildcard for listing domains.

settings.global_dial_in_countries[] Array No

List of global dial-in countries

settings.host_video Boolean No

Start video when the host joins the meeting.

settings.show_share_button Boolean No

If set to true, the registration page for the meeting will include social share buttons.

Note: This setting is only applied for meetings that have enabled registration.

settings.close_registration Boolean No

Close registration after event date

Default value: false

settings.contact_name String No

Contact name for registration

settings.cn_meeting Boolean No

Host meeting in China.

Default value: false

settings.auto_recording String No

Automatic recording:
local - Record on local.
cloud - Record on cloud.
none - Disabled.

Valid values:

  • "local"
  • "cloud"
  • "none"

Default value: "none"

settings.waiting_room Boolean No

Enable waiting room. Note that if the value of this field is set to true, it will override and disable the join_before_host setting.

settings.additional_data_center_regions[] Array No

Enable additional data center regions for this meeting. Provide the value in the form of array of country code(s) for the countries which are available as data center regions in the account settings but have been opt out of in the user settings. For instance, let's say that in your account settings, the data center regions that have been selected are Europe, Honkong, Australia, India, Latin America, Japan, China, United States,and Canada. The complete list of available data center regions for your account is: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]. In user settings, you have opted out of India(IN) and Japan(TY) for meeting and webinar traffic routing. If you would like, you can still include India and Japan as additional data centers for this meeting using this field. To include India and Japan as additional data center regions, you would provide ["IN", "TY"] as the value.

settings.participant_video Boolean No

Start video when participants join the meeting.

settings.registrants_email_notification Boolean No

Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the registrants_confirmation_email field.

settings.encryption_type String No

Choose between enhanced encryption and end-to-end encryption when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be automatically disabled.

The value of this field can be one of the following:
enhanced_encryption: Enhanced encryption. Encryption is stored in the cloud if you enable this option.

e2ee: End-to-end encryption. The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also disables the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.

Valid values:

  • "enhanced_encryption"
  • "e2ee"
settings.watermark Boolean No

Add watermark when viewing a shared screen.

Default value: false

settings.meeting_authentication Boolean No

Only authenticated users can join meeting if the value of this field is set to true.

settings.language_interpretation Object No

Language interpretation settings for meetings.

Note: This feature is only available on certain Webinar add-on, Education, Business and higher plans. If this feature is not enabled on the host's account, this setting will not be applied for the meeting.

settings.language_interpretation.interpreters[] Array No

Information associated with the interpreter.

settings.language_interpretation.interpreters[].email String No

Email address of the interpreter.

settings.language_interpretation.interpreters[].languages String No

Languages for interpretation. The string must contain two country Ids separated by a comma.

For example, if the language is to be interpreted from English to Chinese, the value of this field should be "US,CN".

settings.language_interpretation.enable Boolean No

Indicate whether or not you would like to enable language interpretation for this meeting.

settings.in_meeting Boolean No

Host meeting in India.

Default value: false

settings.allow_multiple_devices Boolean No

If set to true, attendees will be allowed to join a meeting from multiple devices.

Note: This setting is only applied for meetings that have enabled registration.

settings.jbh_time Integer No

If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:

  • 0: Allow participant to join anytime.
  • 5: Allow participant to join 5 minutes before meeting start time.
  • 10: Allow participant to join 10 minutes before meeting start time.

Valid values:

  • 0
  • 5
  • 10
settings.join_before_host Boolean No

Allow participants to join the meeting before the host starts the meeting. This field can only used for scheduled or recurring meetings.

Note: If waiting room is enabled, the join before host setting will be disabled.

Default value: false

settings.alternative_hosts_email_notification Boolean No

Flag to determine whether to send email notifications to alternative hosts, default value is true.

Default value: true

settings.approval_type Integer No

The default value is 2. To enable registration required, set the approval type to 0 or 1. Values include:

0 - Automatically approve.
1 - Manually approve.
2 - No registration required.

Valid values:

  • 0
  • 1
  • 2

Default value: 2

settings.registration_type Integer No

Registration type. Used for recurring meeting with fixed time only.
1 Attendees register once and can attend any of the occurrences.
2 Attendees need to register for each occurrence to attend.
3 Attendees register once and can choose one or more occurrences to attend.

Valid values:

  • 1
  • 2
  • 3

Default value: 1

settings.use_pmi Boolean No

Use Personal Meeting ID instead of an automatically generated meeting ID. It can only be used for scheduled meetings, instant meetings and recurring meetings with no fixed time.

Default value: false

schedule_for String No

If you would like to schedule this meeting for someone else in your account, provide the Zoom user id or email address of the user here.

duration Integer No

Meeting duration (minutes). Used for scheduled meetings only.

template_id String No

Unique identifier of the admin meeting template. To create admin meeting templates, contact the Zoom support team.

Use this field if you would like to schedule the meeting from a admin meeting template. You can retrieve the value of this field by calling the List meeting templates API.

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.