# Query parameters

Source: https://www.veeting.com/en/developer-documentation/query-parameters

## Overview

Query parameters configure a meeting room directly from its URL. They let you control an embedded meeting room without writing any code, which is especially useful when you place the room in an iFrame in your own application.

Append them to a meeting URL:

```text
https://<DOMAIN-NAME>/meeting/<MEETING-ID>?participantName=Test%20User&meetingPassword=1234
```

**Values must be URL-encoded.** Otherwise, a name containing a space, an email address, or anything with `&` or `=` in it breaks the rest of the URL.

Boolean parameters take the literal strings `true` and `false`.

## Using this page with an AI assistant

If you are using an AI coding assistant, copy the text below into it and add a sentence describing what you want to build. AI assistants accessing this page receive a separate, token-optimized version of our full developer documentation, specifically tailored by our engineers for AI coding assistants.

```text
Before writing any code, read this page:
https://www.veeting.com/en/developer-documentation/query-parameters

It documents the URL query parameters of a Veeting Rooms meeting room.
Keep these five rules in mind:

1. URL encode every value. Names and email addresses usually contain
   characters that need it.
2. Booleans are the literal strings "true" and "false". Not 1 or yes.
3. Parameter names are identifiers. Never translate them, whatever
   language the surrounding page is in.
4. The platform strips tokens and personal data out of the URL, so do
   not read them back from window.location later. Keep them in the
   application instead.
5. Only use parameters that appear on that page. Do not invent one and
   do not use one you found by reading our JavaScript bundle.

What I want to build:
```

## Two things to know before you start

**The platform removes some parameters from the URL.** Anything that carries a token or personal data is stripped, either immediately or before the browser navigates. That is deliberate: those values then do not persist in browser history, in a bookmark, or in a `Referer` header. The lists are at the end of this page, and they matter if you expect to read a parameter back out of the address bar later.

**Not every parameter the platform accepts is listed here.** The others are internal, serve support tooling, or carry meeting access tokens that we do not describe publicly. If you need one that is not documented, ask us rather than relying on one you found by reading the bundle: an undocumented parameter carries no compatibility promise.

## Participant details

These parameters pre-fill the "Join Meeting" screen so the participant does not have to type the values.

| Parameter        | Possible values         | Default                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ---------------- | ----------------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| culture          | Language or locale code | the browser's language | The interface language. Use either a bare language code, such as `de`, or a locale, such as `de-CH` or `es-LA`. A bare code resolves to your instance's regional variant, so `de` becomes `de-CH`. The setting applies only if your instance offers that language. If it does not, the room uses the participant's browser language; if the instance offers none of those languages, it uses its own default language. Supplying `culture` also overrides a language the participant chose on an earlier visit. |
| participantName  | Any string              | empty                  | The participant's name. Required if `skipJoinMeetingScreen` is `true`.                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| participantEmail | Any email address       | empty                  | The participant's email address.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| meetingPassword  | Any string              | empty                  | The meeting password.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| registerEmail    | Any email address       | empty                  | Only relevant if "Free Trial Registration" is enabled. Pre-fills the email field of the trial registration form.                                                                                                                                                                                                                                                                                                                                                                                                |
| registerFrom     | Any string              | empty                  | Only relevant if "Free Trial Registration" is enabled. Adds a "from" field to the notification sent to the system administrator, which helps you track the source.                                                                                                                                                                                                                                                                                                                                              |

## Access and authentication

| Parameter          | Possible values       | Default | Description                                                                                                                     |
| ------------------ | --------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------- |
| moderatorToken     | Valid moderator token | empty   | Gives the participant moderator rights in the meeting.                                                                          |
| jwtToken           | Any JWT token         | empty   | A user's authentication token. Useful when authentication happens in a third-party tool.                                        |
| meetingAccessToken | Valid access token    | empty   | The access token for a specific meeting. Required if an external meeting authorization service is configured.                   |
| meetingAccessHash  | Valid access hash     | empty   | Carries the meeting password so the participant does not have to type it. This is what Veeting puts in the links it emails out. |

> **Note:** These values are credentials. Generate them per participant and keep them out of shared links. See "Parameters the platform removes" below: the platform strips most of them from the URL for exactly that reason.

## The "Join Meeting" screen

| Parameter                     | Possible values | Default | Description                                                                                                                                  |
| ----------------------------- | --------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| skipJoinMeetingScreen         | true, false     | false   | Skips the "Join Meeting" screen entirely. <br/>**IMPORTANT:** You must also supply `participantName`; otherwise the participant has no name. |
| skipDeviceTestOnJoin          | true, false     | false   | Sets the default value of the "Device Test" option. The participant can still change it.                                                     |
| hideDeviceTestSection         | true, false     | false   | Hides the "Device Test" section. Hiding the section does not change what the option would have done.                                         |
| hideJoinModeSection           | true, false     | false   | Hides the "Join Mode" section. Combine it with `joinType` to choose the mode for the participant.                                            |
| hideConsentSection            | true, false     | false   | Hides the consent checkbox. <br/>**IMPORTANT:** You remain responsible for obtaining consent by other means.                                 |
| hideLegalAndComplianceSection | true, false     | false   | Hides the legal and compliance section, which contains the imprint and privacy links.                                                        |
| disableNameInput              | true, false     | false   | Disables the participant **name** input field.                                                                                               |
| disableEmailInput             | true, false     | false   | Disables the participant **email** input field.                                                                                              |
| disablePasswordInput          | true, false     | false   | Disables the meeting password input field.                                                                                                   |

## Layout and media

| Parameter               | Possible values                                                          | Default         | Description                                                                                                              |
| ----------------------- | ------------------------------------------------------------------------ | --------------- | ------------------------------------------------------------------------------------------------------------------------ |
| meetingRoomLayout       | standard, video-only, collaboration-only                                 | standard        | Controls whether video, the collaboration tools, or both are shown.                                                      |
| joinType                | audio-only, audio-video, video-only, no-media                            | audio-video     | Pre-selects the join mode. Useful together with `hideJoinModeSection`.                                                   |
| mediaDirection          | receiveonly, sendonly                                                    | empty           | Restricts the direction media flows. Omit it to both send and receive, which is the default. Any other value is ignored. |
| cameraDirection         | user, environment                                                        | empty           | The default camera on mobile phones. `user` selects the front-facing camera, `environment` the rear one.                 |
| videoResolution         | 1280x960, 1280x720, 960x720, 960x540, 640x480, 640x360, 320x240, 320x180 | account default | The outgoing video resolution.                                                                                           |
| disableIncomingVideo    | true, false                                                              | false           | Joins without receiving video from other participants. Useful on constrained connections.                                |
| hideCollaborationHeader | true, false                                                              | false           | Hides the header above the collaboration area, giving an embedded room more usable height.                               |
| enableDarkMode          | true, false                                                              | false           | Renders the meeting room in dark mode.                                                                                   |

## Devices

| Parameter           | Possible values | Default | Description                                    |
| ------------------- | --------------- | ------- | ---------------------------------------------- |
| videoInputDeviceId  | string          | empty   | The camera device ID to use, if available.     |
| audioInputDeviceId  | string          | empty   | The microphone device ID to use, if available. |
| audioOutputDeviceId | string          | empty   | The speaker device ID to use, if available.    |

## In the meeting

| Parameter      | Possible values | Default | Description                                                                                        |
| -------------- | --------------- | ------- | -------------------------------------------------------------------------------------------------- |
| enableFollowMe | true, false     | false   | Enables the "Follow Me" feature. It works only if the participant is the organizer or a moderator. |
| leaveUrl       | Any URL         | empty   | Overrides where the "Leave Meeting" button sends the participant.                                  |

## Embedding, testing, and support

| Parameter                 | Possible values | Default | Description                                                                                                                                                                |
| ------------------------- | --------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| localStoragePrefix        | Any string      | empty   | Prefixes the keys Veeting writes to `localStorage`. Set it if you embed more than one Veeting application on the same origin, so that their stored state does not collide. |
| testWithoutRenderingMedia | true, false     | false   | For testing only: sends and receives streams without rendering audio and video.                                                                                            |
| enableDebugLogs           | true, false     | false   | Turns on verbose logging in the browser console. Useful when we are helping you diagnose something.                                                                        |

## Parameters the platform removes

The platform takes two sets of parameters out of the URL. Neither is a bug, but both will surprise you if you expect to read a value back from `window.location` later.

**Removed immediately, always.** These never remain in the address bar:

```text
meetingAccessToken
meetingAccessRequestToken
meetingChallengeCode
```

**Removed before the browser navigates.** The platform reads these first and then clears them, so they do not end up in history, in a bookmark, or in a `Referer` header sent to a third party:

```text
skipJoinMeetingScreen   jwtToken          moderatorToken
invisibleToken          interpreterToken  authenticationSkipToken
participantName         participantUuid   participantEmail
```

If you need a value after joining, keep it in your own application rather than reading it back from the URL.

## Common mistakes

- Forgetting to URL-encode a value. A space in `participantName` is the most common case.
- Setting `skipJoinMeetingScreen=true` without `participantName`, which leaves the participant unnamed.
- Hiding the consent section and assuming consent has been handled.
- Expecting `moderatorToken` or `participantName` to still be in the URL after the meeting room has loaded.
- Sending `1` or `yes` for a boolean. Only `true` and `false` are recognized.
- Translating a parameter name. Parameter names are identifiers and are always in English.
- Using an undocumented parameter found by reading the bundle. Undocumented parameters carry no compatibility promise.

---

## The rest of this documentation

- [Custom tools](https://www.veeting.com/en/developer-documentation/custom-tools)
- [External meeting authorization service](https://www.veeting.com/en/developer-documentation/external-meeting-authorization-service)
- [iFrame and Web Components](https://www.veeting.com/en/developer-documentation/iframe-and-web-components)
- [JavaScript APIs](https://www.veeting.com/en/developer-documentation/javascript-apis)
- [Veeting Blocks - Components](https://www.veeting.com/en/veeting-blocks/components)
- [Veeting Blocks - Introduction](https://www.veeting.com/en/veeting-blocks/introduction)
- [Veeting Blocks - JavaScript and Typescript APIs](https://www.veeting.com/en/veeting-blocks/apis)
- [Veeting Rooms REST APIs](https://www.veeting.com/en/developer-documentation/api-usage)
- [Video display calculator](https://www.veeting.com/en/developer-documentation/video-display-calculator)
- [Web hooks](https://www.veeting.com/en/developer-documentation/web-hooks)

All of it in one file: https://www.veeting.com/llms-full.txt
