# Start or join a meeting ## Authenticate a non-logged in or API user To host a scheduled meeting as a non-login user, retrieve these two values from the REST API. - **User ID** - pass your email address or retrieve it from the REST API by sending a GET request to https://api.zoom.us/v2/users. - **Zoom Access Key (ZAK)** - send a GET request to https://api.zoom.us/v2/users/{userId}/token. See [SDK Authentication](/docs/meeting-sdk/auth/) for more details. These steps show you how to retrieve the information from the Zoom API. ### Access the Zoom API See [Using Zoom APIs](/docs/api/using-zoom-apis/) to configure your setup and access the Zoom API. ### Get a ZAK Once you have the access to the Meeting API, send a GET request to the `/users/me/zak` endpoint to get a ZAK. See [Get user's ZAK](/docs/api/users/#tag/users/GET/users/me/zak) and [SDK Authentication](/docs/api/users/#tag/users/GET/users/me/zak) for details. Even if the ZAK does expire, DO NOT pass or expose the ZAK token to others after retrieving it. ## Start a meeting for a non-logged in or API user After getting the [ZAK token](/docs/api/users/#tag/users/GET/users/me/zak), pass it to start meetings with either a meeting number or a vanity ID. ### Start with a meeting number To start a meeting, make this call on the Meeting SDK instance. The parameter meeting number is optional. ```javascript const zoom = useZoom(); await zoom.startMeeting({ userName: DisplayName, meetingNumber: MeetingNumber, zoomAccessToken: ZakToken, }); ``` ## Join a meeting for any user To join a meeting with a meeting number, make this call on the Meeting SDK instance. ```javascript const zoom = useZoom(); await zoom.joinMeeting({ userName: displayName, meetingNumber: meetingNumber, password: meetingPassword, }); ```