# Create a meeting - join before host

**URL:** <https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504>\
**Category:** API and Webhooks\
**Created:** [July 18, 2020, 4:23pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504 "2020-07-18T16:23:46Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![econsulo](https://avatars.discourse-cdn.com/v4/letter/e/e5b9ba/32.png) [@econsulo](https://devforum.zoom.us/u/econsulo)\
**Post date:** [July 18, 2020, 4:23pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/1 "2020-07-18T16:23:46Z")

</div>

When creating a meeting I have the option of “join\_before\_host”, the problem is that when I set it to true, it doesn’t work, it still ask for the host.

This is the API I’m using:

> **[Create a Meeting - Meetings - Zoom API - API Reference](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate)**
>
> 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 wi...

This is the json I’m sending:

{  
“topic”: “Test”,  
“type”: “2”,  
“start\_time”: “2020-07-18T19:30:00”,  
“duration”: “60”,  
“timezone”: “America/Mexico\_City”,  
“password”: “pass123”,  
“agenda”: “Test”,  
“settings”: {  
“host\_video”: “false”,  
“participant\_video”: “true”,  
“cn\_meeting”: “false”,  
“in\_meeting”: “false”,  
“join\_before\_host”: “true”,  
“mute\_upon\_entry”: “true”,  
“watermark”: “false”,  
“use\_pmi”: “false”,  
“approval\_type”: “0”,  
“registration\_type”: “1”,  
“enforce\_login”: “false”,  
“registrants\_email\_notification”: “true”  
}  
}

It doesn’t throw any error, zoom links work, the thing is what I said, it wont work if host don’t get into the call, even when I set ‘true’ the join\_before\_host.

What I’m doing wrong? thanks.

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [July 20, 2020, 7:40pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/2 "2020-07-20T19:40:48Z")

</div>

Hey @econsulo,

Please try the following request body JSON:

```json
{
  "topic": "Test",
  "type": "2",
  "start_time": "2020-07-18T19:30:00",
  "duration": "60",
  "timezone": "America/Mexico_City",
  "password": "pass123",
  "agenda": "Test",
  "settings": {
    "join_before_host": true
  }
}

```

Also, double check the join before host settings are not set to off and locked at the [account level](https://zoom.us/account/setting).

 ![Screen Shot 2020-07-20 at 1.40.30 PM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/f/f90fa8c5bb9196db943cde77bd003897a96ea6a7.png)

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![econsulo](https://avatars.discourse-cdn.com/v4/letter/e/e5b9ba/32.png) [@econsulo](https://devforum.zoom.us/u/econsulo)\
**Post date:** [July 20, 2020, 8:26pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/3 "2020-07-20T20:26:47Z")

</div>

I updated this settings as you suggested:

 ![Capture2](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/e/e621ffb28b567af285d551716b0e45bc86469e09.png)

And I even disabled the waiting room setting.

Then I created the meeting as follow:

```
{
  "topic": "Test 2",
  "type": "2",
  "start_time": "2020-07-20T15:15:00",
  "duration": "60",
  "timezone": "America/Mexico_City",
  "password": "pass123",
  "agenda": "Test 2",
  "settings": {
    "join_before_host": true
  }
}

```

And this was the result:

```
{
  "agenda": "Test 2",
  "created_at": "2020-07-20T20:13:59Z",
  "duration": 60,
  "encrypted_password": "d3ZoNXhpaEZuQno0MDg5T0I2UHVXUT09",
  "h323_password": "5466647",
  "host_id": "kSsTuaGTSASN9JJC87v8LA",
  "id": {id},
  "join_url": "{url}",
  "password": "pass123",
  "pstn_password": "5466647",
  "settings": {
    "alternative_hosts": "",
    "approval_type": 2,
    "audio": "both",
    "auto_recording": "none",
    "close_registration": false,
    "cn_meeting": false,
    "enforce_login": false,
    "enforce_login_domains": "",
    "global_dial_in_countries": [
      "US"
    ],
    "global_dial_in_numbers": [
      {
        "country": "US",
        "country_name": "US",
        "number": "+1 3017158592",
        "type": "toll"
      },
      {
        "country": "US",
        "country_name": "US",
        "number": "+1 3126266799",
        "type": "toll"
      },
      {
        "country": "US",
        "country_name": "US",
        "number": "+1 6465588656",
        "type": "toll"
      },
      {
        "country": "US",
        "country_name": "US",
        "number": "+1 2532158782",
        "type": "toll"
      },
      {
        "country": "US",
        "country_name": "US",
        "number": "+1 3462487799",
        "type": "toll"
      },
      {
        "country": "US",
        "country_name": "US",
        "number": "+1 6699009128",
        "type": "toll"
      }
    ],
    "host_video": false,
    "in_meeting": false,
    "join_before_host": true,
    "meeting_authentication": false,
    "mute_upon_entry": false,
    "participant_video": false,
    "registrants_confirmation_email": true,
    "registrants_email_notification": true,
    "request_permission_to_unmute_participants": false,
    "use_pmi": false,
    "waiting_room": true,
    "watermark": false
  },
  "start_time": "2020-07-20T20:15:00Z",
  "start_url": "{url}",
  "status": "waiting",
  "timezone": "America/Mexico_City",
  "topic": "Test 2",
  "type": 2,
  "uuid": "{uuid}"
}

```

Using the join URL, still ask me to wait for the host to start the call, Am I still missing something?

Thanks

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [July 22, 2020, 10:48pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/4 "2020-07-22T22:48:27Z")

</div>

Hey @econsulo,

It looks like you were successfully able to set the join before host to `true`, however, it looks like the waiting room option is still turned on. Please try disabling the waiting room in your account settings as well.

Let me know if that fixes it. 🙂

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![ashutosh2](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ashutosh2/32/17022_2.png) [@ashutosh2](https://devforum.zoom.us/u/ashutosh2)\
**Post date:** [December 15, 2020, 3:16am UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/5 "2020-12-15T03:16:39Z")

</div>

Thanks tommy for the information. I am facing the same issue. However, even after disabling waiting room option, the issue has not been solved. Like, the discussion above i have already kept “join\_before\_host” to false in api setting and in zoom account setting.

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [December 15, 2020, 8:54pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/6 "2020-12-15T20:54:46Z")

</div>

Hey @ashutosh2,

Thank you for reaching out to the Zoom Developer Forum. Just to make sure that I’m understanding your issue correctly, it sounds like you’re not able to Join Before Host even though you enabled this in the API call. Are you able to provide the request body as well as the response that you’re getting?

Thanks,  
Max

---

<div class="post-metadata">

**Author:** ![darren](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/darren/32/3265_2.png) [@darren](https://devforum.zoom.us/u/darren)\
**Post date:** [December 16, 2020, 6:51pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/7 "2020-12-16T18:51:04Z")

</div>

We’re also seeing this with our integration. It seems to have just started in the last month.

---

<div class="post-metadata">

**Author:** ![darren](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/darren/32/3265_2.png) [@darren](https://devforum.zoom.us/u/darren)\
**Post date:** [December 16, 2020, 8:57pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/8 "2020-12-16T20:57:51Z")

</div>

Here’s an example:

Request body:  
{  
“topic”:“Bobby Meeting (Customer Care Representative Clone)”,  
“type”:2,  
“start\_time”:“2020-12-16T15:45:00-05:00”,  
“duration”:15,  
“agenda”:"",  
“settings”:{  
“host\_video”:true,  
“participant\_video”:true,  
“audio”:“both”,  
“audio\_recording”:“cloud”,  
“approval\_type”:2,  
“join\_before\_host”:true,  
“enforce\_login”:false,  
“waiting\_room”:false  
}  
}

This results in a meeting that looks like this:

```
{
   "uuid":"<REDACTED>",
   "id":95372028137,
   "host_id":"<REDACTED>",
   "host_email":"samiur@breezyhr.com",
   "topic":"Bobby Meeting (Customer Care Representative Clone)",
   "type":2,
   "status":"waiting",
   "start_time":"2020-12-16T20:45:00Z",
   "duration":15,
   "timezone":"America/New_York",
   "created_at":"2020-12-16T20:38:38Z",
   "start_url":"<REDACTED>",
   "settings":{
      "host_video":true,
      "participant_video":true,
      "cn_meeting":false,
      "in_meeting":false,
      "join_before_host":true,
      "mute_upon_entry":false,
      "watermark":false,
      "use_pmi":false,
      "approval_type":2,
      "audio":"both",
      "auto_recording":"none",
      "enforce_login":false,
      "enforce_login_domains":"",
      "alternative_hosts":"",
      "close_registration":false,
      "show_share_button":false,
      "allow_multiple_devices":false,
      "registrants_confirmation_email":true,
      "waiting_room":true,
      "request_permission_to_unmute_participants":false,
      "global_dial_in_countries":[
         "US"
      ],
      "global_dial_in_numbers":[
         {
            "country_name":"US",
            "number":"+1 3126266799",
            "type":"toll",
            "country":"US"
         },
         {
            "country_name":"US",
            "number":"+1 6465588656",
            "type":"toll",
            "country":"US"
         },
         {
            "country_name":"US",
            "number":"+1 3017158592",
            "type":"toll",
            "country":"US"
         },
         {
            "country_name":"US",
            "number":"+1 3462487799",
            "type":"toll",
            "country":"US"
         },
         {
            "country_name":"US",
            "number":"+1 6699006833",
            "type":"toll",
            "country":"US"
         },
         {
            "country_name":"US",
            "number":"+1 2532158782",
            "type":"toll",
            "country":"US"
         }
      ],
      "registrants_email_notification":true,
      "meeting_authentication":false,
      "encryption_type":"enhanced_encryption",
      "approved_or_denied_countries_or_regions":{
         "enable":false
      }
   }
}
```

---

<div class="post-metadata">

**Author:** ![darren](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/darren/32/3265_2.png) [@darren](https://devforum.zoom.us/u/darren)\
**Post date:** [December 16, 2020, 9:06pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/9 "2020-12-16T21:06:23Z")

</div>

This same user (and related auth token) is able to schedule in Zoom directly without any requirement for the host to join first.

Screenshot: [https://share.bzy.hr/E0u4odKe](https://share.bzy.hr/E0u4odKe)

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [December 17, 2020, 4:45pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/10 "2020-12-17T16:45:20Z")

</div>

Hey @darren,

Thanks for sharing these details—I believe I can see why this is occurring.

In your request, you’re setting waiting\_room false, but it’s automatically being set to true because there’s no password being passed for the meeting. Since Zoom now requires that either a password is passed or a waiting room is enabled for all meetings (see [this announcement](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#passcode-and-wr-changes)), if a password isn’t passed, the waiting room will be turned on by default for the meeting when it’s created.

If a waiting room is turned on, this will override the join\_before\_host option.

If you provide a passcode in your request, set waiting room: false, and set join\_before\_host: true, I believe this should work as intended.

Let me know if this helps!  
Will

---

<div class="post-metadata">

**Author:** ![darren](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/darren/32/3265_2.png) [@darren](https://devforum.zoom.us/u/darren)\
**Post date:** [December 17, 2020, 5:30pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/11 "2020-12-17T17:30:04Z")

</div>

Thanks! Will report back.

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [December 17, 2020, 6:58pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/12 "2020-12-17T18:58:59Z")

</div>

Thanks, @darren! Keep me posted. 🙂

---

<div class="post-metadata">

**Author:** ![shaihulud](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/shaihulud/32/21048_2.png) [@shaihulud](https://devforum.zoom.us/u/shaihulud)\
**Post date:** [January 6, 2021, 3:00pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/13 "2021-01-06T15:00:34Z")

</div>

I found that when attempting to use the “join\_before\_host” param, it was only observed when using a “type 2” scheduled meeting with a start time. In this case, the user settings for waiting\_room and join\_before\_host are overridden by the corresponding parameters.

When using a “type 1” instant meeting the value of the parameter is not observed.

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [January 6, 2021, 10:38pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/14 "2021-01-06T22:38:05Z")

</div>

Hi @shaihulud,

Thanks for reaching out! Do you still have any questions about this or did my post above help? Note that you will need to use meeting type 2 to enable join before host. Instant meetings (type 1) don’t support waiting rooms.

Thanks,  
Will

---

<div class="post-metadata">

**Author:** ![mohamedrafiudeen](https://avatars.discourse-cdn.com/v4/letter/m/8797f3/32.png) [@mohamedrafiudeen](https://devforum.zoom.us/u/mohamedrafiudeen)\
**Post date:** [March 18, 2024, 2:00pm UTC](https://devforum.zoom.us/t/create-a-meeting-join-before-host/24504/15 "2024-03-18T14:00:07Z")

</div>

Hi @will.zoom

I am facing the same issue from the 1st week of march 2024. It is saying that waiting for the host to join.

Here is the parameter I am using to create meeting

```auto
{
  duration: 40,
  type: 2,
  password: '123456',
  settings: {
    waiting_room: false,
    join_before_host: true,
    use_pmi: false,
    meeting_authentication: false
  }
}

```

When I check the meeting setting in zoom portal, it is totally opposite to my above parameters. Refer the screenshot below

 ![image](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/7/7/770ce8a2d46890833256acf47036f835ffbad0fc.png)

Can anyone guide me on what I am missing here?
