# Start or join a meeting

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

## 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,
});
```
