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:
https://<DOMAIN-NAME>/meeting/<MEETING-ID>?participantName=Test%20User&meetingPassword=1234URL-encode every value. 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.
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.
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:The platform removes some parameters from the URL. Anything that carries a token or personal data is stripped, plus a few more parameters. Removal happens 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 other 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 our JavaScript bundle: an undocumented parameter carries no compatibility promise.
These parameters pre-fill the "Join Meeting" screen so the participant does not have to type them.
| 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. How the room resolves the code is explained below the table. |
| participantName | Any string | empty | The participant's name. Required if skipJoinMeetingScreen is true: without a name, the join screen is shown anyway. A name stored from an earlier visit in the same browser also counts. |
| 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, so you can see where a registration came from. |
The room resolves culture in this order:
de by default, so de stays de.en -> en-US, de -> de-CH, es -> es-LA.In steps 1 and 3, culture overrides a language the participant chose on an earlier visit in the same browser. In steps 2, 4, and 5, that earlier choice wins.
| Parameter | Possible values | Default | Description |
|---|---|---|---|
| moderatorToken | Valid moderator token | empty | Gives the participant moderator rights in the meeting. |
| invisibleToken | Valid invisible token | empty | The participant joins without appearing in the meeting and receives media without sending any. TV screens and directors use it; see "TV screens and directors" below. |
| jwtToken | Any JWT | empty | A user's authentication token. Use it when your users sign in through a third-party system. |
| meetingAccessHash | Valid access hash | empty | Carries the meeting password so the participant does not have to type it. Veeting puts this hash in the links it emails out. |
The meeting's tokens are fields of the meeting object: read the meeting back through the REST API and take data.moderatorToken, data.invisibleToken, or data.backstageToken from the response.
Note: These values are credentials. Keep them out of links you share with people who should not have them. See "Parameters the platform removes" below: the platform strips
moderatorToken,invisibleToken,backstageToken, andjwtTokenfrom the URL for exactly that reason.meetingAccessHashandmeetingPasswordare not stripped: they stay in the address bar, and so end up in browser history, in bookmarks, and in anyRefererheader.
| Parameter | Possible values | Default | Description |
|---|---|---|---|
| skipJoinMeetingScreen | true, false | false | Skips the "Join Meeting" screen entirely. IMPORTANT: Supply participantName as well. Without a name the screen is not skipped: the participant sees it and enters one. |
| 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, but only when the device test is being skipped (skipDeviceTestOnJoin=true, or the participant's stored setting skips it). Otherwise it has no effect. Hiding it changes only what the participant sees, not what the option does. |
| hideJoinModeSection | true, false | false | Hides the "Join Mode" section. Set joinType as well, so the mode is decided for the participant. |
| hideConsentSection | true, false | false | Hides the consent checkbox. 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. |
| Parameter | Possible values | Default | Description |
|---|---|---|---|
| meetingRoomLayout | standard, video-only, collaboration-only | standard | Controls whether the room shows video, the collaboration tools, or both. |
| 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. Leave it out and the room both sends and receives, 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 selects the rear one. |
| videoResolution | 1280x960, 1280x720, 960x720, 960x540, 640x480, 640x360, 320x240, 320x180 | account default | The outgoing video resolution. |
| disableIncomingVideo | true, false | false | The participant 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. |
| enableTVMode | true, false | false | Runs the room as an unattended TV or wall display. IMPORTANT: TV mode overrides other parameters: it puts media in receive-only mode, so the room receives but never sends, turns off enableFollowMe, ignores moderatorToken and jwtToken, and hides the "Join Mode" and "Device Test" sections. It also applies updates automatically, exactly as autoApplyUpdates does. A TV screen joins with invisibleToken; see "TV screens and directors" below. |
Two kinds of participant join a meeting without being seen: a TV screen that shows the meeting on a wall or a stage, and a director who steers the meeting from the background. Both carry invisibleToken.
A TV screen combines enableTVMode with invisibleToken:
https://<DOMAIN-NAME>/meeting/<MEETING-ID>?enableTVMode=true&invisibleToken=<INVISIBLE-TOKEN>By default, a TV screen shows the meeting room content only once regular participants can see it. To show it from the moment organizers and moderators can start preparing the meeting, about 60 minutes before the start, add backstageToken:
https://<DOMAIN-NAME>/meeting/<MEETING-ID>?enableTVMode=true&invisibleToken=<INVISIBLE-TOKEN>&backstageToken=<BACKSTAGE-TOKEN>| Parameter | Possible values | Default | Description |
|---|---|---|---|
| backstageToken | Valid backstage token | empty | Lets a TV screen show the meeting room content from the start of the preparation time. It only extends invisibleToken, so it has no effect on its own, and the platform ignores it unless enableTVMode is true. |
A director is a moderator who stays invisible and sends no media. Combine invisibleToken with moderatorToken:
https://<DOMAIN-NAME>/meeting/<MEETING-ID>?invisibleToken=<INVISIBLE-TOKEN>&moderatorToken=<MODERATOR-TOKEN>Do not add enableTVMode to a director's link: TV mode ignores moderatorToken, so the director would join as a TV screen without moderator rights.
| Parameter | Possible values | Default | Description |
|---|---|---|---|
| videoInputDeviceId | Any string | empty | The camera device ID to use, if available. |
| audioInputDeviceId | Any string | empty | The microphone device ID to use, if available. |
| audioOutputDeviceId | Any string | empty | The speaker device ID to use, if available. |
| 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. |
| 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 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. Set it when we are helping you diagnose a problem. |
| autoApplyUpdates | true, false | false | Checks for a new version every 30 minutes and, for a release that would otherwise prompt the participant to update, reloads without prompting, after a random delay of up to 5 minutes. In a meeting, including the join screen, the reload waits until the participant leaves, but at most 2 hours; then it reloads and rejoins the room automatically. At most 5 reloads per hour, so a reload loop stops. Use it for unattended screens where nobody is there to answer the prompt. enableTVMode already behaves this way. |
The platform takes two sets of parameters out of the URL. Neither removal is a bug, but both will surprise you if you expect to read a value back from window.location later.
Removed immediately, always. These do not remain in the address bar, with the one exception described below:
meetingAccessToken
meetingAccessRequestToken
meetingChallengeCodeRemoved 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:
skipJoinMeetingScreen jwtToken moderatorToken
invisibleToken backstageToken interpreterToken
authenticationSkipToken participantName participantUuid
participantEmailThe exception is an unattended client. On a client opened with enableTVMode or autoApplyUpdates set to true, an automatic update reload during a meeting puts every parameter the client was opened with back into the address bar, tokens included, so that the client rejoins the room. The reload replaces the current history entry instead of adding one. Separately, setting forcePreserveQueryParameters to true turns off the removal before navigation.
If you need a value after joining, keep it in your own application rather than reading it back from the URL.
participantName is the most common case.skipJoinMeetingScreen=true without participantName and expecting the join screen to be skipped. With no name available, the participant still sees it.moderatorToken or participantName to still be in the URL after the meeting room has loaded.backstageToken but leaving out enableTVMode=true or invisibleToken. On its own it does nothing.enableTVMode to a director's link. TV mode ignores moderatorToken.1 or yes for a boolean. Only true and false are recognized.Contact our team to discuss the details.