# alfaview API v2 > HTTP API of the alfaview video conferencing platform for managing rooms, meetings, users, the company, permissions, guests, files and reports. --- # alfaview API v2 overview ## Quickstart ### 1. Obtain an access token Obtain an access token, for example with an API key ([Authenticate via API Key](https://apis.alfaview.com/v2/docs/operations/AuthenticateAPIKey.md)). Generate API credentials in the alfaview administration to get an API key, as the support article [Generate API credentials](https://support.alfaview.com/en/for-it-administration/advanced-configurations/generate-api-credentials/) describes. ```shell curl -X POST https://apis.alfaview.com/v2/auth/api-key \ -H "Content-Type: application/json" \ -d '{"companyId": "", "clientId": "", "key": ""}' ``` The response contains the token: `{"accessToken": ""}`. ### 2. Call the API with the token Pass the token with the `Bearer` prefix in the `Authorization` header of every further request, for example to list the rooms ([List Rooms](https://apis.alfaview.com/v2/docs/operations/ListRooms.md)): ```shell curl https://apis.alfaview.com/v2/rooms -H "Authorization: Bearer " ``` ## Format information * All time fields are returned in RFC3339 format and in UTC if not mentioned otherwise. ## Pagination List endpoints are paginated. They return at most `limit` items (default and maximum depend on the endpoint, see its `limit` parameter) and a `nextPageToken` if more items exist. To obtain the next page, repeat the request with the `pageToken` parameter set to that value. The last page contains no `nextPageToken`. ## Errors Errors are returned as `application/problem+json` ([RFC 9457](https://www.rfc-editor.org/rfc/rfc9457)) with the fields `title`, `status` and `detail`, and an optional `errors` list with the `location`, `message` and `value` of each individual validation error. A request that does not match the schema of the endpoint gets the response code `422`. This is the case when a required field or parameter is missing, a value has the wrong type or format or is out of range, or the body contains an unknown field. Additional cases are documented for each endpoint individually. `401` responses of endpoints that require an access token additionally carry the header `WWW-Authenticate: Bearer`. ## Authentication ### API Key and Credentials All API requests require an access token for authorization. Access tokens can be obtained by authenticating using any of the following endpoints: - [Authenticate via API key](https://apis.alfaview.com/v2/docs/operations/AuthenticateAPIKey.md) - [Authenticate via password](https://apis.alfaview.com/v2/docs/operations/AuthenticatePassword.md) - [Authenticate a guest (guest link)](https://apis.alfaview.com/v2/docs/operations/AuthenticateGuestLink.md) - [Authenticate a guest (group link)](https://apis.alfaview.com/v2/docs/operations/AuthenticateGroupLink.md) The access token is returned as a base64-encoded string. It needs to be sent in the `Authorization` header in all subsequent API requests, with an optional `Bearer ` prefix (`Authorization: Bearer ` or `Authorization: `). ### Token Time-To-Live (TTL) Access tokens are valid for 1 hour. After this period, tokens will be expired and a new token must be obtained. ## Permissions The description of every endpoint states the user permissions and room permissions it requires. There are two distinct types of permissions that can be applied to users independently. ### Room permissions Room permissions are the permissions of users in a particular room. If users have no permissions for a room, they cannot get any information about the room and it is excluded from room lists. The main exceptions are users with the user permission `roomAdmin`. [List Rooms](https://apis.alfaview.com/v2/docs/operations/ListRooms.md) states the exact rules. To edit room properties or create resources (e.g., links, subrooms) for a room, users need room administrator permissions or user permissions that permit those actions. For further information please refer to the [room permissions section in the support center](https://support.alfaview.com/en/administration/general/room-permissions/). ### User permissions User permissions are high level permissions applied to users independently from specific rooms. For further information please refer to the [user permissions section in the support center](https://support.alfaview.com/en/administration/general/user-permissions/). --- # alfaview API v2 changelog ## 03.11.2026 - Added `recurrenceRule` to [Update Meeting](https://apis.alfaview.com/v2/docs/operations/UpdateMeeting.md), which makes a non-recurring meeting recurring, or changes the rule of a recurring meeting. - Added `recurrenceRule` to [Create Meeting](https://apis.alfaview.com/v2/docs/operations/CreateMeeting.md), which creates a recurring meeting. - Added instances of recurring meetings to [List Own Meetings](https://apis.alfaview.com/v2/docs/operations/ListOwnMeetings.md) and [List Meeting Invitations](https://apis.alfaview.com/v2/docs/operations/ListInvitedMeetings.md). - Added `recurrenceRule`, `externallyManaged` and `nextInstance` to [Get Own Meeting](https://apis.alfaview.com/v2/docs/operations/GetOwnMeeting.md) for a recurring meeting. - Bugfix: [Update Meeting](https://apis.alfaview.com/v2/docs/operations/UpdateMeeting.md) sometimes responded with `500` instead of `422` for meetings that cannot be changed. - Bugfix: [Update Language Settings](https://apis.alfaview.com/v2/docs/operations/UpdateLanguageSettings.md) responded with `500` for an invalid language code, instead of responding with `422`. ## 02.11.2026 - Added `invitedUsers` to [Create Meeting](https://apis.alfaview.com/v2/docs/operations/CreateMeeting.md) to invite registered users. - Added [List Meeting Invitations](https://apis.alfaview.com/v2/docs/operations/ListInvitedMeetings.md). - Changed [Get Passcode](https://apis.alfaview.com/v2/docs/operations/GetPasscode.md) to respond with `200` and an empty `passcode` instead of `404` for rooms that do not require a passcode and have none set. - Bugfix: [Get Passcode](https://apis.alfaview.com/v2/docs/operations/GetPasscode.md) responded with `403` instead of `404` for rooms the user has no access to. - Bugfix: [Get Passcode](https://apis.alfaview.com/v2/docs/operations/GetPasscode.md) responded with `422` instead of `404` for departments the user has no access to. - Bugfix: [Get Passcode](https://apis.alfaview.com/v2/docs/operations/GetPasscode.md) responded with `500` instead of `404` for non-existing rooms. - Bugfix: [Get Passcode](https://apis.alfaview.com/v2/docs/operations/GetPasscode.md) sometimes returned the passcode of meetings the user cannot join instead of responding with `404`. - Bugfix: [Regenerate Passcode](https://apis.alfaview.com/v2/docs/operations/RegeneratePasscode.md) regenerated the passcode of rooms the user has no access to, instead of responding with `404`. - Added the corresponding `userId` to guest link objects when getting. Users joining with the link will be assigned to this user ID in reports. - Changed [Create Guest Links](https://apis.alfaview.com/v2/docs/operations/CreateGuestLinks.md) to respond with the created guest link objects, instead of only the `id`. - Bugfix: [Update Language Settings](https://apis.alfaview.com/v2/docs/operations/UpdateLanguageSettings.md) sometimes responded with `500`, instead of the correct response codes. - Bugfix: [Get Language Settings](https://apis.alfaview.com/v2/docs/operations/GetLanguageSettings.md) responded with default settings for a room that does not exist or that the user has no access to, instead of responding with `404`. - Bugfix: [List Statistics](https://apis.alfaview.com/v2/docs/operations/ListStatistics.md) responded with `500` instead of `422` when `from` equals `to`. - Bugfix: Invited users that are not yet completely set up returned an empty `locale` if not set in the invitation. They now return `unknown`, which is added to the `locale` enum of `User`, `UserProfile` and `GuestLink`. ## 12.10.2026 - Bugfix: [List own Meetings](https://apis.alfaview.com/v2/docs/operations/ListOwnMeetings.md) responded with `200` and empty list when `from` was after `to` instead of `422` - Bugfix: [List own Meetings](https://apis.alfaview.com/v2/docs/operations/ListOwnMeetings.md) returned no meetings when only `from` was set - Bugfix: [List Statistics](https://apis.alfaview.com/v2/docs/operations/ListStatistics.md) and [List Attendances](https://apis.alfaview.com/v2/docs/operations/ListAttendances.md) to respond with `422` instead of `400` if `from` is after `to`. - Bugfix: [Delete Permissions](https://apis.alfaview.com/v2/docs/operations/DeletePermissions.md) to respond with `422` instead of `400` if `userId` is a guest link ID or group link ID. - Bugfix: [Delete Permissions](https://apis.alfaview.com/v2/docs/operations/DeletePermissions.md) returned `400` instead of `422` when trying to delete permissions for guest links or group links. ## 05.10.2026 - Set length limits for `externalId` in [Authenticate a Guest (Group Link)](https://apis.alfaview.com/v2/docs/operations/AuthenticateGroupLink.md) (length 32 to 256 characters) and `displayName` in [Authenticate a Guest (Guest Link)](https://apis.alfaview.com/v2/docs/operations/AuthenticateGuestLink.md) and [Authenticate a Guest (Group Link)](https://apis.alfaview.com/v2/docs/operations/AuthenticateGroupLink.md) (at most 256 characters). - Added markdown documentation for LLM agents: [llms.txt](/v2/docs/llms.txt), [llms-full.txt](/v2/docs/llms-full.txt). - The OpenAPI specification and the markdown documentation can now be fetched from any origin (`Access-Control-Allow-Origin: *`), e.g. by browser-based tools. - Added documentation of the error response body (`application/problem+json` with the `ErrorModel` schema) and `WWW-Authenticate` header of `401` responses. - Access tokens are now also accepted with the `Bearer` prefix (`Authorization: Bearer `). - Added the access token as an OpenAPI security scheme (`accessToken`) on all endpoints that require it. The `Authorization` header is therefore no longer listed as a parameter in the documentation, but it is still required. Code generators now produce a proper authentication configuration instead of ignoring the header parameter, as mandated by the OpenAPI specification. ## 28.09.2026 - Added [Get own company](https://apis.alfaview.com/v2/docs/operations/GetOwnCompany.md). - Bugfix: Authorizing via `/auth/password` with two-factor authentication returned an empty access token instead of `403`. ## 13.07.2026 - Added `localRecording`, `liveStreaming` and `examScreenshare` to room feature objects when updating and getting. - Made all fields in the [Update Room Features](https://apis.alfaview.com/v2/docs/operations/UpdateRoomFeatures.md) request body optional and renamed the schema from `RoomFeatures` to `RoomFeaturesEdit`. ## 06.07.26 - Added `city`, `initials` and `locale` to user objects when updating and getting. - Bugfix: Room permissions of old users were sometimes not returned correctly. ## 23.06.26 - Added [Get own user](https://apis.alfaview.com/v2/docs/operations/GetOwnUser.md). - Restricted `locale` fields in requests to contain available languages only. ## 26.05.2026 - Improved security by omitting request details in error responses. ## 14.04.2026 - Allowed users with two-factor authentication enabled to authenticate via an API key (second factor not required then). ## 08.04.2026 - Added [Get file share settings](https://apis.alfaview.com/v2/docs/operations/GetRoomFileShareSettings.md). - Added [Update file share settings](https://apis.alfaview.com/v2/docs/operations/UpdateRoomFileShareSettings.md). - Added [Get file share limits](https://apis.alfaview.com/v2/docs/operations/GetRoomFileShareLimits.md). - Added `webclientLaunchURL` to response body when authenticating as a guest (guest *and* group link). - Deprecated `joinLink` and added `joinURL` in response body when getting group links. - `joinURL` lets the user choose between native client and web client instead of being a direct link to the native client. ## 01.04.2026 - Added [Update own user](https://apis.alfaview.com/v2/docs/operations/UpdateUser.md). - Added [Delete user](https://apis.alfaview.com/v2/docs/operations/DeleteUser.md). ## 17.03.2026 - Change HTTP status code when authenticating users with two-factor-authentication from `500` to `403`. ## 10.03.2026 - Added [Regenerate Passcode](https://apis.alfaview.com/v2/docs/operations/RegeneratePasscode.md). - Added [Get Passcode](https://apis.alfaview.com/v2/docs/operations/GetPasscode.md). - Added `passcodeRequired` to room objects when creating, updating and getting. --- # Authenticate via API Key `POST /v2/auth/api-key` Operation ID: `AuthenticateAPIKey` · Tags: Authentication Authenticates via an API key and returns an access token. Generate API credentials in the alfaview administration to get an API key, as the support article [Generate API credentials](https://support.alfaview.com/en/for-it-administration/advanced-configurations/generate-api-credentials/) describes. **Required permissions:** - none ## Authentication No authentication required. ## Request body The API credentials. Content-Type: `application/json` Schema: APICredentials ```json { "clientId": "my-integration", "companyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "key": "string" } ``` ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: AccessToken ```json { "accessToken": "string" } ``` ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The authentication did not succeed because of invalid credentials. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The authentication did not succeed because of invalid credentials." } ``` ### 403 The authentication did not succeed because of the account's status or permissions (e.g., account is inactive). Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The authentication did not succeed because of the account's status or permissions (e.g., account is inactive)." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview." } ``` ## Schemas ### APICredentials | Property | Type | Required | Description | |---|---|---|---| | clientId | string | yes | The alias of the API key. | | companyId | string | yes | The company ID. | | key | string | yes | The API key to authenticate. | ### AccessToken | Property | Type | Required | Description | |---|---|---|---| | accessToken | string | yes | Access tokens are returned after successful authentication as a base64-encoded string. Use the token in the Authorization header in order to access the API. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/AuthenticateAPIKey) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Authenticate via Password `POST /v2/auth/password` Operation ID: `AuthenticatePassword` · Tags: Authentication Authenticates a user via username and password and returns an access token. The user must not have two-factor authentication enabled. **Required permissions:** - none ## Authentication No authentication required. ## Request body The user credentials. Content-Type: `application/json` Schema: PasswordCredentials ```json { "password": "string", "username": "user@provider.com" } ``` ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: AccessToken ```json { "accessToken": "string" } ``` ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The authentication did not succeed because of invalid credentials. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The authentication did not succeed because of invalid credentials." } ``` ### 403 The authentication did not succeed because of the account's status or permissions (e.g., account is inactive, user has two-factor authentication activated). Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The authentication did not succeed because of the account's status or permissions (e.g., account is inactive, user has two-factor authentication activated)." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview." } ``` ## Schemas ### PasswordCredentials | Property | Type | Required | Description | |---|---|---|---| | password | string | yes | The password. | | username | string | yes | The username. | ### AccessToken | Property | Type | Required | Description | |---|---|---|---| | accessToken | string | yes | Access tokens are returned after successful authentication as a base64-encoded string. Use the token in the Authorization header in order to access the API. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/AuthenticatePassword) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Authenticate a Guest (Guest Link) `POST /v2/auth/guest-link` Operation ID: `AuthenticateGuestLink` · Tags: Authentication, Guests Tries to authenticate a guest link guest via access key. If the access key exists, information about the guest's authentication are returned. If the access key is also valid at the time of the request, the response additionally includes an access token and a token expiry time. **Required permissions:** - none ## Authentication No authentication required. ## Request body The authentication information for the guest. Content-Type: `application/json` Schema: AuthenticateGuestLinkRequestBody ```json { "accessKey": "string", "companyId": "0123456789ABCDEFGHIJKLMNOP", "displayName": "string", "roomId": "00000000-0000-0000-0000-000000000000" } ``` ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: GuestLinkAuthenticationInfo ```json { "accessToken": "string", "clientLaunchUrl": "alfaview://apis.alfaview.com:443?companyId={company-id}\u0026roomId={room-id}\u0026token={token}", "displayName": "string", "participantId": "00000000-0000-0000-0000-000000000000", "tokenExpiresAt": "2024-09-22T12:34:56Z", "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-22T12:34:56Z", "webclientLaunchUrl": "https://webclient.alfaview.com/?--url=alfaview%3A%2F%2Fapis.alfaview.com%3A443%3FcompanyId%3D{company-id}%26roomId%3D{room-id}%26token%3D{token}" } ``` ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 A guest with the provided information could not be found and authenticated. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "A guest with the provided information could not be found and authenticated." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `accessKey` belongs to a group link (use the [Authenticate a Guest (Group Link)](/v2/docs/openapi#/operations/AuthenticateGroupLink) endpoint instead) - `roomId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `accessKey` belongs to a group link (use the [Authenticate a Guest (Group Link)](/v2/docs/openapi#/operations/AuthenticateGroupLink) endpoint instead)\n- `roomId` is invalid" } ``` ## Schemas ### AuthenticateGuestLinkRequestBody | Property | Type | Required | Description | |---|---|---|---| | accessKey | string | yes | The access key from the guest link. | | companyId | string | yes | The company ID. | | displayName | string or null | no | If set, this overrides the stored name of the guest that is displayed in UIs. Maximum length: 256. | | roomId | string | yes | The room ID from the guest link. | ### GuestLinkAuthenticationInfo | Property | Type | Required | Description | |---|---|---|---| | accessToken | string | no | Access tokens are returned after successful authentication as a base64-encoded string. Use the token in the Authorization header in order to access the API. Note: Can be empty if the guest link is not yet / no longer valid. | | clientLaunchUrl | string | no | The URL to join the room with the (installed) alfaview app. Can be empty if the guest link is not yet / no longer valid. | | displayName | string | yes | The name of the guest that is displayed in UIs. | | participantId | string | no | The guest link ID. Can be empty if the guest link is not yet / no longer valid. | | tokenExpiresAt | string (date-time) | no | Time at which the access token expires. Can be empty if the guest link is not yet / no longer valid. | | validFrom | string (date-time) | yes | Time at which the guest link becomes valid, i.e., authentication becomes possible. | | validUntil | string (date-time) | yes | Time at which the guest link becomes invalid, i.e., authentication is not possible anymore. | | webclientLaunchUrl | string | no | The URL to join the room with the browser. Can be empty if the guest link is not yet / no longer valid. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/AuthenticateGuestLink) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Authenticate a Guest (Group Link) `POST /v2/auth/group-link` Operation ID: `AuthenticateGroupLink` · Tags: Authentication, Guests Tries to authenticate a group link guest via access key. If the access key exists, information about the guest's authentication are returned. If the access key is also valid at the time of the request, the response additionally includes an access token and a token expiry time. **Required permissions:** - none ## Authentication No authentication required. ## Request body The authentication information for the guest. Content-Type: `application/json` Schema: AuthenticateGroupLinkRequestBody ```json { "accessKey": "string", "companyId": "0123456789ABCDEFGHIJKLMNOP", "displayName": "string", "externalId": "my-own-integration-user-123456789", "roomId": "00000000-0000-0000-0000-000000000000" } ``` ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: GroupLinkAuthenticationInfo ```json { "accessToken": "string", "clientLaunchUrl": "alfaview://apis.alfaview.com:443?companyId={company-id}\u0026roomId={room-id}\u0026token={token}", "displayName": "string", "participantId": "00000000-0000-0000-0000-000000000000", "tokenExpiresAt": "2024-09-22T12:34:56Z", "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-22T12:34:56Z", "webclientLaunchUrl": "https://webclient.alfaview.com/?--url=alfaview%3A%2F%2Fapis.alfaview.com%3A443%3FcompanyId%3D{company-id}%26roomId%3D{room-id}%26token%3D{token}" } ``` ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 A guest with the provided information could not be found and authenticated. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "A guest with the provided information could not be found and authenticated." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `accessKey` belongs to a guest link (use the [Authenticate a Guest (Guest Link)](/v2/docs/openapi#/operations/AuthenticateGuestLink) endpoint instead) Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `accessKey` belongs to a guest link (use the [Authenticate a Guest (Guest Link)](/v2/docs/openapi#/operations/AuthenticateGuestLink) endpoint instead)" } ``` ## Schemas ### AuthenticateGroupLinkRequestBody | Property | Type | Required | Description | |---|---|---|---| | accessKey | string | yes | The access key from the group link. | | companyId | string | yes | The company ID. | | displayName | string | yes | The name of the guest that is displayed in UIs. Maximum length: 256. | | externalId | string or null | no | The external ID can be used to derive a reproducible user ID to prevent simultaneous use. If that is desired, the caller is responsible for providing a unique value per user. Length: 32 to 256. | | roomId | string | yes | The room ID from the group link. | ### GroupLinkAuthenticationInfo | Property | Type | Required | Description | |---|---|---|---| | accessToken | string | no | Access tokens are returned after successful authentication as a base64-encoded string. Use the token in the Authorization header in order to access the API. Note: Can be empty if the group link is not yet / no longer valid. | | clientLaunchUrl | string | no | The URL to join the room with the (installed) alfaview app. Can be empty if the group link is not yet / no longer valid. | | displayName | string | yes | The name of the guest that is displayed in UIs. | | participantId | string | no | The group link ID. Can be empty if the group link is not yet / no longer valid. | | tokenExpiresAt | string (date-time) | no | Time at which the access token expires. Can be empty if the group link is not yet / no longer valid. | | validFrom | string (date-time) | yes | Time at which the group link becomes valid, i.e., authentication becomes possible. | | validUntil | string (date-time) | yes | Time at which the group link becomes invalid, i.e., authentication is not possible anymore. | | webclientLaunchUrl | string | no | The URL to join the room with the browser. Can be empty if the guest link is not yet / no longer valid. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/AuthenticateGroupLink) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Get Access Token Information `GET /v2/auth/token-info` Operation ID: `GetTokenInfo` · Tags: Authentication Retrieves details about the access token provided in the Authorization header. Expired tokens are accepted. **Required permissions:** - none beyond the access token ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: TokenInfo ```json { "active": true, "expiresAt": "2024-01-31T12:00:00Z", "permissions": { "manageCompany": true, "roomAdmin": true, "roomCreate": true, "roomList": true, "userAdmin": true, "userList": true, "userShow": true } } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - the `Authorization` header is missing - the access token is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- the `Authorization` header is missing\n- the access token is invalid" } ``` ## Schemas ### TokenInfo | Property | Type | Required | Description | |---|---|---|---| | active | boolean | yes | Denotes whether the token is still valid. | | expiresAt | string (date-time) | yes | Time at which the token expires. | | permissions | TokenUserPermissions | yes | The user permissions of the token. | ### TokenUserPermissions | Property | Type | Required | Description | |---|---|---|---| | manageCompany | boolean | yes | If true, the user can manage company settings. | | roomAdmin | boolean | yes | If true, the user can create, update and delete any room. | | roomCreate | boolean | yes | If true, the user can create rooms for their company. | | roomList | boolean | yes | If true, the user can list all rooms in their company. | | userAdmin | boolean | yes | If true, the user can create, update and delete other users, send password reset mails and resend sign-up mails for new users. | | userList | boolean | yes | If true, the user can list all users in their company. | | userShow | boolean | yes | If true, the user can see the user names of all users in rooms they can access. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/GetTokenInfo) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Rooms `GET /v2/rooms` Operation ID: `ListRooms` · Tags: Rooms Lists rooms. **Required permissions:** - none beyond the access token **Result:** - with the user permission `roomAdmin`: all rooms of the company, except meetings in which the caller has no room permission `join` - otherwise: the rooms in which the caller has the room permission `join`, `admin` or `promote` - departments: only if the caller has the user permission `roomList` or room permissions in the department ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomTypes | query | array of string or null | no | Filters the result by room type. - room is used for normal rooms. - departments are unjoinable rooms that can hold multiple child rooms to help improving room structuring. - meeting marks temporary meeting rooms. | | pageToken | query | string | no | For pagination: Pass the nextPageToken from the last successful request to obtain the next page. Omit on first request. | | limit | query | integer (int32) | no | For pagination: Set a limit on the number of returned rooms. Minimum: 0. Maximum: 50. Default: `50`. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: PaginatedBodyListRoom ```json { "data": [ { "createdAt": "2024-09-22T12:34:56Z", "createdBy": "00000000-0000-0000-0000-000000000000", "defaultPermissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true }, "displayName": "string", "features": { "allowCopyRoomInfo": "enabled", "blockWebclient": "enabled", "centeredVideoGrid": "enabled", "disableCameraOff": "enabled", "disableJoinAndLeaveNotifications": "enabled", "disableMiniWindow": "enabled", "examScreenshare": "enabled", "liveStreaming": "enabled", "localRecording": "enabled", "raiseHands": "enabled", "shareContentOnlyToModerators": "enabled", "showRaisedHandsOnlyToModerators": "enabled", "sixteenByNineVideos": "enabled", "sortVideoGridAlphabetically": "enabled" }, "groupLinkPermissions": [ { "participantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "permissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } } ], "guestLinkPermissions": [ { "participantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "permissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } } ], "id": "00000000-0000-0000-0000-000000000000", "managed": true, "parentId": "00000000-0000-0000-0000-000000000000", "passcodeRequired": true, "quotas": { "activeParticipants": 0, "maxVideoTilesPerPage": 0, "spectatorOnlyParticipants": 0 }, "sort": 0, "subrooms": [ { "displayName": "string", "id": "00000000-0000-0000-0000-000000000000", "sort": 0 } ], "type": "department", "userPermissions": [ { "participantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "permissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } } ], "waitingRoomEnabled": true, "waitingRoomWelcomeNote": "string" } ], "nextPageToken": "string" } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `pageToken` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `pageToken` is invalid" } ``` ## Schemas ### PaginatedBodyListRoom | Property | Type | Required | Description | |---|---|---|---| | data | array of Room or null | yes | The actual data for a paginated request. | | nextPageToken | string | no | A token that can be used to obtain the next page of the requested data. | ### Room | Property | Type | Required | Description | |---|---|---|---| | createdAt | string (date-time) | yes | The creation timestamp. | | createdBy | string | yes | The creator user ID. | | defaultPermissions | Permissions | no | Optional default permissions for every non-guest user. If empty, users will not have any permissions by default. | | displayName | string | yes | The name of the room that is displayed in UIs. | | features | RoomFeatures | yes | The feature configuration. | | groupLinkPermissions | array of ParticipantPermissions or null | no | The permissions of group links for this room. | | guestLinkPermissions | array of ParticipantPermissions or null | no | The guest links permissions for this room. | | id | string | yes | The room ID. | | managed | boolean | yes | If true, the room cannot be edited or removed by a user. | | parentId | string | no | The parent room ID. | | passcodeRequired | boolean or null | no | If true, a passcode is required to enter the room. | | quotas | RoomQuotas | no | The quota information. | | sort | integer (int64) | yes | A sorting number that determines the position of the room in UI room lists. | | subrooms | array of Subroom or null | no | The contained subrooms. | | type | string | yes | The room type. room is used for normal rooms. Departments are unjoinable rooms that can hold multiple child rooms to help improving room structuring. One of: `department`, `room`, `meeting`. | | userPermissions | array of ParticipantPermissions or null | no | The user permissions. | | waitingRoomEnabled | boolean | yes | If true, participants will enter the waiting room when joining the room. A moderator can admit waiting participants to join the actual room. Rooms of the type department cannot have a waiting room. | | waitingRoomWelcomeNote | string | no | The welcome note that is shown to the participants as they join the waiting room. Rooms of the type department cannot have a waiting room. | ### Permissions | Property | Type | Required | Description | |---|---|---|---| | admin | boolean | yes | If true, the associated user is an admin. | | chat | boolean | yes | Permission to chat. | | join | boolean | yes | Permission to join the room. | | promote | boolean | yes | Permission to promote permissions for other users. | | screen | boolean | yes | Permission to share the screen. | | upload | boolean | yes | Permission to upload files. | | video | boolean | yes | Permission to stream video input. | | vip | boolean | yes | Permission to mark users as VIP. | | voice | boolean | yes | Permission to speak. | ### RoomFeatures | Property | Type | Required | Description | |---|---|---|---| | allowCopyRoomInfo | string | yes | Allows moderators to copy the contents of the participant list to the clipboard. One of: `enabled`, `disabled`, `default`. | | blockWebclient | string | yes | Prevents the button to join via browser from being displayed on the guest join page. One of: `enabled`, `disabled`, `default`. | | centeredVideoGrid | string | yes | Centers participant videos on the stage. One of: `enabled`, `disabled`, `default`. | | disableCameraOff | string | yes | Prevents the camera from being turned off. One of: `enabled`, `disabled`, `default`. | | disableJoinAndLeaveNotifications | string | yes | Disables notifications when users join or leave the room. One of: `enabled`, `disabled`, `default`. | | disableMiniWindow | string | yes | Prevents the display of the floating mini window when the alfaview window is minimized. One of: `enabled`, `disabled`, `default`. | | examScreenshare | string | yes | All monitors of all participants in this room are shared with the moderators. Users with an incompatible version are not able to join the room. Linux users can always join the room due to technical limitations on Linux systems with this feature. One of: `enabled`, `disabled`, `default`. | | liveStreaming | string | yes | Allows to live stream all video and audio in the alfaview room to external live streaming servers. One of: `enabled`, `disabled`, `default`. | | localRecording | string | yes | Allows to record all video and audio in the alfaview room. Recorded video files are stored locally. One of: `enabled`, `disabled`, `default`. | | raiseHands | string | yes | Allows participants and spectators to raise their hand to indicate that they want to say something. One of: `enabled`, `disabled`, `default`. | | shareContentOnlyToModerators | string | yes | If enabled, only moderators can see active screen shares. One of: `enabled`, `disabled`, `default`. | | showRaisedHandsOnlyToModerators | string | yes | If enabled, only moderators can see who is currently raising a hand. One of: `enabled`, `disabled`, `default`. | | sixteenByNineVideos | string | yes | Uses 16:9 video aspect ratio for participant videos. One of: `enabled`, `disabled`, `default`. | | sortVideoGridAlphabetically | string | yes | Displays participant videos in alphabetical order. (Overrides the default order-by-join-time behavior.) One of: `enabled`, `disabled`, `default`. | ### ParticipantPermissions | Property | Type | Required | Description | |---|---|---|---| | participantId | string | yes | The user ID / guest link ID / group link ID to which the permissions apply. | | permissions | Permissions | yes | The assigned permissions. | ### RoomQuotas | Property | Type | Required | Description | |---|---|---|---| | activeParticipants | integer (int32) | yes | The number of allowed active participants. Minimum: 0. | | maxVideoTilesPerPage | integer (int32) | yes | The number of allowed video tiles displayed per page. If this value mismatches the defined options in the alfaview client, the next lower value will be chosen. Minimum: 0. | | spectatorOnlyParticipants | integer (int32) | yes | The number of allowed spectator-only participants. Minimum: 0. | ### Subroom | Property | Type | Required | Description | |---|---|---|---| | displayName | string | no | The name that is displayed in UIs. If left empty, generic localized names with incremental numbers will be used in the alfaview client (e.g., Group 1, Group 2, etc.). | | id | string | yes | The subroom ID. | | sort | integer (int32) | yes | A sorting number that determines the position of the subroom in UI room lists. Minimum: 0. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListRooms) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Get Room `GET /v2/rooms/{id}` Operation ID: `GetRoom` · Tags: Rooms Gets a single room. **Required permissions** (one of): - user permission `roomAdmin` - room permission `join`, `admin` or `promote` in the room **Restrictions:** - department: visible only if the caller has the user permission `roomList` or room permissions in the department - room that is not visible: `404` ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The room ID. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: Room ```json { "createdAt": "2024-09-22T12:34:56Z", "createdBy": "00000000-0000-0000-0000-000000000000", "defaultPermissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true }, "displayName": "string", "features": { "allowCopyRoomInfo": "enabled", "blockWebclient": "enabled", "centeredVideoGrid": "enabled", "disableCameraOff": "enabled", "disableJoinAndLeaveNotifications": "enabled", "disableMiniWindow": "enabled", "examScreenshare": "enabled", "liveStreaming": "enabled", "localRecording": "enabled", "raiseHands": "enabled", "shareContentOnlyToModerators": "enabled", "showRaisedHandsOnlyToModerators": "enabled", "sixteenByNineVideos": "enabled", "sortVideoGridAlphabetically": "enabled" }, "groupLinkPermissions": [ { "participantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "permissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } } ], "guestLinkPermissions": [ { "participantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "permissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } } ], "id": "00000000-0000-0000-0000-000000000000", "managed": true, "parentId": "00000000-0000-0000-0000-000000000000", "passcodeRequired": true, "quotas": { "activeParticipants": 0, "maxVideoTilesPerPage": 0, "spectatorOnlyParticipants": 0 }, "sort": 0, "subrooms": [ { "displayName": "string", "id": "00000000-0000-0000-0000-000000000000", "sort": 0 } ], "type": "department", "userPermissions": [ { "participantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "permissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } } ], "waitingRoomEnabled": true, "waitingRoomWelcomeNote": "string" } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `id` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `id` is invalid" } ``` ## Schemas ### Room | Property | Type | Required | Description | |---|---|---|---| | createdAt | string (date-time) | yes | The creation timestamp. | | createdBy | string | yes | The creator user ID. | | defaultPermissions | Permissions | no | Optional default permissions for every non-guest user. If empty, users will not have any permissions by default. | | displayName | string | yes | The name of the room that is displayed in UIs. | | features | RoomFeatures | yes | The feature configuration. | | groupLinkPermissions | array of ParticipantPermissions or null | no | The permissions of group links for this room. | | guestLinkPermissions | array of ParticipantPermissions or null | no | The guest links permissions for this room. | | id | string | yes | The room ID. | | managed | boolean | yes | If true, the room cannot be edited or removed by a user. | | parentId | string | no | The parent room ID. | | passcodeRequired | boolean or null | no | If true, a passcode is required to enter the room. | | quotas | RoomQuotas | no | The quota information. | | sort | integer (int64) | yes | A sorting number that determines the position of the room in UI room lists. | | subrooms | array of Subroom or null | no | The contained subrooms. | | type | string | yes | The room type. room is used for normal rooms. Departments are unjoinable rooms that can hold multiple child rooms to help improving room structuring. One of: `department`, `room`, `meeting`. | | userPermissions | array of ParticipantPermissions or null | no | The user permissions. | | waitingRoomEnabled | boolean | yes | If true, participants will enter the waiting room when joining the room. A moderator can admit waiting participants to join the actual room. Rooms of the type department cannot have a waiting room. | | waitingRoomWelcomeNote | string | no | The welcome note that is shown to the participants as they join the waiting room. Rooms of the type department cannot have a waiting room. | ### Permissions | Property | Type | Required | Description | |---|---|---|---| | admin | boolean | yes | If true, the associated user is an admin. | | chat | boolean | yes | Permission to chat. | | join | boolean | yes | Permission to join the room. | | promote | boolean | yes | Permission to promote permissions for other users. | | screen | boolean | yes | Permission to share the screen. | | upload | boolean | yes | Permission to upload files. | | video | boolean | yes | Permission to stream video input. | | vip | boolean | yes | Permission to mark users as VIP. | | voice | boolean | yes | Permission to speak. | ### RoomFeatures | Property | Type | Required | Description | |---|---|---|---| | allowCopyRoomInfo | string | yes | Allows moderators to copy the contents of the participant list to the clipboard. One of: `enabled`, `disabled`, `default`. | | blockWebclient | string | yes | Prevents the button to join via browser from being displayed on the guest join page. One of: `enabled`, `disabled`, `default`. | | centeredVideoGrid | string | yes | Centers participant videos on the stage. One of: `enabled`, `disabled`, `default`. | | disableCameraOff | string | yes | Prevents the camera from being turned off. One of: `enabled`, `disabled`, `default`. | | disableJoinAndLeaveNotifications | string | yes | Disables notifications when users join or leave the room. One of: `enabled`, `disabled`, `default`. | | disableMiniWindow | string | yes | Prevents the display of the floating mini window when the alfaview window is minimized. One of: `enabled`, `disabled`, `default`. | | examScreenshare | string | yes | All monitors of all participants in this room are shared with the moderators. Users with an incompatible version are not able to join the room. Linux users can always join the room due to technical limitations on Linux systems with this feature. One of: `enabled`, `disabled`, `default`. | | liveStreaming | string | yes | Allows to live stream all video and audio in the alfaview room to external live streaming servers. One of: `enabled`, `disabled`, `default`. | | localRecording | string | yes | Allows to record all video and audio in the alfaview room. Recorded video files are stored locally. One of: `enabled`, `disabled`, `default`. | | raiseHands | string | yes | Allows participants and spectators to raise their hand to indicate that they want to say something. One of: `enabled`, `disabled`, `default`. | | shareContentOnlyToModerators | string | yes | If enabled, only moderators can see active screen shares. One of: `enabled`, `disabled`, `default`. | | showRaisedHandsOnlyToModerators | string | yes | If enabled, only moderators can see who is currently raising a hand. One of: `enabled`, `disabled`, `default`. | | sixteenByNineVideos | string | yes | Uses 16:9 video aspect ratio for participant videos. One of: `enabled`, `disabled`, `default`. | | sortVideoGridAlphabetically | string | yes | Displays participant videos in alphabetical order. (Overrides the default order-by-join-time behavior.) One of: `enabled`, `disabled`, `default`. | ### ParticipantPermissions | Property | Type | Required | Description | |---|---|---|---| | participantId | string | yes | The user ID / guest link ID / group link ID to which the permissions apply. | | permissions | Permissions | yes | The assigned permissions. | ### RoomQuotas | Property | Type | Required | Description | |---|---|---|---| | activeParticipants | integer (int32) | yes | The number of allowed active participants. Minimum: 0. | | maxVideoTilesPerPage | integer (int32) | yes | The number of allowed video tiles displayed per page. If this value mismatches the defined options in the alfaview client, the next lower value will be chosen. Minimum: 0. | | spectatorOnlyParticipants | integer (int32) | yes | The number of allowed spectator-only participants. Minimum: 0. | ### Subroom | Property | Type | Required | Description | |---|---|---|---| | displayName | string | no | The name that is displayed in UIs. If left empty, generic localized names with incremental numbers will be used in the alfaview client (e.g., Group 1, Group 2, etc.). | | id | string | yes | The subroom ID. | | sort | integer (int32) | yes | A sorting number that determines the position of the subroom in UI room lists. Minimum: 0. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/GetRoom) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Create Room `POST /v2/rooms` Operation ID: `CreateRoom` · Tags: Rooms Creates a room. **Required permissions** (one of): - user permission `roomCreate` - user permission `roomAdmin` ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Request body The room to create. Content-Type: `application/json` Schema: RoomCreate ```json { "defaultPermissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true }, "displayName": "string", "features": { "allowCopyRoomInfo": "enabled", "blockWebclient": "enabled", "centeredVideoGrid": "enabled", "disableCameraOff": "enabled", "disableJoinAndLeaveNotifications": "enabled", "disableMiniWindow": "enabled", "examScreenshare": "enabled", "liveStreaming": "enabled", "localRecording": "enabled", "raiseHands": "enabled", "shareContentOnlyToModerators": "enabled", "showRaisedHandsOnlyToModerators": "enabled", "sixteenByNineVideos": "enabled", "sortVideoGridAlphabetically": "enabled" }, "parentId": "00000000-0000-0000-0000-000000000000", "passcodeRequired": true, "permissions": [ { "participantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "permissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } } ], "quotas": { "activeParticipants": 0, "maxVideoTilesPerPage": 0, "spectatorOnlyParticipants": 0 }, "subrooms": [ { "displayName": "string" } ], "type": "department", "waitingRoomEnabled": true, "waitingRoomWelcomeNote": "string" } ``` ## Responses ### 201 The requested resource was created. Content-Type: `application/json` Schema: ID ```json { "id": "00000000-0000-0000-0000-000000000000" } ``` ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - a room of the type `department` has `waitingRoomEnabled` set to true or a `waitingRoomWelcomeNote` - a permission is set for a guest link or group link ID - a quota is exceeded Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- a room of the type `department` has `waitingRoomEnabled` set to true or a `waitingRoomWelcomeNote`\n- a permission is set for a guest link or group link ID\n- a quota is exceeded" } ``` ## Schemas ### RoomCreate | Property | Type | Required | Description | |---|---|---|---| | defaultPermissions | Permissions | no | Optional default permissions for every non-guest user. If default permissions are empty, users will not have any permissions by default. | | displayName | string | yes | The name of the room that is displayed in UIs. | | features | RoomFeaturesEdit | no | The feature configuration. If no state is specified for a feature, default is assumed. | | parentId | string or null | no | The parent room ID. | | passcodeRequired | boolean or null | no | If true, a passcode is required to enter the room. | | permissions | array of ParticipantPermissions or null | no | The user permissions. | | quotas | RoomQuotasEdit | no | The requested quotas. These are checked against the company's available quotas, which are provided by its billing plan. | | subrooms | array of SubroomCreateListItem or null | no | The contained subrooms. | | type | string | yes | The room type. room is used for normal rooms. Departments are unjoinable rooms that can hold multiple child rooms to help improving room structuring. One of: `department`, `room`. | | waitingRoomEnabled | boolean | yes | If true, participants enter a waiting room when joining and must be admitted by a moderator. Rooms of the type department cannot have a waiting room. | | waitingRoomWelcomeNote | string or null | no | The welcome note that is shown to the participants as they join the waiting room. Rooms of the type department cannot have a waiting room. | ### Permissions | Property | Type | Required | Description | |---|---|---|---| | admin | boolean | yes | If true, the associated user is an admin. | | chat | boolean | yes | Permission to chat. | | join | boolean | yes | Permission to join the room. | | promote | boolean | yes | Permission to promote permissions for other users. | | screen | boolean | yes | Permission to share the screen. | | upload | boolean | yes | Permission to upload files. | | video | boolean | yes | Permission to stream video input. | | vip | boolean | yes | Permission to mark users as VIP. | | voice | boolean | yes | Permission to speak. | ### RoomFeaturesEdit | Property | Type | Required | Description | |---|---|---|---| | allowCopyRoomInfo | string or null | no | Allows moderators to copy the contents of the participant list to the clipboard. One of: `enabled`, `disabled`, `default`. | | blockWebclient | string or null | no | Prevents the button to join via browser from being displayed on the guest join page. One of: `enabled`, `disabled`, `default`. | | centeredVideoGrid | string or null | no | Centers participant videos on the stage. One of: `enabled`, `disabled`, `default`. | | disableCameraOff | string or null | no | Prevents the camera from being turned off. One of: `enabled`, `disabled`, `default`. | | disableJoinAndLeaveNotifications | string or null | no | Disables notifications when users join or leave the room. One of: `enabled`, `disabled`, `default`. | | disableMiniWindow | string or null | no | Prevents the displaying of the floating mini window when the alfaview window is minimized. One of: `enabled`, `disabled`, `default`. | | examScreenshare | string or null | no | All monitors of all participants in this room are shared with the moderators. Users with an incompatible version are not able to join the room. Linux users can always join the room due to technical limitations on Linux systems with this feature. One of: `enabled`, `disabled`, `default`. | | liveStreaming | string or null | no | Allows to live stream all video and audio in the alfaview room to external live streaming servers. One of: `enabled`, `disabled`, `default`. | | localRecording | string or null | no | Allows to record all video and audio in the alfaview room. Recorded video files are stored locally. One of: `enabled`, `disabled`, `default`. | | raiseHands | string or null | no | Allows participants and spectators to raise their hand to indicate that they want to say something. One of: `enabled`, `disabled`, `default`. | | shareContentOnlyToModerators | string or null | no | If enabled, only moderators can see active screen shares. One of: `enabled`, `disabled`, `default`. | | showRaisedHandsOnlyToModerators | string or null | no | If enabled, only moderators can see who is currently raising a hand. One of: `enabled`, `disabled`, `default`. | | sixteenByNineVideos | string or null | no | Uses 16:9 video aspect ratio for participant videos. One of: `enabled`, `disabled`, `default`. | | sortVideoGridAlphabetically | string or null | no | Displays participant videos in alphabetical order. (Overrides the default order-by-join-time behavior.) One of: `enabled`, `disabled`, `default`. | ### ParticipantPermissions | Property | Type | Required | Description | |---|---|---|---| | participantId | string | yes | The user ID / guest link ID / group link ID to which the permissions apply. | | permissions | Permissions | yes | The assigned permissions. | ### RoomQuotasEdit | Property | Type | Required | Description | |---|---|---|---| | activeParticipants | integer (int32) | yes | The maximum number of active participants. Minimum: 0. | | maxVideoTilesPerPage | integer (int32) | yes | The maximum number of video tiles displayed per page. If this value mismatches the defined options in the alfaview client, the next lower value will be chosen. Minimum: 0. | | spectatorOnlyParticipants | integer (int32) | yes | The maximum number of spectator-only participants. Minimum: 0. | ### SubroomCreateListItem | Property | Type | Required | Description | |---|---|---|---| | displayName | string or null | no | The name that is displayed in UIs. If left empty, generic localized names with incremental numbers will be used in the alfaview client (e.g., Group 1, Group 2, etc.) | ### ID | Property | Type | Required | Description | |---|---|---|---| | id | string | yes | A unique identifier. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/CreateRoom) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Update Room `PATCH /v2/rooms/{id}` Operation ID: `UpdateRoom` · Tags: Rooms Updates a room. There are additional endpoints to create, update or delete subrooms, permissions and room features. Nested objects and arrays can only be replaced as a whole, not partially. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The room ID. | ## Request body The updated room fields. Nested objects and arrays can only be replaced as a whole, not partially. Content-Type: `application/json` Schema: RoomUpdate ```json { "defaultPermissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true }, "displayName": "string", "features": { "allowCopyRoomInfo": "enabled", "blockWebclient": "enabled", "centeredVideoGrid": "enabled", "disableCameraOff": "enabled", "disableJoinAndLeaveNotifications": "enabled", "disableMiniWindow": "enabled", "examScreenshare": "enabled", "liveStreaming": "enabled", "localRecording": "enabled", "raiseHands": "enabled", "shareContentOnlyToModerators": "enabled", "showRaisedHandsOnlyToModerators": "enabled", "sixteenByNineVideos": "enabled", "sortVideoGridAlphabetically": "enabled" }, "passcodeRequired": true, "permissions": [ { "participantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "permissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } } ], "quotas": { "activeParticipants": 0, "maxVideoTilesPerPage": 0, "spectatorOnlyParticipants": 0 }, "subrooms": [ { "displayName": "string", "id": "00000000-0000-0000-0000-000000000000" } ], "waitingRoomEnabled": true, "waitingRoomWelcomeNote": "string" } ``` ## Responses ### 204 The request was processed successfully. ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - a permission is set for a guest link or group link ID - `waitingRoomEnabled` or `waitingRoomWelcomeNote` is sent for a room of the type `department` - `id` is invalid - a quota is exceeded Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- a permission is set for a guest link or group link ID\n- `waitingRoomEnabled` or `waitingRoomWelcomeNote` is sent for a room of the type `department`\n- `id` is invalid\n- a quota is exceeded" } ``` ## Schemas ### RoomUpdate | Property | Type | Required | Description | |---|---|---|---| | defaultPermissions | Permissions | no | Optional default permissions for every non-guest user. If default permissions are empty, users will not have any permissions by default. | | displayName | string or null | no | The name that is displayed in UIs. | | features | RoomFeaturesEdit | no | The feature configuration. If no state is specified for a feature, default is assumed. | | passcodeRequired | boolean or null | no | If true, a passcode is required to enter the room. | | permissions | array of ParticipantPermissions or null | no | The user permissions. Permissions not present in this array will be deleted. | | quotas | RoomQuotasEdit | no | The quota information. | | subrooms | array of SubroomEditListItem or null | no | The contained subrooms. Subrooms not present in this list will be deleted. | | waitingRoomEnabled | boolean or null | no | If true, participants will enter the waiting room when joining the room. A moderator can admit waiting participants to join the actual room. Rooms of the type department cannot have a waiting room | | waitingRoomWelcomeNote | string or null | no | The welcome note that is shown to the participants as they join the waiting room. Rooms of the type department cannot have a waiting room. | ### Permissions | Property | Type | Required | Description | |---|---|---|---| | admin | boolean | yes | If true, the associated user is an admin. | | chat | boolean | yes | Permission to chat. | | join | boolean | yes | Permission to join the room. | | promote | boolean | yes | Permission to promote permissions for other users. | | screen | boolean | yes | Permission to share the screen. | | upload | boolean | yes | Permission to upload files. | | video | boolean | yes | Permission to stream video input. | | vip | boolean | yes | Permission to mark users as VIP. | | voice | boolean | yes | Permission to speak. | ### RoomFeaturesEdit | Property | Type | Required | Description | |---|---|---|---| | allowCopyRoomInfo | string or null | no | Allows moderators to copy the contents of the participant list to the clipboard. One of: `enabled`, `disabled`, `default`. | | blockWebclient | string or null | no | Prevents the button to join via browser from being displayed on the guest join page. One of: `enabled`, `disabled`, `default`. | | centeredVideoGrid | string or null | no | Centers participant videos on the stage. One of: `enabled`, `disabled`, `default`. | | disableCameraOff | string or null | no | Prevents the camera from being turned off. One of: `enabled`, `disabled`, `default`. | | disableJoinAndLeaveNotifications | string or null | no | Disables notifications when users join or leave the room. One of: `enabled`, `disabled`, `default`. | | disableMiniWindow | string or null | no | Prevents the displaying of the floating mini window when the alfaview window is minimized. One of: `enabled`, `disabled`, `default`. | | examScreenshare | string or null | no | All monitors of all participants in this room are shared with the moderators. Users with an incompatible version are not able to join the room. Linux users can always join the room due to technical limitations on Linux systems with this feature. One of: `enabled`, `disabled`, `default`. | | liveStreaming | string or null | no | Allows to live stream all video and audio in the alfaview room to external live streaming servers. One of: `enabled`, `disabled`, `default`. | | localRecording | string or null | no | Allows to record all video and audio in the alfaview room. Recorded video files are stored locally. One of: `enabled`, `disabled`, `default`. | | raiseHands | string or null | no | Allows participants and spectators to raise their hand to indicate that they want to say something. One of: `enabled`, `disabled`, `default`. | | shareContentOnlyToModerators | string or null | no | If enabled, only moderators can see active screen shares. One of: `enabled`, `disabled`, `default`. | | showRaisedHandsOnlyToModerators | string or null | no | If enabled, only moderators can see who is currently raising a hand. One of: `enabled`, `disabled`, `default`. | | sixteenByNineVideos | string or null | no | Uses 16:9 video aspect ratio for participant videos. One of: `enabled`, `disabled`, `default`. | | sortVideoGridAlphabetically | string or null | no | Displays participant videos in alphabetical order. (Overrides the default order-by-join-time behavior.) One of: `enabled`, `disabled`, `default`. | ### ParticipantPermissions | Property | Type | Required | Description | |---|---|---|---| | participantId | string | yes | The user ID / guest link ID / group link ID to which the permissions apply. | | permissions | Permissions | yes | The assigned permissions. | ### RoomQuotasEdit | Property | Type | Required | Description | |---|---|---|---| | activeParticipants | integer (int32) | yes | The maximum number of active participants. Minimum: 0. | | maxVideoTilesPerPage | integer (int32) | yes | The maximum number of video tiles displayed per page. If this value mismatches the defined options in the alfaview client, the next lower value will be chosen. Minimum: 0. | | spectatorOnlyParticipants | integer (int32) | yes | The maximum number of spectator-only participants. Minimum: 0. | ### SubroomEditListItem | Property | Type | Required | Description | |---|---|---|---| | displayName | string or null | no | The name that is displayed in UIs. If left empty, generic localized names with incremental numbers will be used in the alfaview client (e.g., Group A, Group B, etc.) | | id | string or null | no | The subroom ID. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/UpdateRoom) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Delete Room `DELETE /v2/rooms/{id}` Operation ID: `DeleteRoom` · Tags: Rooms Deletes a room. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The room ID. | ## Responses ### 204 The request was processed successfully. ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `id` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `id` is invalid" } ``` ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/DeleteRoom) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Subrooms `GET /v2/rooms/{roomId}/subrooms` Operation ID: `ListSubrooms` · Tags: Rooms Lists subrooms. **Required permissions:** - none beyond the access token **Restrictions:** - the room must be visible to the caller: user permission `roomAdmin` or `roomList`, or room permissions in the room - room that is not visible: `404` ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID of the subrooms. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: array of Subroom or null ```json [ { "displayName": "string", "id": "00000000-0000-0000-0000-000000000000", "sort": 0 } ] ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId` is invalid" } ``` ## Schemas ### Subroom | Property | Type | Required | Description | |---|---|---|---| | displayName | string | no | The name that is displayed in UIs. If left empty, generic localized names with incremental numbers will be used in the alfaview client (e.g., Group 1, Group 2, etc.). | | id | string | yes | The subroom ID. | | sort | integer (int32) | yes | A sorting number that determines the position of the subroom in UI room lists. Minimum: 0. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListSubrooms) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Create Subroom `POST /v2/rooms/{roomId}/subrooms` Operation ID: `CreateSubroom` · Tags: Rooms Creates a subroom. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID to assign the subroom to. | ## Request body The subroom to create. Content-Type: `application/json` Schema: SubroomEdit ```json { "displayName": "string" } ``` ## Responses ### 201 The requested resource was created. Content-Type: `application/json` Schema: ID ```json { "id": "00000000-0000-0000-0000-000000000000" } ``` ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview." } ``` ## Schemas ### SubroomEdit | Property | Type | Required | Description | |---|---|---|---| | displayName | string or null | no | The name that is displayed in UIs. If left empty, generic localized names with incremental numbers will be used in the alfaview client (e.g., Group 1, Group 2, etc.). | ### ID | Property | Type | Required | Description | |---|---|---|---| | id | string | yes | A unique identifier. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/CreateSubroom) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Update Subroom `PATCH /v2/rooms/{roomId}/subrooms/{subroomId}` Operation ID: `UpdateSubroom` · Tags: Rooms Updates a subroom. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID the subroom is assigned to. | | subroomId | path | string | yes | The subroom ID. | ## Request body The updated subroom fields. Content-Type: `application/json` Schema: SubroomEdit ```json { "displayName": "string" } ``` ## Responses ### 204 The request was processed successfully. ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room or subroom was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room or subroom was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview." } ``` ## Schemas ### SubroomEdit | Property | Type | Required | Description | |---|---|---|---| | displayName | string or null | no | The name that is displayed in UIs. If left empty, generic localized names with incremental numbers will be used in the alfaview client (e.g., Group 1, Group 2, etc.). | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/UpdateSubroom) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Delete Subroom `DELETE /v2/rooms/{roomId}/subrooms/{subroomId}` Operation ID: `DeleteSubroom` · Tags: Rooms Deletes a subroom. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID the subroom is assigned to. | | subroomId | path | string | yes | The subroom ID. | ## Responses ### 204 The request was processed successfully. ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId` is invalid" } ``` ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/DeleteSubroom) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Get Room Features `GET /v2/rooms/{roomId}/features` Operation ID: `GetRoomFeatures` · Tags: Rooms Gets the room features of a room. **Required permissions:** - none beyond the access token **Restrictions:** - the room must be visible to the caller: user permission `roomAdmin` or `roomList`, or room permissions in the room - room that is not visible: `404` ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: RoomFeatures ```json { "allowCopyRoomInfo": "enabled", "blockWebclient": "enabled", "centeredVideoGrid": "enabled", "disableCameraOff": "enabled", "disableJoinAndLeaveNotifications": "enabled", "disableMiniWindow": "enabled", "examScreenshare": "enabled", "liveStreaming": "enabled", "localRecording": "enabled", "raiseHands": "enabled", "shareContentOnlyToModerators": "enabled", "showRaisedHandsOnlyToModerators": "enabled", "sixteenByNineVideos": "enabled", "sortVideoGridAlphabetically": "enabled" } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId` is invalid" } ``` ## Schemas ### RoomFeatures | Property | Type | Required | Description | |---|---|---|---| | allowCopyRoomInfo | string | yes | Allows moderators to copy the contents of the participant list to the clipboard. One of: `enabled`, `disabled`, `default`. | | blockWebclient | string | yes | Prevents the button to join via browser from being displayed on the guest join page. One of: `enabled`, `disabled`, `default`. | | centeredVideoGrid | string | yes | Centers participant videos on the stage. One of: `enabled`, `disabled`, `default`. | | disableCameraOff | string | yes | Prevents the camera from being turned off. One of: `enabled`, `disabled`, `default`. | | disableJoinAndLeaveNotifications | string | yes | Disables notifications when users join or leave the room. One of: `enabled`, `disabled`, `default`. | | disableMiniWindow | string | yes | Prevents the display of the floating mini window when the alfaview window is minimized. One of: `enabled`, `disabled`, `default`. | | examScreenshare | string | yes | All monitors of all participants in this room are shared with the moderators. Users with an incompatible version are not able to join the room. Linux users can always join the room due to technical limitations on Linux systems with this feature. One of: `enabled`, `disabled`, `default`. | | liveStreaming | string | yes | Allows to live stream all video and audio in the alfaview room to external live streaming servers. One of: `enabled`, `disabled`, `default`. | | localRecording | string | yes | Allows to record all video and audio in the alfaview room. Recorded video files are stored locally. One of: `enabled`, `disabled`, `default`. | | raiseHands | string | yes | Allows participants and spectators to raise their hand to indicate that they want to say something. One of: `enabled`, `disabled`, `default`. | | shareContentOnlyToModerators | string | yes | If enabled, only moderators can see active screen shares. One of: `enabled`, `disabled`, `default`. | | showRaisedHandsOnlyToModerators | string | yes | If enabled, only moderators can see who is currently raising a hand. One of: `enabled`, `disabled`, `default`. | | sixteenByNineVideos | string | yes | Uses 16:9 video aspect ratio for participant videos. One of: `enabled`, `disabled`, `default`. | | sortVideoGridAlphabetically | string | yes | Displays participant videos in alphabetical order. (Overrides the default order-by-join-time behavior.) One of: `enabled`, `disabled`, `default`. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/GetRoomFeatures) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Update Room Features `PATCH /v2/rooms/{roomId}/features` Operation ID: `UpdateRoomFeatures` · Tags: Rooms Updates the room features of a room. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Request body The updated room features. Content-Type: `application/json` Schema: RoomFeaturesEdit ```json { "allowCopyRoomInfo": "enabled", "blockWebclient": "enabled", "centeredVideoGrid": "enabled", "disableCameraOff": "enabled", "disableJoinAndLeaveNotifications": "enabled", "disableMiniWindow": "enabled", "examScreenshare": "enabled", "liveStreaming": "enabled", "localRecording": "enabled", "raiseHands": "enabled", "shareContentOnlyToModerators": "enabled", "showRaisedHandsOnlyToModerators": "enabled", "sixteenByNineVideos": "enabled", "sortVideoGridAlphabetically": "enabled" } ``` ## Responses ### 204 The request was processed successfully. ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview." } ``` ## Schemas ### RoomFeaturesEdit | Property | Type | Required | Description | |---|---|---|---| | allowCopyRoomInfo | string or null | no | Allows moderators to copy the contents of the participant list to the clipboard. One of: `enabled`, `disabled`, `default`. | | blockWebclient | string or null | no | Prevents the button to join via browser from being displayed on the guest join page. One of: `enabled`, `disabled`, `default`. | | centeredVideoGrid | string or null | no | Centers participant videos on the stage. One of: `enabled`, `disabled`, `default`. | | disableCameraOff | string or null | no | Prevents the camera from being turned off. One of: `enabled`, `disabled`, `default`. | | disableJoinAndLeaveNotifications | string or null | no | Disables notifications when users join or leave the room. One of: `enabled`, `disabled`, `default`. | | disableMiniWindow | string or null | no | Prevents the displaying of the floating mini window when the alfaview window is minimized. One of: `enabled`, `disabled`, `default`. | | examScreenshare | string or null | no | All monitors of all participants in this room are shared with the moderators. Users with an incompatible version are not able to join the room. Linux users can always join the room due to technical limitations on Linux systems with this feature. One of: `enabled`, `disabled`, `default`. | | liveStreaming | string or null | no | Allows to live stream all video and audio in the alfaview room to external live streaming servers. One of: `enabled`, `disabled`, `default`. | | localRecording | string or null | no | Allows to record all video and audio in the alfaview room. Recorded video files are stored locally. One of: `enabled`, `disabled`, `default`. | | raiseHands | string or null | no | Allows participants and spectators to raise their hand to indicate that they want to say something. One of: `enabled`, `disabled`, `default`. | | shareContentOnlyToModerators | string or null | no | If enabled, only moderators can see active screen shares. One of: `enabled`, `disabled`, `default`. | | showRaisedHandsOnlyToModerators | string or null | no | If enabled, only moderators can see who is currently raising a hand. One of: `enabled`, `disabled`, `default`. | | sixteenByNineVideos | string or null | no | Uses 16:9 video aspect ratio for participant videos. One of: `enabled`, `disabled`, `default`. | | sortVideoGridAlphabetically | string or null | no | Displays participant videos in alphabetical order. (Overrides the default order-by-join-time behavior.) One of: `enabled`, `disabled`, `default`. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/UpdateRoomFeatures) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Delete Room Features `DELETE /v2/rooms/{roomId}/features` Operation ID: `DeleteRoomFeatures` · Tags: Rooms Sets all the room features of a room to default. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Responses ### 204 The request was processed successfully. ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId` is invalid" } ``` ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/DeleteRoomFeatures) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Room Types `GET /v2/room-types` Operation ID: `ListRoomTypes` · Tags: Rooms Lists room types. **Required permissions:** - none beyond the access token ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: array of RoomTypeData or null ```json [ { "maxActiveParticipants": 0, "maxSpectatorOnlyParticipants": 0, "maxSubRooms": 0, "name": "string", "total": 0, "used": 0 } ] ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ## Schemas ### RoomTypeData | Property | Type | Required | Description | |---|---|---|---| | maxActiveParticipants | integer (int32) | yes | The maximum number of active participants. Minimum: 0. | | maxSpectatorOnlyParticipants | integer (int32) | yes | The maximum number of spectator-only participants. Minimum: 0. | | maxSubRooms | integer (int32) | yes | The maximum number of subrooms. Minimum: 0. | | name | string | yes | The room type name. | | total | integer (int64) | yes | The total quota of this room type. Minimum: 0. | | used | integer (int64) | yes | The number of existing rooms using this room type. Minimum: 0. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListRoomTypes) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Room Permissions `GET /v2/rooms/{roomId}/permissions` Operation ID: `ListPermissions` · Tags: Rooms, Permissions Lists permissions applied in a room. **Required permissions:** - none beyond the access token **Restrictions:** - the room must be visible to the caller: user permission `roomAdmin` or `roomList`, or room permissions in the room - room that is not visible: `404` ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: RoomPermissions ```json { "groupLinkPermissions": [ { "participantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "permissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } } ], "guestLinkPermissions": [ { "participantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "permissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } } ], "userPermissions": [ { "participantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "permissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } } ] } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId` is invalid" } ``` ## Schemas ### RoomPermissions | Property | Type | Required | Description | |---|---|---|---| | groupLinkPermissions | array of ParticipantPermissions or null | no | The permissions of group links for this room. | | guestLinkPermissions | array of ParticipantPermissions or null | no | The permissions of guest links for this room. | | userPermissions | array of ParticipantPermissions or null | no | The permissions of users for this room. | ### ParticipantPermissions | Property | Type | Required | Description | |---|---|---|---| | participantId | string | yes | The user ID / guest link ID / group link ID to which the permissions apply. | | permissions | Permissions | yes | The assigned permissions. | ### Permissions | Property | Type | Required | Description | |---|---|---|---| | admin | boolean | yes | If true, the associated user is an admin. | | chat | boolean | yes | Permission to chat. | | join | boolean | yes | Permission to join the room. | | promote | boolean | yes | Permission to promote permissions for other users. | | screen | boolean | yes | Permission to share the screen. | | upload | boolean | yes | Permission to upload files. | | video | boolean | yes | Permission to stream video input. | | vip | boolean | yes | Permission to mark users as VIP. | | voice | boolean | yes | Permission to speak. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListPermissions) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Create Room Permissions `POST /v2/rooms/{roomId}/permissions` Operation ID: `CreatePermissions` · Tags: Rooms, Permissions Creates permissions for a user that are applied in a room. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Request body The permissions to apply. Content-Type: `application/json` Schema: ParticipantPermissions ```json { "participantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "permissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } } ``` ## Responses ### 204 The request was processed successfully. ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 409 The resource already exists. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Conflict", "status": 409, "detail": "The resource already exists." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `participantId` is a guest link or group link ID - `roomId` or `participantId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `participantId` is a guest link or group link ID\n- `roomId` or `participantId` is invalid" } ``` ## Schemas ### ParticipantPermissions | Property | Type | Required | Description | |---|---|---|---| | participantId | string | yes | The user ID / guest link ID / group link ID to which the permissions apply. | | permissions | Permissions | yes | The assigned permissions. | ### Permissions | Property | Type | Required | Description | |---|---|---|---| | admin | boolean | yes | If true, the associated user is an admin. | | chat | boolean | yes | Permission to chat. | | join | boolean | yes | Permission to join the room. | | promote | boolean | yes | Permission to promote permissions for other users. | | screen | boolean | yes | Permission to share the screen. | | upload | boolean | yes | Permission to upload files. | | video | boolean | yes | Permission to stream video input. | | vip | boolean | yes | Permission to mark users as VIP. | | voice | boolean | yes | Permission to speak. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/CreatePermissions) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Update Room Permissions `PATCH /v2/rooms/{roomId}/permissions/{userId}` Operation ID: `UpdatePermissions` · Tags: Rooms, Permissions Updates permissions of a user that are applied in a room. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | | userId | path | string | yes | The user ID. | ## Request body The updated permissions. Content-Type: `application/json` Schema: PermissionsEdit ```json { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } ``` ## Responses ### 204 The request was processed successfully. ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room or user permission was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room or user permission was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `userId` is a guest link or group link ID Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `userId` is a guest link or group link ID" } ``` ## Schemas ### PermissionsEdit | Property | Type | Required | Description | |---|---|---|---| | admin | boolean or null | no | Permission to act as an administrator. Administrators are allowed to edit or delete rooms, change room settings or features and manage guests in the room. | | chat | boolean or null | no | Permission to chat in the room. | | join | boolean or null | no | Permission to join the room. | | promote | boolean or null | no | Permission to promote permissions for other users for the room. | | screen | boolean or null | no | Permission to share the screen in the room. | | upload | boolean or null | no | Permission to upload files in the room. | | video | boolean or null | no | Permission to stream video input in the room. | | vip | boolean or null | no | Permission to mark users as VIP in the room. | | voice | boolean or null | no | Permission to speak in the room. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/UpdatePermissions) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Delete Room Permissions `DELETE /v2/rooms/{roomId}/permissions/{userId}` Operation ID: `DeletePermissions` · Tags: Rooms, Permissions Deletes permissions of a user that are applied in a room. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | | userId | path | string | yes | The user ID. | ## Responses ### 204 The request was processed successfully. ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `userId` is a guest link or group link ID Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `userId` is a guest link or group link ID" } ``` ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/DeletePermissions) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Participants `GET /v2/rooms/{id}/participants` Operation ID: `ListParticipants` · Tags: Rooms Lists data about the participants who are currently in a room. **Required permissions:** - room permission `join` in the room **Result:** - without the user permission `userAdmin`, `userList` or `userShow`: `displayName` of every participant empty ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The room ID. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: array of SubroomParticipants or null ```json [ { "participants": [ { "displayName": "string", "inWaitingRoom": true, "isDialIn": true, "isGuest": true, "isSpectator": true, "onBreak": true, "userId": "00000000-0000-0000-0000-000000000000" } ], "subRoomId": "00000000-0000-0000-0000-000000000000" } ] ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `id` is not a room ID Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `id` is not a room ID" } ``` ## Schemas ### SubroomParticipants | Property | Type | Required | Description | |---|---|---|---| | participants | array of Participant or null | yes | The participants currently inside the subroom. | | subRoomId | string | yes | The subroom ID. | ### Participant | Property | Type | Required | Description | |---|---|---|---| | displayName | string | yes | The name that is displayed in UIs. | | inWaitingRoom | boolean | yes | If true, the user is not yet in the subroom but in the waiting room. | | isDialIn | boolean | yes | If true, the user is a dial-in user (connected via phone). | | isGuest | boolean | yes | If true, the user is a guest user. | | isSpectator | boolean | yes | If true, the user is a spectator. | | onBreak | boolean | yes | If true, the user is currently on a break. | | userId | string | yes | The user ID. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListParticipants) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Get Language Settings `GET /v2/rooms/{roomId}/language-settings` Operation ID: `GetLanguageSettings` · Tags: Rooms Gets the language settings of a room. **Required permissions:** - none beyond the access token ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: LanguageSettings ```json { "defaultSpokenLanguage": "string", "targetTranscriptionLanguages": [ "string" ], "transcriptionEnabled": true, "transcriptionType": "simple_transcription" } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId` is invalid" } ``` ## Schemas ### LanguageSettings | Property | Type | Required | Description | |---|---|---|---| | defaultSpokenLanguage | string | no | The default spoken language. A room without a default spoken language transcribes in English. To get the available transcription languages, refer to the [List Available Languages](/v2/docs/openapi#/operations/ListAvailableLanguages) endpoint. | | targetTranscriptionLanguages | array of string or null | no | The languages that the translation feature is translating the spoken words to. The translation into all of these languages is happening permanently as long as the feature is enabled, even if no participant has selected that language. To get the available transcription languages, refer to the [List Available Languages](/v2/docs/openapi#/operations/ListAvailableLanguages) endpoint. | | transcriptionEnabled | boolean | yes | If true, the transcription feature is enabled in this room. | | transcriptionType | string | yes | The type of transcription as selectable for room administrators in the client. One of: `simple_transcription`, `digital_interpreter`. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/GetLanguageSettings) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Update Language Settings `PATCH /v2/rooms/{roomId}/language-settings` Operation ID: `UpdateLanguageSettings` · Tags: Rooms Updates the language settings of a room. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` or `promote` in the room **Restrictions:** - changing `targetTranscriptionLanguages`: user permission `roomAdmin` or room permission `admin` - changing `transcriptionEnabled`: user permission `roomAdmin` ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Request body The updated settings for the transcription and translation features. Content-Type: `application/json` Schema: LanguageSettingsEdit ```json { "defaultSpokenLanguage": "string", "targetTranscriptionLanguages": [ "string" ], "transcriptionEnabled": true, "transcriptionType": "simple_transcription" } ``` ## Responses ### 204 The request was processed successfully. ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `transcriptionType` is sent without `defaultSpokenLanguage` and the room has no default spoken language - `defaultSpokenLanguage` or `targetTranscriptionLanguages` holds a value that is not a valid language code - `roomId` is invalid - a quota is exceeded Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `transcriptionType` is sent without `defaultSpokenLanguage` and the room has no default spoken language\n- `defaultSpokenLanguage` or `targetTranscriptionLanguages` holds a value that is not a valid language code\n- `roomId` is invalid\n- a quota is exceeded" } ``` ## Schemas ### LanguageSettingsEdit | Property | Type | Required | Description | |---|---|---|---| | defaultSpokenLanguage | string or null | no | The default spoken language. A room without a default spoken language transcribes in English. To get the available transcription languages, refer to the [List Available Languages](/v2/docs/openapi#/operations/ListAvailableLanguages) endpoint. Minimum length: 1. | | targetTranscriptionLanguages | array of string or null | no | The languages that the spoken words are translated into. The translation into all of these languages is happening continuously as long as the feature is enabled, even if no participant has selected that language. To get the available transcription languages, refer to the [List Available Languages](/v2/docs/openapi#/operations/ListAvailableLanguages) endpoint. | | transcriptionEnabled | boolean or null | no | If true, the transcription feature is enabled in this room. | | transcriptionType | string or null | no | The type of transcription as selectable for room administrators in the client. One of: `simple_transcription`, `digital_interpreter`. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/UpdateLanguageSettings) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Available Languages `GET /v2/languages` Operation ID: `ListAvailableLanguages` · Tags: Rooms Lists the languages available for transcription and translation. **Required permissions:** - none beyond the access token ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: Languages ```json { "transcription": [ "string" ], "translation": [ { "in": "string", "out": [ "string" ] } ] } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ## Schemas ### Languages | Property | Type | Required | Description | |---|---|---|---| | transcription | array of string or null | no | The available transcription languages. | | translation | array of Translation or null | no | The available language pairings for translation. | ### Translation | Property | Type | Required | Description | |---|---|---|---| | in | string | yes | The spoken language that should be translated. | | out | array of string or null | yes | The available languages the translation feature can translate the spoken language into. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListAvailableLanguages) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Regenerate Passcode `POST /v2/rooms/{roomId}/passcode` Operation ID: `RegeneratePasscode` · Tags: Rooms Generates a new passcode for a room. Passcodes are always generated, regardless of whether a passcode is required for the room. To require a passcode for a room, update the room. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: Passcode ```json { "passcode": "string", "required": true } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId` is invalid" } ``` ## Schemas ### Passcode | Property | Type | Required | Description | |---|---|---|---| | passcode | string | yes | The passcode for a room. | | required | boolean | yes | If true, a passcode is required to enter the room. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/RegeneratePasscode) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Get Passcode `GET /v2/rooms/{roomId}/passcode` Operation ID: `GetPasscode` · Tags: Rooms Gets the passcode for a room. Passcodes can be set regardless of whether a passcode is required for the room. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: Passcode ```json { "passcode": "string", "required": true } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Room was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Room was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId` is invalid" } ``` ## Schemas ### Passcode | Property | Type | Required | Description | |---|---|---|---| | passcode | string | yes | The passcode for a room. | | required | boolean | yes | If true, a passcode is required to enter the room. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/GetPasscode) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Get File Share Settings `GET /v2/rooms/{roomId}/file-share-settings` Operation ID: `GetRoomFileShareSettings` · Tags: Rooms, Files Gets the file share settings of a room. **Required permissions** (one of): - user permission `roomAdmin` - room permission `join`, `admin` or `promote` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: RoomSettings ```json { "defaultAccessLevel": "hidden", "enabled": true, "participantsCanUpload": true } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId` is invalid" } ``` ## Schemas ### RoomSettings | Property | Type | Required | Description | |---|---|---|---| | defaultAccessLevel | string | yes | The default access level for new files. One of: `hidden`, `visible`, `downloadable`. | | enabled | boolean | yes | If true, the file share feature is enabled in the room. This setting can be set regardless if the feature is activated in the company. If the feature is deactivated company-wide, the feature will not be available for rooms which have the feature enabled. | | participantsCanUpload | boolean | yes | If true, participants are allowed to upload files. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/GetRoomFileShareSettings) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Update File Share Settings `PATCH /v2/rooms/{roomId}/file-share-settings` Operation ID: `UpdateRoomFileShareSettings` · Tags: Rooms, Files Updates the file share settings of a room. **Required permissions** (one of): - user permission `roomAdmin` - room permission `admin` or `promote` in the room **Restrictions:** - body with `enabled`: user permission `roomAdmin` or room permission `admin` ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Request body The updated file share settings. Content-Type: `application/json` Schema: RoomSettingsUpdate ```json { "defaultAccessLevel": "hidden", "enabled": true, "participantsCanUpload": true } ``` ## Responses ### 204 The request was processed successfully. ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview." } ``` ## Schemas ### RoomSettingsUpdate | Property | Type | Required | Description | |---|---|---|---| | defaultAccessLevel | string or null | no | The default access level for new files. One of: `hidden`, `visible`, `downloadable`. | | enabled | boolean | no | If true, the file share feature is enabled in the room. This setting can be set regardless of whether the feature is activated in the company, but the feature activation can still be overruled by the company file share settings. Those are only accessible via the admin web application. | | participantsCanUpload | boolean | no | If true, participants are allowed to upload files. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/UpdateRoomFileShareSettings) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Get File Share Limits `GET /v2/rooms/{roomId}/file-share-limits` Operation ID: `GetRoomFileShareLimits` · Tags: Rooms, Files Gets the storage limits for file sharing in a room. **Required permissions** (one of): - user permission `roomAdmin` - room permission `join`, `admin` or `promote` in the room ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: RoomLimits ```json { "maxFiles": 0, "maxTotalBytes": 0, "remainingFiles": 0, "remainingTotalBytes": 0 } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId` is invalid" } ``` ## Schemas ### RoomLimits | Property | Type | Required | Description | |---|---|---|---| | maxFiles | integer (int32) | yes | The maximum file count in a room. | | maxTotalBytes | integer (int64) | yes | The maximum total size of all files in a room. | | remainingFiles | integer (int32) | yes | The remaining allowed file count in a room. | | remainingTotalBytes | integer (int64) | yes | The remaining allowed total file size in a room. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/GetRoomFileShareLimits) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Own Meetings `GET /v2/meetings` Operation ID: `ListOwnMeetings` · Tags: Meetings Lists meetings created by the user authenticated via the access token in the Authorization header. Every instance of a recurring meeting in the range is listed as its own entry with the same ID, starting with the ongoing or next instance. Past instances are not listed. Instances are only listed up to 90 days after the later of `from` and the time of the request, and not more than 5 years after the time of the request. Without `from` and `to`, the instances of the next 90 days are listed. Instances outside these limits are omitted. **Required permissions:** - none beyond the access token **Restrictions:** - guest access token: rejected ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | from | query | string (date-time) | no | The earliest time at which the meeting is scheduled to be ongoing. | | to | query | string (date-time) | no | The latest time at which the meeting is scheduled to be ongoing. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: array of Meeting or null ```json [ { "agenda": "string", "canJoin": true, "canJoinAfter": "2024-09-22T12:34:56Z", "canceledAt": "2024-09-22T12:34:56Z", "createdAt": "2024-09-22T12:34:56Z", "createdBy": "00000000-0000-0000-0000-000000000000", "earlyAccessMinutes": 0, "end": "2024-09-22T12:34:56Z", "externallyManaged": true, "groupLinks": { "key": "string" }, "guestLinks": [ "string" ], "id": "00000000-0000-0000-0000-000000000000", "nextInstance": "2024-09-22T12:34:56Z", "recurrenceRule": "FREQ=WEEKLY;BYDAY=MO", "roomAvailable": true, "start": "2024-09-22T12:34:56Z", "state": "scheduled", "timezone": "Europe/Berlin", "title": "string" } ] ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `from` is after `to` (checked only when `to` is sent) Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `from` is after `to` (checked only when `to` is sent)" } ``` ## Schemas ### Meeting | Property | Type | Required | Description | |---|---|---|---| | agenda | string | no | The meeting agenda. HTML is not allowed. | | canJoin | boolean | yes | If true, participants can join the meeting at the time of the request. | | canJoinAfter | string (date-time) | no | The timestamp of when participants can join the meeting. Will be omitted if the meeting has ended. | | canceledAt | string (date-time) | no | The timestamp of when the meeting was canceled (if it was canceled). | | createdAt | string (date-time) | yes | The creation timestamp. | | createdBy | string | yes | The creator user ID. | | earlyAccessMinutes | integer (int64) | no | The duration of the early access period to the meeting room in minutes. In this period, invitees without moderator or administrator permissions can join the meeting. The meeting creator can always join 1 hour and invitees with moderator or administrator permissions 30 minutes before the meeting starts. | | end | string (date-time) | yes | The end time. For a recurring meeting, the end of the listed instance in a list, and the end of the first instance otherwise. | | externallyManaged | boolean | no | If true, an external system, such as the alfaview Outlook add-in, manages the recurring meeting, and participants can join it at any time. Omitted for a non-recurring meeting. | | groupLinks | map of string | no | The group links for the meeting. | | guestLinks | array of string or null | no | The guest links for the meeting. | | id | string | yes | The meeting ID. It can also be used as a roomId to access the meeting room. | | nextInstance | string (date-time) | no | The start of the ongoing or next instance of a recurring meeting. Omitted for a non-recurring meeting, for a recurring meeting without an ongoing or next instance, and in a list. | | recurrenceRule | string | no | The recurrence rule of a recurring meeting as an RFC 5545 RRULE without the prefix RRULE:. Omitted for a non-recurring meeting. | | roomAvailable | boolean | yes | If true, the meeting room is currently available. | | start | string (date-time) | yes | The start time. For a recurring meeting, the start of the listed instance in a list, and the start of the first instance otherwise. | | state | string | yes | The current state. One of: `scheduled`, `ongoing`, `ended`, `canceled`. | | timezone | string | yes | The time zone used for time information. | | title | string | yes | The meeting title. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListOwnMeetings) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Meeting Invitations `GET /v2/meetings/invitations` Operation ID: `ListInvitedMeetings` · Tags: Meetings Lists the meetings that the user authenticated via the access token in the Authorization header is invited to. Every instance of a recurring meeting in the range is listed as its own entry with the same ID, starting with the ongoing or next instance. Past instances are not listed. Instances are only listed up to 90 days after the later of `from` and the time of the request, and not more than 5 years after the time of the request. Without `from` and `to`, the instances of the next 90 days are listed. Instances outside these limits are omitted. **Required permissions:** - none beyond the access token **Restrictions:** - guest access token: rejected ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | from | query | string (date-time) | no | The earliest time at which the meeting is scheduled to be ongoing. | | to | query | string (date-time) | no | The latest time at which the meeting is scheduled to be ongoing. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: array of MeetingInvitation or null ```json [ { "agenda": "string", "canJoin": true, "canceledAt": "2024-09-22T12:34:56Z", "createdBy": "00000000-0000-0000-0000-000000000000", "earlyAccessMinutes": 0, "end": "2024-09-22T12:34:56Z", "id": "00000000-0000-0000-0000-000000000000", "start": "2024-09-22T12:34:56Z", "timezone": "Europe/Berlin", "title": "string" } ] ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `from` is after `to` Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `from` is after `to`" } ``` ## Schemas ### MeetingInvitation | Property | Type | Required | Description | |---|---|---|---| | agenda | string | no | The meeting agenda. HTML is not allowed. | | canJoin | boolean | yes | If true, the requesting user can join the meeting, or the listed instance of a recurring meeting, at the time of the request. | | canceledAt | string (date-time) | no | The timestamp of when the meeting was canceled (if it was canceled). | | createdBy | string | yes | The creator user ID. | | earlyAccessMinutes | integer (int64) | no | The duration in minutes before the meeting start in which the requesting user can join the meeting. | | end | string (date-time) | yes | The end time. For a recurring meeting, the end of the listed instance. | | id | string | yes | The meeting ID. It can also be used as a roomId to access the meeting room. | | start | string (date-time) | yes | The start time. For a recurring meeting, the start of the listed instance. | | timezone | string | yes | The time zone used for time information. | | title | string | yes | The meeting title. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListInvitedMeetings) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Get Own Meeting `GET /v2/meetings/{id}` Operation ID: `GetOwnMeeting` · Tags: Meetings Gets a meeting created by the user authenticated via the access token in the Authorization header. **Required permissions:** - none beyond the access token **Restrictions:** - guest access token: rejected - only the meeting's creator ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The meeting ID. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: Meeting ```json { "agenda": "string", "canJoin": true, "canJoinAfter": "2024-09-22T12:34:56Z", "canceledAt": "2024-09-22T12:34:56Z", "createdAt": "2024-09-22T12:34:56Z", "createdBy": "00000000-0000-0000-0000-000000000000", "earlyAccessMinutes": 0, "end": "2024-09-22T12:34:56Z", "externallyManaged": true, "groupLinks": { "key": "string" }, "guestLinks": [ "string" ], "id": "00000000-0000-0000-0000-000000000000", "nextInstance": "2024-09-22T12:34:56Z", "recurrenceRule": "FREQ=WEEKLY;BYDAY=MO", "roomAvailable": true, "start": "2024-09-22T12:34:56Z", "state": "scheduled", "timezone": "Europe/Berlin", "title": "string" } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Meeting was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Meeting was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `id` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `id` is invalid" } ``` ## Schemas ### Meeting | Property | Type | Required | Description | |---|---|---|---| | agenda | string | no | The meeting agenda. HTML is not allowed. | | canJoin | boolean | yes | If true, participants can join the meeting at the time of the request. | | canJoinAfter | string (date-time) | no | The timestamp of when participants can join the meeting. Will be omitted if the meeting has ended. | | canceledAt | string (date-time) | no | The timestamp of when the meeting was canceled (if it was canceled). | | createdAt | string (date-time) | yes | The creation timestamp. | | createdBy | string | yes | The creator user ID. | | earlyAccessMinutes | integer (int64) | no | The duration of the early access period to the meeting room in minutes. In this period, invitees without moderator or administrator permissions can join the meeting. The meeting creator can always join 1 hour and invitees with moderator or administrator permissions 30 minutes before the meeting starts. | | end | string (date-time) | yes | The end time. For a recurring meeting, the end of the listed instance in a list, and the end of the first instance otherwise. | | externallyManaged | boolean | no | If true, an external system, such as the alfaview Outlook add-in, manages the recurring meeting, and participants can join it at any time. Omitted for a non-recurring meeting. | | groupLinks | map of string | no | The group links for the meeting. | | guestLinks | array of string or null | no | The guest links for the meeting. | | id | string | yes | The meeting ID. It can also be used as a roomId to access the meeting room. | | nextInstance | string (date-time) | no | The start of the ongoing or next instance of a recurring meeting. Omitted for a non-recurring meeting, for a recurring meeting without an ongoing or next instance, and in a list. | | recurrenceRule | string | no | The recurrence rule of a recurring meeting as an RFC 5545 RRULE without the prefix RRULE:. Omitted for a non-recurring meeting. | | roomAvailable | boolean | yes | If true, the meeting room is currently available. | | start | string (date-time) | yes | The start time. For a recurring meeting, the start of the listed instance in a list, and the start of the first instance otherwise. | | state | string | yes | The current state. One of: `scheduled`, `ongoing`, `ended`, `canceled`. | | timezone | string | yes | The time zone used for time information. | | title | string | yes | The meeting title. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/GetOwnMeeting) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Create Meeting `POST /v2/meetings` Operation ID: `CreateMeeting` · Tags: Meetings Creates a meeting. **Required permissions:** - none beyond the access token **Restrictions:** - guest access token: rejected ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Request body The meeting to create. Content-Type: `application/json` Schema: MeetingCreate ```json { "agenda": "string", "earlyAccessMinutes": 0, "end": "2024-09-22T12:34:56Z", "groupLinks": [ { "description": "string", "dialInAllowed": true, "permissionGroupId": "00000000-0000-0000-0000-000000000000", "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-23T12:34:56Z" } ], "guestLinks": [ { "dialInAllowed": true, "displayName": "string", "emailAddress": "user@example.com", "locale": "de-DE", "permissionGroupId": "00000000-0000-0000-0000-000000000000", "sendEmail": true, "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-23T12:34:56Z" } ], "invitedUsers": [ { "permissionGroupId": "00000000-0000-0000-0000-000000000000", "userId": "00000000-0000-4000-a000-000000000001" } ], "passcodeRequired": true, "recurrenceRule": "FREQ=WEEKLY;BYDAY=MO", "roomFeatures": { "allowCopyRoomInfo": "enabled", "blockWebclient": "enabled", "centeredVideoGrid": "enabled", "disableCameraOff": "enabled", "disableJoinAndLeaveNotifications": "enabled", "disableMiniWindow": "enabled", "examScreenshare": "enabled", "liveStreaming": "enabled", "localRecording": "enabled", "raiseHands": "enabled", "shareContentOnlyToModerators": "enabled", "showRaisedHandsOnlyToModerators": "enabled", "sixteenByNineVideos": "enabled", "sortVideoGridAlphabetically": "enabled" }, "start": "2024-09-22T12:34:56Z", "subroomDisplayNames": [ "string" ], "timezone": "Europe/Berlin", "title": "string", "waitingRoomEnabled": true, "waitingRoomWelcomeNote": "string" } ``` ## Responses ### 201 The requested resource was created. The returned ID can also be used as a `roomId` to access the meeting room. Content-Type: `application/json` Schema: ID ```json { "id": "00000000-0000-0000-0000-000000000000" } ``` ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `permissionGroupId` is invalid - a quota is exceeded - a `userId` of `invitedUsers` is not a UUID or is listed twice - `recurrenceRule` is blank - `recurrenceRule` is longer than 1024 characters with the prefix `RRULE:`, or 1018 characters without it - `recurrenceRule` is no valid RRULE - the frequency of `recurrenceRule` is below `DAILY` - `recurrenceRule` has a `BYHOUR`, `BYMINUTE` or `BYSECOND` part - `UNTIL` of `recurrenceRule` is not in UTC - `COUNT` or `INTERVAL` of `recurrenceRule` is below 1 - `recurrenceRule` combines `UNTIL` with `COUNT` - the series of `recurrenceRule` has no ongoing or future instance, such as with an `UNTIL` in the past - `end` is in the past, also when `recurrenceRule` has later instances Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `permissionGroupId` is invalid\n- a quota is exceeded\n- a `userId` of `invitedUsers` is not a UUID or is listed twice\n- `recurrenceRule` is blank\n- `recurrenceRule` is longer than 1024 characters with the prefix `RRULE:`, or 1018 characters without it\n- `recurrenceRule` is no valid RRULE\n- the frequency of `recurrenceRule` is below `DAILY`\n- `recurrenceRule` has a `BYHOUR`, `BYMINUTE` or `BYSECOND` part\n- `UNTIL` of `recurrenceRule` is not in UTC\n- `COUNT` or `INTERVAL` of `recurrenceRule` is below 1\n- `recurrenceRule` combines `UNTIL` with `COUNT`\n- the series of `recurrenceRule` has no ongoing or future instance, such as with an `UNTIL` in the past\n- `end` is in the past, also when `recurrenceRule` has later instances" } ``` ## Schemas ### MeetingCreate | Property | Type | Required | Description | |---|---|---|---| | agenda | string or null | no | The meeting agenda. HTML is not allowed. | | earlyAccessMinutes | integer (int64) or null | no | The duration of the early access period to the meeting room in minutes. In this period, invitees without moderator or administrator permissions can join the meeting. The meeting creator can always join 1 hour and invitees with moderator or administrator permissions 30 minutes before the meeting starts. Minimum: 0. Maximum: 30. | | end | string (date-time) | yes | The end time. | | groupLinks | array of GroupLinkCreate or null | no | The group links for the meeting. They are created in addition to the four default group links (moderator, participant, guest, spectator), which every meeting gets. | | guestLinks | array of GuestLinkCreate or null | no | The guest links for the meeting. | | invitedUsers | array of MeetingUserInvitation or null | no | The registered users to invite to the meeting. Every invited user receives an invitation email. | | passcodeRequired | boolean or null | no | If true, a passcode is required to enter the meeting room. | | recurrenceRule | string or null | no | The recurrence rule that makes the meeting recurring, as an RFC 5545 RRULE with times in UTC. The prefix RRULE: is optional. A DTSTART line may precede the rule only together with the prefix RRULE:. start is the start of the first instance, and end minus start is the duration of each instance. | | roomFeatures | RoomFeaturesEdit | yes | The feature configuration. If no state is specified for a feature, default is assumed. | | start | string (date-time) | yes | The start time. | | subroomDisplayNames | array of string or null | no | The names of the subrooms of the meeting room that are displayed in UIs. | | timezone | string | yes | The time zone used for time information. | | title | string | yes | The meeting title. | | waitingRoomEnabled | boolean | yes | If true, participants will enter the waiting room when joining the room. A moderator can admit waiting participants to join the actual room. | | waitingRoomWelcomeNote | string or null | no | The welcome note that is shown to the participants as they join the waiting room. | ### GroupLinkCreate | Property | Type | Required | Description | |---|---|---|---| | description | string | yes | The group link description. | | dialInAllowed | boolean | yes | If true, the group link is allowed to be used via dial-in. | | permissionGroupId | string | yes | The permission group ID. | | validFrom | string (date-time) or null | no | The group link is valid from this point in time. | | validUntil | string (date-time) or null | no | The group link is valid until this point in time. | ### GuestLinkCreate | Property | Type | Required | Description | |---|---|---|---| | dialInAllowed | boolean | yes | If true, the guest link is allowed to be used via dial-in. | | displayName | string | yes | The name of the guest that is displayed in UIs. | | emailAddress | string (email) | yes | The email address associated with the guest link. | | locale | string | yes | The locale settings (e.g., UI language) for the guest link. One of: `de-DE`, `en-US`. | | permissionGroupId | string | yes | The permission group ID. | | sendEmail | boolean | no | If true, an information email with the guest link will be sent to the associated email address. | | validFrom | string (date-time) | no | The guest link is valid from this point in time. | | validUntil | string (date-time) | no | The guest link is valid until this point in time. | ### MeetingUserInvitation | Property | Type | Required | Description | |---|---|---|---| | permissionGroupId | string | yes | The permission group ID. | | userId | string | yes | The ID of the invited registered user. | ### RoomFeaturesEdit | Property | Type | Required | Description | |---|---|---|---| | allowCopyRoomInfo | string or null | no | Allows moderators to copy the contents of the participant list to the clipboard. One of: `enabled`, `disabled`, `default`. | | blockWebclient | string or null | no | Prevents the button to join via browser from being displayed on the guest join page. One of: `enabled`, `disabled`, `default`. | | centeredVideoGrid | string or null | no | Centers participant videos on the stage. One of: `enabled`, `disabled`, `default`. | | disableCameraOff | string or null | no | Prevents the camera from being turned off. One of: `enabled`, `disabled`, `default`. | | disableJoinAndLeaveNotifications | string or null | no | Disables notifications when users join or leave the room. One of: `enabled`, `disabled`, `default`. | | disableMiniWindow | string or null | no | Prevents the displaying of the floating mini window when the alfaview window is minimized. One of: `enabled`, `disabled`, `default`. | | examScreenshare | string or null | no | All monitors of all participants in this room are shared with the moderators. Users with an incompatible version are not able to join the room. Linux users can always join the room due to technical limitations on Linux systems with this feature. One of: `enabled`, `disabled`, `default`. | | liveStreaming | string or null | no | Allows to live stream all video and audio in the alfaview room to external live streaming servers. One of: `enabled`, `disabled`, `default`. | | localRecording | string or null | no | Allows to record all video and audio in the alfaview room. Recorded video files are stored locally. One of: `enabled`, `disabled`, `default`. | | raiseHands | string or null | no | Allows participants and spectators to raise their hand to indicate that they want to say something. One of: `enabled`, `disabled`, `default`. | | shareContentOnlyToModerators | string or null | no | If enabled, only moderators can see active screen shares. One of: `enabled`, `disabled`, `default`. | | showRaisedHandsOnlyToModerators | string or null | no | If enabled, only moderators can see who is currently raising a hand. One of: `enabled`, `disabled`, `default`. | | sixteenByNineVideos | string or null | no | Uses 16:9 video aspect ratio for participant videos. One of: `enabled`, `disabled`, `default`. | | sortVideoGridAlphabetically | string or null | no | Displays participant videos in alphabetical order. (Overrides the default order-by-join-time behavior.) One of: `enabled`, `disabled`, `default`. | ### ID | Property | Type | Required | Description | |---|---|---|---| | id | string | yes | A unique identifier. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/CreateMeeting) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Update Meeting `PATCH /v2/meetings/{id}` Operation ID: `UpdateMeeting` · Tags: Meetings Updates a meeting. **Required permissions:** - none beyond the access token **Restrictions:** - guest access token: rejected - only the meeting's creator ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The meeting ID. | ## Request body The updated meeting. Content-Type: `application/json` Schema: MeetingUpdate ```json { "agenda": "string", "earlyAccessMinutes": 0, "end": "2024-09-22T12:34:56Z", "recurrenceRule": "FREQ=WEEKLY;BYDAY=MO", "start": "2024-09-22T12:34:56Z", "timezone": "Europe/Berlin", "title": "string" } ``` ## Responses ### 204 The request was processed successfully. ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Meeting was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Meeting was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `id` is invalid - the request changes no field, such as with the body `{}` - `recurrenceRule` is blank - `recurrenceRule` is longer than 1024 characters with the prefix `RRULE:`, or 1018 characters without it - `recurrenceRule` is no valid RRULE - the frequency of `recurrenceRule` is below `DAILY` - `recurrenceRule` has a `BYHOUR`, `BYMINUTE` or `BYSECOND` part - `UNTIL` of `recurrenceRule` is not in UTC - `COUNT` or `INTERVAL` of `recurrenceRule` is below 1 - `recurrenceRule` combines `UNTIL` with `COUNT` - the series of `recurrenceRule` has no ongoing or future instance, such as with an `UNTIL` in the past - the request changes more than `title` and `agenda` of a recurring meeting that is not externally managed and has an ongoing instance, has ended or is canceled - the request sets `recurrenceRule` on a meeting that is not externally managed and has an ongoing instance, has ended or is canceled - the request changes a non-recurring meeting that is ongoing, has ended or is canceled Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `id` is invalid\n- the request changes no field, such as with the body `{}`\n- `recurrenceRule` is blank\n- `recurrenceRule` is longer than 1024 characters with the prefix `RRULE:`, or 1018 characters without it\n- `recurrenceRule` is no valid RRULE\n- the frequency of `recurrenceRule` is below `DAILY`\n- `recurrenceRule` has a `BYHOUR`, `BYMINUTE` or `BYSECOND` part\n- `UNTIL` of `recurrenceRule` is not in UTC\n- `COUNT` or `INTERVAL` of `recurrenceRule` is below 1\n- `recurrenceRule` combines `UNTIL` with `COUNT`\n- the series of `recurrenceRule` has no ongoing or future instance, such as with an `UNTIL` in the past\n- the request changes more than `title` and `agenda` of a recurring meeting that is not externally managed and has an ongoing instance, has ended or is canceled\n- the request sets `recurrenceRule` on a meeting that is not externally managed and has an ongoing instance, has ended or is canceled\n- the request changes a non-recurring meeting that is ongoing, has ended or is canceled" } ``` ## Schemas ### MeetingUpdate | Property | Type | Required | Description | |---|---|---|---| | agenda | string or null | no | The meeting agenda. HTML is not allowed. | | earlyAccessMinutes | integer (int64) or null | no | The duration of the early access period to the meeting room in minutes. In this period, invitees without moderator or administrator permissions can join the meeting. The meeting creator can always join 1 hour and invitees with moderator or administrator permissions 30 minutes before the meeting starts. Minimum: 0. Maximum: 30. | | end | string (date-time) or null | no | The end time. For a recurring meeting, or with recurrenceRule, the end of the first instance, and end minus start is the duration of each instance. | | recurrenceRule | string or null | no | Sets the recurrence rule of a non-recurring meeting, which makes it recurring, or replaces the rule of a recurring meeting. Without start, the current start of the meeting becomes the start of the first instance. A recurring meeting cannot become non-recurring again, because the rule cannot be removed. The prefix RRULE: is optional. A DTSTART line may precede the rule only together with the prefix RRULE:. | | start | string (date-time) or null | no | The start time. For a recurring meeting, or with recurrenceRule, the start of the first instance. | | timezone | string or null | no | The time zone used for time information. | | title | string or null | no | The meeting title. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/UpdateMeeting) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Cancel Meeting `POST /v2/meetings/{id}/cancellation` Operation ID: `CancelMeeting` · Tags: Meetings Cancels a meeting. Optionally, a notification email is sent to the creator and all invitees. **Required permissions:** - none beyond the access token **Restrictions:** - guest access token: rejected - only the meeting's creator ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The meeting ID. | ## Request body Additional data needed for the cancellation. Content-Type: `application/json` Schema: MeetingCancellation ```json { "reason": "string", "sendNotification": true } ``` ## Responses ### 204 The request was processed successfully. ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Meeting was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Meeting was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `id` is invalid - the meeting is already canceled Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `id` is invalid\n- the meeting is already canceled" } ``` ## Schemas ### MeetingCancellation | Property | Type | Required | Description | |---|---|---|---| | reason | string or null | no | The reason for the cancellation. HTML is not allowed. | | sendNotification | boolean | yes | If true, a notification email will be sent to the creator and all invitees. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/CancelMeeting) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Guest Links `GET /v2/guest-links` Operation ID: `ListGuestLinks` · Tags: Guests Lists guest links. **Required permissions** (all of): - user permission `roomList` - user permission `roomAdmin` **Result:** - all guest links of the company, except the links of meetings that the caller did not create ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | pageToken | query | string | no | For pagination: Pass the nextPageToken from the last successful request to obtain the next page. Omit on first request. | | limit | query | integer (int32) | no | For pagination: Limit the number of returned guest links. Minimum: 0. Maximum: 500. Default: `100`. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: PaginatedBodyListGuestLink ```json { "data": [ { "accessKey": "string", "createdAt": "2024-09-22T12:34:56Z", "createdBy": "string", "dialInAllowed": true, "dialInCode": "string", "displayName": "string", "emailAddress": "user@example.com", "id": "00000000-0000-0000-0000-000000000000", "joinUrl": "string", "locale": "de-DE", "origin": "string", "permissionGroupId": "00000000-0000-0000-0000-000000000000", "roomId": "00000000-0000-0000-0000-000000000000", "userId": "00000000-0000-0000-0000-000000000000", "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-23T12:34:56Z" } ], "nextPageToken": "string" } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `pageToken` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `pageToken` is invalid" } ``` ## Schemas ### PaginatedBodyListGuestLink | Property | Type | Required | Description | |---|---|---|---| | data | array of GuestLink or null | yes | The actual data for a paginated request. | | nextPageToken | string | no | A token that can be used to obtain the next page of the requested data. | ### GuestLink | Property | Type | Required | Description | |---|---|---|---| | accessKey | string | yes | The access key. | | createdAt | string (date-time) | yes | The creation timestamp. | | createdBy | string | yes | The creator user ID. | | dialInAllowed | boolean | yes | If true, the guest link is allowed to be used via dial-in. | | dialInCode | string | yes | The dial-in authentication code. | | displayName | string | no | The name of the participant using the guest link that is displayed in UIs. | | emailAddress | string (email) | yes | The email address associated with the guest link. | | id | string | yes | The guest link ID. | | joinUrl | string | yes | The URL of the room join page. That page allows to choose whether to join the room with the native client or the web client | | locale | string | yes | The locale settings (e.g., UI language). One of: `de-DE`, `en-US`, `unknown`. | | origin | string | yes | String that specifies the creator or reason for the creation of the guest link (e.g., my external tool or initial meeting delayed). | | permissionGroupId | string | yes | The permission group ID. | | roomId | string | yes | The room ID. | | userId | string | yes | The user ID of the guest using the guest link. It matches the userId in attendance reports. | | validFrom | string (date-time) | no | The guest link is valid from this point in time. | | validUntil | string (date-time) | no | The guest link is valid until this point in time. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListGuestLinks) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Guest Links for a Room `GET /v2/rooms/{roomId}/guest-links` Operation ID: `ListGuestLinksForRoom` · Tags: Guests Lists guest links for a room. **Required permissions:** - normal room: one of user permission `roomAdmin` or room permission `admin` in the room - meeting room: the caller must be the meeting's creator ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | | pageToken | query | string | no | For pagination: Pass the nextPageToken from the last successful request to obtain the next page. Omit on first request. | | limit | query | integer (int32) | no | For pagination: Limit the number of returned guest links. Minimum: 0. Maximum: 500. Default: `100`. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: PaginatedBodyListGuestLink ```json { "data": [ { "accessKey": "string", "createdAt": "2024-09-22T12:34:56Z", "createdBy": "string", "dialInAllowed": true, "dialInCode": "string", "displayName": "string", "emailAddress": "user@example.com", "id": "00000000-0000-0000-0000-000000000000", "joinUrl": "string", "locale": "de-DE", "origin": "string", "permissionGroupId": "00000000-0000-0000-0000-000000000000", "roomId": "00000000-0000-0000-0000-000000000000", "userId": "00000000-0000-0000-0000-000000000000", "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-23T12:34:56Z" } ], "nextPageToken": "string" } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId` or `pageToken` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId` or `pageToken` is invalid" } ``` ## Schemas ### PaginatedBodyListGuestLink | Property | Type | Required | Description | |---|---|---|---| | data | array of GuestLink or null | yes | The actual data for a paginated request. | | nextPageToken | string | no | A token that can be used to obtain the next page of the requested data. | ### GuestLink | Property | Type | Required | Description | |---|---|---|---| | accessKey | string | yes | The access key. | | createdAt | string (date-time) | yes | The creation timestamp. | | createdBy | string | yes | The creator user ID. | | dialInAllowed | boolean | yes | If true, the guest link is allowed to be used via dial-in. | | dialInCode | string | yes | The dial-in authentication code. | | displayName | string | no | The name of the participant using the guest link that is displayed in UIs. | | emailAddress | string (email) | yes | The email address associated with the guest link. | | id | string | yes | The guest link ID. | | joinUrl | string | yes | The URL of the room join page. That page allows to choose whether to join the room with the native client or the web client | | locale | string | yes | The locale settings (e.g., UI language). One of: `de-DE`, `en-US`, `unknown`. | | origin | string | yes | String that specifies the creator or reason for the creation of the guest link (e.g., my external tool or initial meeting delayed). | | permissionGroupId | string | yes | The permission group ID. | | roomId | string | yes | The room ID. | | userId | string | yes | The user ID of the guest using the guest link. It matches the userId in attendance reports. | | validFrom | string (date-time) | no | The guest link is valid from this point in time. | | validUntil | string (date-time) | no | The guest link is valid until this point in time. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListGuestLinksForRoom) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Get Guest Link `GET /v2/guest-links/{id}` Operation ID: `GetGuestLink` · Tags: Guests Gets a single guest link. **Required permissions:** - normal room: one of user permission `roomAdmin` or room permission `admin` in the room - meeting room: the caller must be the meeting's creator ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The guest link ID. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: GuestLink ```json { "accessKey": "string", "createdAt": "2024-09-22T12:34:56Z", "createdBy": "string", "dialInAllowed": true, "dialInCode": "string", "displayName": "string", "emailAddress": "user@example.com", "id": "00000000-0000-0000-0000-000000000000", "joinUrl": "string", "locale": "de-DE", "origin": "string", "permissionGroupId": "00000000-0000-0000-0000-000000000000", "roomId": "00000000-0000-0000-0000-000000000000", "userId": "00000000-0000-0000-0000-000000000000", "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-23T12:34:56Z" } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Guest was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Guest was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `id` is not a guest link ID Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `id` is not a guest link ID" } ``` ## Schemas ### GuestLink | Property | Type | Required | Description | |---|---|---|---| | accessKey | string | yes | The access key. | | createdAt | string (date-time) | yes | The creation timestamp. | | createdBy | string | yes | The creator user ID. | | dialInAllowed | boolean | yes | If true, the guest link is allowed to be used via dial-in. | | dialInCode | string | yes | The dial-in authentication code. | | displayName | string | no | The name of the participant using the guest link that is displayed in UIs. | | emailAddress | string (email) | yes | The email address associated with the guest link. | | id | string | yes | The guest link ID. | | joinUrl | string | yes | The URL of the room join page. That page allows to choose whether to join the room with the native client or the web client | | locale | string | yes | The locale settings (e.g., UI language). One of: `de-DE`, `en-US`, `unknown`. | | origin | string | yes | String that specifies the creator or reason for the creation of the guest link (e.g., my external tool or initial meeting delayed). | | permissionGroupId | string | yes | The permission group ID. | | roomId | string | yes | The room ID. | | userId | string | yes | The user ID of the guest using the guest link. It matches the userId in attendance reports. | | validFrom | string (date-time) | no | The guest link is valid from this point in time. | | validUntil | string (date-time) | no | The guest link is valid until this point in time. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/GetGuestLink) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Create Guest Links `POST /v2/rooms/{roomId}/guest-links` Operation ID: `CreateGuestLinks` · Tags: Guests Creates guest links for a room. **Required permissions:** - normal room: one of user permission `roomAdmin` or room permission `admin` in the room - meeting room: the caller must be the meeting's creator ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Request body The guest links to create. Content-Type: `application/json` Schema: CreateGuestLinksRequestBody ```json { "create": [ { "dialInAllowed": true, "displayName": "string", "emailAddress": "user@example.com", "locale": "de-DE", "permissionGroupId": "00000000-0000-0000-0000-000000000000", "sendEmail": true, "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-23T12:34:56Z" } ], "origin": "string", "timezone": "Europe/Berlin" } ``` ## Responses ### 201 The requested resource was created. Content-Type: `application/json` Schema: array of GuestLink or null ```json [ { "accessKey": "string", "createdAt": "2024-09-22T12:34:56Z", "createdBy": "string", "dialInAllowed": true, "dialInCode": "string", "displayName": "string", "emailAddress": "user@example.com", "id": "00000000-0000-0000-0000-000000000000", "joinUrl": "string", "locale": "de-DE", "origin": "string", "permissionGroupId": "00000000-0000-0000-0000-000000000000", "roomId": "00000000-0000-0000-0000-000000000000", "userId": "00000000-0000-0000-0000-000000000000", "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-23T12:34:56Z" } ] ``` ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId`, `permissionGroupId` or `timezone` is invalid - a quota is exceeded Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId`, `permissionGroupId` or `timezone` is invalid\n- a quota is exceeded" } ``` ## Schemas ### CreateGuestLinksRequestBody | Property | Type | Required | Description | |---|---|---|---| | create | array of GuestLinkCreate or null | yes | The guest links. Minimum items: 1. | | origin | string or null | no | Specifies the creator or reason for the creation of the guest links (e.g., my external tool or initial meeting delayed). | | timezone | string or null | no | The time zone to use in the notification emails. Can be UTC, Local or a TZ identifier from the IANA time zone database. If empty, the default is Europe/Berlin. | ### GuestLinkCreate | Property | Type | Required | Description | |---|---|---|---| | dialInAllowed | boolean | yes | If true, the guest link is allowed to be used via dial-in. | | displayName | string | yes | The name of the guest that is displayed in UIs. | | emailAddress | string (email) | yes | The email address associated with the guest link. | | locale | string | yes | The locale settings (e.g., UI language) for the guest link. One of: `de-DE`, `en-US`. | | permissionGroupId | string | yes | The permission group ID. | | sendEmail | boolean | no | If true, an information email with the guest link will be sent to the associated email address. | | validFrom | string (date-time) | no | The guest link is valid from this point in time. | | validUntil | string (date-time) | no | The guest link is valid until this point in time. | ### GuestLink | Property | Type | Required | Description | |---|---|---|---| | accessKey | string | yes | The access key. | | createdAt | string (date-time) | yes | The creation timestamp. | | createdBy | string | yes | The creator user ID. | | dialInAllowed | boolean | yes | If true, the guest link is allowed to be used via dial-in. | | dialInCode | string | yes | The dial-in authentication code. | | displayName | string | no | The name of the participant using the guest link that is displayed in UIs. | | emailAddress | string (email) | yes | The email address associated with the guest link. | | id | string | yes | The guest link ID. | | joinUrl | string | yes | The URL of the room join page. That page allows to choose whether to join the room with the native client or the web client | | locale | string | yes | The locale settings (e.g., UI language). One of: `de-DE`, `en-US`, `unknown`. | | origin | string | yes | String that specifies the creator or reason for the creation of the guest link (e.g., my external tool or initial meeting delayed). | | permissionGroupId | string | yes | The permission group ID. | | roomId | string | yes | The room ID. | | userId | string | yes | The user ID of the guest using the guest link. It matches the userId in attendance reports. | | validFrom | string (date-time) | no | The guest link is valid from this point in time. | | validUntil | string (date-time) | no | The guest link is valid until this point in time. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/CreateGuestLinks) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Update Guest Link `PATCH /v2/guest-links/{id}` Operation ID: `UpdateGuestLink` · Tags: Guests Updates a guest link. **Required permissions:** - normal room: one of user permission `roomAdmin` or room permission `admin` in the room - meeting room: the caller must be the meeting's creator ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The guest link ID. | ## Request body The updated guest link. Content-Type: `application/json` Schema: GuestLinkUpdate ```json { "dialInAllowed": true, "displayName": "string", "emailAddress": "user@example.com", "locale": "de-DE", "permissionGroupId": "00000000-0000-0000-0000-000000000000", "sendEmail": true, "timezone": "Europe/Berlin", "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-23T12:34:56Z" } ``` ## Responses ### 204 The request was processed successfully. ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Guest link was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Guest link was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `id` is not a guest link ID (checked only for a body that is not empty) - `permissionGroupId` or `timezone` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `id` is not a guest link ID (checked only for a body that is not empty)\n- `permissionGroupId` or `timezone` is invalid" } ``` ## Schemas ### GuestLinkUpdate | Property | Type | Required | Description | |---|---|---|---| | dialInAllowed | boolean | no | If true, the guest link is allowed to be used via dial-in. | | displayName | string | yes | The name of the guest that is displayed in UIs. | | emailAddress | string (email) | no | The email address associated with the guest link. | | locale | string | no | The locale settings (e.g., UI language) for the guest link. One of: `de-DE`, `en-US`. | | permissionGroupId | string or null | no | The permission group ID. | | sendEmail | boolean | yes | If true, an information email with the updated guest link information will be sent to the associated email address. | | timezone | string or null | no | The time zone to use in the notification emails. Can be UTC, Local or a TZ identifier from the IANA time zone database. If empty, the default is Europe/Berlin. | | validFrom | string (date-time) | no | The guest link is valid from this point in time. | | validUntil | string (date-time) | no | The guest link is valid until this point in time. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/UpdateGuestLink) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Delete Guest Link `DELETE /v2/rooms/{roomId}/guest-links/{id}` Operation ID: `DeleteGuestLink` · Tags: Guests Deletes a guest link. **Required permissions:** - normal room: one of user permission `roomAdmin` or room permission `admin` in the room - meeting room: the caller must be the meeting's creator. ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The guest link ID. | | roomId | path | string | yes | The room ID. | ## Responses ### 204 The request was processed successfully. ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `id` is not a guest link ID - `roomId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `id` is not a guest link ID\n- `roomId` is invalid" } ``` ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/DeleteGuestLink) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Group Links `GET /v2/group-links` Operation ID: `ListGroupLinks` · Tags: Guests Lists group links. **Required permissions** (all of): - user permission `roomList` - user permission `roomAdmin` **Result:** - all group links of the company, except the links of meetings that the caller did not create ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | pageToken | query | string | no | For pagination: Pass the nextPageToken from the last successful request to obtain the next page. Omit on first request. | | limit | query | integer (int32) | no | For pagination: Limit the number of returned group links. Minimum: 0. Maximum: 500. Default: `100`. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: PaginatedBodyListGroupLink ```json { "data": [ { "accessKey": "string", "createdAt": "2024-09-22T12:34:56Z", "createdBy": "string", "description": "string", "dialInAllowed": true, "dialInCode": "string", "id": "00000000-0000-0000-0000-000000000000", "joinLink": "string", "joinUrl": "string", "origin": "string", "permissionGroupId": "00000000-0000-0000-0000-000000000000", "roomId": "00000000-0000-0000-0000-000000000000", "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-23T12:34:56Z" } ], "nextPageToken": "string" } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `pageToken` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `pageToken` is invalid" } ``` ## Schemas ### PaginatedBodyListGroupLink | Property | Type | Required | Description | |---|---|---|---| | data | array of GroupLink or null | yes | The actual data for a paginated request. | | nextPageToken | string | no | A token that can be used to obtain the next page of the requested data. | ### GroupLink | Property | Type | Required | Description | |---|---|---|---| | accessKey | string | yes | The access key. | | createdAt | string (date-time) | yes | The creation timestamp. | | createdBy | string | yes | The creator user ID. | | description | string | yes | A description of the group link. | | dialInAllowed | boolean | yes | If true, the group link is allowed to be used via dial-in. | | dialInCode | string | yes | The dial-in authentication code for the group link. | | id | string | yes | The group link ID. | | joinLink | string | yes | Deprecated. Use joinUrl instead. Deprecated. | | joinUrl | string | yes | The URL of the room join page. That page allows the user to set a display name and to choose whether to join the room with the native client or the web client. | | origin | string | yes | String that specifies the creator or reason for the creation of the group link (e.g., my external tool or initial meeting delayed). | | permissionGroupId | string | yes | The permission group ID. | | roomId | string | yes | The room ID. | | validFrom | string (date-time) | no | The group link is valid from this point in time. | | validUntil | string (date-time) | no | The group link is valid until this point in time. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListGroupLinks) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Group Links for Room `GET /v2/rooms/{roomId}/group-links` Operation ID: `ListGroupLinksForRoom` · Tags: Guests Lists group links for a room. **Required permissions:** - normal room: one of user permission `roomAdmin` or room permission `admin` in the room - meeting room: the caller must be the meeting's creator ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | | pageToken | query | string | no | For pagination: Pass the nextPageToken from the last successful request to obtain the next page. Omit on first request. | | limit | query | integer (int32) | no | For pagination: Limit the number of returned group links. Minimum: 0. Maximum: 500. Default: `100`. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: PaginatedBodyListGroupLink ```json { "data": [ { "accessKey": "string", "createdAt": "2024-09-22T12:34:56Z", "createdBy": "string", "description": "string", "dialInAllowed": true, "dialInCode": "string", "id": "00000000-0000-0000-0000-000000000000", "joinLink": "string", "joinUrl": "string", "origin": "string", "permissionGroupId": "00000000-0000-0000-0000-000000000000", "roomId": "00000000-0000-0000-0000-000000000000", "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-23T12:34:56Z" } ], "nextPageToken": "string" } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId` or `pageToken` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId` or `pageToken` is invalid" } ``` ## Schemas ### PaginatedBodyListGroupLink | Property | Type | Required | Description | |---|---|---|---| | data | array of GroupLink or null | yes | The actual data for a paginated request. | | nextPageToken | string | no | A token that can be used to obtain the next page of the requested data. | ### GroupLink | Property | Type | Required | Description | |---|---|---|---| | accessKey | string | yes | The access key. | | createdAt | string (date-time) | yes | The creation timestamp. | | createdBy | string | yes | The creator user ID. | | description | string | yes | A description of the group link. | | dialInAllowed | boolean | yes | If true, the group link is allowed to be used via dial-in. | | dialInCode | string | yes | The dial-in authentication code for the group link. | | id | string | yes | The group link ID. | | joinLink | string | yes | Deprecated. Use joinUrl instead. Deprecated. | | joinUrl | string | yes | The URL of the room join page. That page allows the user to set a display name and to choose whether to join the room with the native client or the web client. | | origin | string | yes | String that specifies the creator or reason for the creation of the group link (e.g., my external tool or initial meeting delayed). | | permissionGroupId | string | yes | The permission group ID. | | roomId | string | yes | The room ID. | | validFrom | string (date-time) | no | The group link is valid from this point in time. | | validUntil | string (date-time) | no | The group link is valid until this point in time. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListGroupLinksForRoom) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Get Group Link `GET /v2/group-links/{id}` Operation ID: `GetGroupLink` · Tags: Guests Gets a single group link. **Required permissions:** - normal room: one of user permission `roomAdmin` or room permission `admin` in the room - meeting room: the caller must be the meeting's creator ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The group link ID. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: GroupLink ```json { "accessKey": "string", "createdAt": "2024-09-22T12:34:56Z", "createdBy": "string", "description": "string", "dialInAllowed": true, "dialInCode": "string", "id": "00000000-0000-0000-0000-000000000000", "joinLink": "string", "joinUrl": "string", "origin": "string", "permissionGroupId": "00000000-0000-0000-0000-000000000000", "roomId": "00000000-0000-0000-0000-000000000000", "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-23T12:34:56Z" } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Group was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Group was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `id` is not a group link ID Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `id` is not a group link ID" } ``` ## Schemas ### GroupLink | Property | Type | Required | Description | |---|---|---|---| | accessKey | string | yes | The access key. | | createdAt | string (date-time) | yes | The creation timestamp. | | createdBy | string | yes | The creator user ID. | | description | string | yes | A description of the group link. | | dialInAllowed | boolean | yes | If true, the group link is allowed to be used via dial-in. | | dialInCode | string | yes | The dial-in authentication code for the group link. | | id | string | yes | The group link ID. | | joinLink | string | yes | Deprecated. Use joinUrl instead. Deprecated. | | joinUrl | string | yes | The URL of the room join page. That page allows the user to set a display name and to choose whether to join the room with the native client or the web client. | | origin | string | yes | String that specifies the creator or reason for the creation of the group link (e.g., my external tool or initial meeting delayed). | | permissionGroupId | string | yes | The permission group ID. | | roomId | string | yes | The room ID. | | validFrom | string (date-time) | no | The group link is valid from this point in time. | | validUntil | string (date-time) | no | The group link is valid until this point in time. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/GetGroupLink) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Create Group Links `POST /v2/rooms/{roomId}/group-links` Operation ID: `CreateGroupLink` · Tags: Guests Creates group links for a room. **Required permissions:** - normal room: one of user permission `roomAdmin` or room permission `admin` in the room - meeting room: the caller must be the meeting's creator ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | ## Request body The group links to create. Content-Type: `application/json` Schema: CreateGroupLinksRequestBody ```json { "create": [ { "description": "string", "dialInAllowed": true, "permissionGroupId": "00000000-0000-0000-0000-000000000000", "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-23T12:34:56Z" } ], "origin": "string" } ``` ## Responses ### 201 The requested resource was created. Content-Type: `application/json` Schema: array of ID or null ```json [ { "id": "00000000-0000-0000-0000-000000000000" } ] ``` ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `roomId` or `permissionGroupId` is invalid - a quota is exceeded Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `roomId` or `permissionGroupId` is invalid\n- a quota is exceeded" } ``` ## Schemas ### CreateGroupLinksRequestBody | Property | Type | Required | Description | |---|---|---|---| | create | array of GroupLinkCreate or null | yes | The group links. Minimum items: 1. | | origin | string or null | no | Specifies the creator or reason for the creation of the group links (e.g., my external tool or initial meeting delayed). | ### GroupLinkCreate | Property | Type | Required | Description | |---|---|---|---| | description | string | yes | The group link description. | | dialInAllowed | boolean | yes | If true, the group link is allowed to be used via dial-in. | | permissionGroupId | string | yes | The permission group ID. | | validFrom | string (date-time) or null | no | The group link is valid from this point in time. | | validUntil | string (date-time) or null | no | The group link is valid until this point in time. | ### ID | Property | Type | Required | Description | |---|---|---|---| | id | string | yes | A unique identifier. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/CreateGroupLink) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Update Group Link `PATCH /v2/group-links/{id}` Operation ID: `UpdateGroupLink` · Tags: Guests Updates a group link. **Required permissions:** - normal room: one of user permission `roomAdmin` or room permission `admin` in the room - meeting room: the caller must be the meeting's creator ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The group link ID. | ## Request body The updated group link. Content-Type: `application/json` Schema: GroupLinkUpdate ```json { "description": "string", "dialInAllowed": true, "permissionGroupId": "00000000-0000-0000-0000-000000000000", "validFrom": "2024-09-22T12:34:56Z", "validUntil": "2024-09-23T12:34:56Z" } ``` ## Responses ### 204 The request was processed successfully. ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 404 Group link was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Group link was not found." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `id` is not a group link ID (checked only for a body that is not empty) Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `id` is not a group link ID (checked only for a body that is not empty)" } ``` ## Schemas ### GroupLinkUpdate | Property | Type | Required | Description | |---|---|---|---| | description | string or null | no | The group link description. | | dialInAllowed | boolean or null | no | If true, the group link is allowed to be used via dial-in. | | permissionGroupId | string or null | no | The permission group ID. | | validFrom | string (date-time) or null | no | The group link is valid from this point in time. | | validUntil | string (date-time) or null | no | The group link is valid until this point in time. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/UpdateGroupLink) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Delete Group Link `DELETE /v2/rooms/{roomId}/group-links/{id}` Operation ID: `DeleteGroupLink` · Tags: Guests Deletes a group link. **Required permissions:** - normal room: one of user permission `roomAdmin` or room permission `admin` in the room - meeting room: the caller must be the meeting's creator. ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The group link ID. | | roomId | path | string | yes | The room ID. | ## Responses ### 204 The request was processed successfully. ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `id` is not a group link ID - `roomId` is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `id` is not a group link ID\n- `roomId` is invalid" } ``` ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/DeleteGroupLink) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Statistics `GET /v2/stats` Operation ID: `ListStatistics` · Tags: Reports Lists statistics for provided filters grouped by time periods depending on the corresponding query parameter. **Required permissions:** - user permission `manageCompany` ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | from | query | string (date-time) | yes | The start time of the time period to consider in the report. The earliest start time can be exactly 62 days in the past. | | to | query | string (date-time) | yes | The end time of the time period to consider in the report. | | stepDurationHours | query | integer (int64) | yes | The duration of the time periods to group the report results in hours. Minimum: 1. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: array of StatsPeriod or null ```json [ { "from": "2024-09-22T11:00:00Z", "meetings": { "activeCount": 0, "roomOnlineSeconds": 0, "sessionCount": 0, "usersOnlineSeconds": 0 }, "rooms": { "activeCount": 0, "roomOnlineSeconds": 0, "sessionCount": 0, "usersOnlineSeconds": 0 }, "to": "2024-09-22T12:00:00Z" } ] ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `from` is after `to` - `from` equals `to` - `from` is more than 62 days in the past - `to` is more than 32 days after `from` Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `from` is after `to`\n- `from` equals `to`\n- `from` is more than 62 days in the past\n- `to` is more than 32 days after `from`" } ``` ## Schemas ### StatsPeriod | Property | Type | Required | Description | |---|---|---|---| | from | string (date-time) | yes | The start time of the considered time period. | | meetings | Stats | yes | Statistics for meetings. | | rooms | Stats | yes | Statistics for rooms. | | to | string (date-time) | yes | The end time of the considered time period. | ### Stats | Property | Type | Required | Description | |---|---|---|---| | activeCount | integer (int64) | yes | The number of rooms with active users. Minimum: 0. | | roomOnlineSeconds | integer (int64) | yes | The total duration of rooms having at least one person connected in seconds. Minimum: 0. | | sessionCount | integer (int64) | yes | The number of active sessions. A session is a contiguous period of time the user was in the room (beginning with either a join or the start of the time period (if the user had joined before the start of the time period) and ending with a leave or the end of the time period (if the user was still in the room at the end of the time period). Minimum: 0. | | usersOnlineSeconds | integer (int64) | yes | The total duration of users being connected to a room in seconds. Minimum: 0. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListStatistics) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Attendances `GET /v2/rooms/{roomId}/attendances` Operation ID: `ListAttendances` · Tags: Reports Lists attendances at a room during a time period. **Required permissions:** - normal room: one of user permission `roomAdmin` or room permission `promote` or `admin` in the room - meeting room: the caller must be the meeting's creator ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | roomId | path | string | yes | The room ID. | | from | query | string (date-time) | yes | The start time of the time period to consider in the report. A session is kept for 62 days after it ends. | | to | query | string (date-time) | yes | The end time of the time period to consider in the report. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: array of UserAttendances or null ```json [ { "attendances": [ { "displayName": "string", "from": "2024-09-22T11:00:00Z", "to": "2024-09-22T12:00:00Z" } ], "userId": "00000000-0000-0000-0000-000000000000" } ] ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - `from` is after `to` - `roomId` or the time period is invalid Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- `from` is after `to`\n- `roomId` or the time period is invalid" } ``` ## Schemas ### UserAttendances | Property | Type | Required | Description | |---|---|---|---| | attendances | array of Attendance or null | yes | The attendances. | | userId | string | yes | The user ID. It expires 40 days after the join. | ### Attendance | Property | Type | Required | Description | |---|---|---|---| | displayName | string | yes | The name of the user that was displayed in UIs at the time of the attendance. It expires 40 days after the join. | | from | string (date-time) | yes | The start time. | | to | string (date-time) | yes | The end time. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListAttendances) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Invite User `POST /v2/users/invitation` Operation ID: `InviteUser` · Tags: Users Invites a user to the company of the requester. **Required permissions:** - user permission `userAdmin` **Restrictions:** - invited user: only user permissions that the caller holds ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Request body The user to invite. Content-Type: `application/json` Schema: UserInvitation ```json { "permissions": { "manageCompany": true, "roomAdmin": true, "roomCreate": true, "roomList": true, "userAdmin": true, "userList": true, "userShow": true }, "user": { "emailAddress": "user@provider.com", "firstName": "string", "lastName": "string", "locale": "de-DE", "title": "Dr." } } ``` ## Responses ### 202 The invitation request was successful. Note that the user might not be available immediately after the response was sent. This can take up to a few minutes. ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - a quota is exceeded Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- a quota is exceeded" } ``` ## Schemas ### UserInvitation | Property | Type | Required | Description | |---|---|---|---| | permissions | InviteUserPermissions | yes | The user permissions. | | user | UserInformation | yes | Data about the invited user. | ### InviteUserPermissions | Property | Type | Required | Description | |---|---|---|---| | manageCompany | boolean | yes | If true, the user can manage company settings. Implies userAdmin, roomAdmin and userShow. | | roomAdmin | boolean | yes | If true, the user can create, update and delete any room. Implies roomList and roomCreate. | | roomCreate | boolean | yes | If true, the user can create rooms for their company. | | roomList | boolean | yes | If true, the user can list all rooms in their company. | | userAdmin | boolean | yes | If true, the user can create, update and delete other users, send password reset mails and resend sign-up mails for new users. Implies userList. | | userList | boolean | yes | If true, the user can list all users in their company. | | userShow | boolean | yes | If true, the user can see the user names of all users in rooms they can access. | ### UserInformation | Property | Type | Required | Description | |---|---|---|---| | emailAddress | string (email) | yes | The email address. | | firstName | string | yes | The first name. | | lastName | string | yes | The last name. | | locale | string | no | The locale settings (e.g., UI language) for the user. One of: `de-DE`, `en-US`. | | title | string | no | The title. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/InviteUser) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Users `GET /v2/users` Operation ID: `ListUsers` · Tags: Users Lists all users in the company. **Required permissions:** - none beyond the access token **Result:** - without `emailAddress`, with the user permission `userList` or `userAdmin`: all users of the company - without `emailAddress`, otherwise: only the caller's own user - with `emailAddress`, with the user permission `userAdmin`: the user with this email address - with `emailAddress`, otherwise: no user other than the caller **Restrictions:** - guest access token with `emailAddress`: rejected ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | emailAddress | query | string (email) | no | The email address. | ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: array of User or null ```json [ { "city": "string", "emailAddress": "user@provider.com", "firstName": "string", "id": "00000000-0000-0000-0000-000000000000", "initials": "string", "lastName": "string", "locale": "de-DE", "title": "Dr." } ] ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Additional cases: - the filter is not supported Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview.\n\nAdditional cases:\n- the filter is not supported" } ``` ## Schemas ### User | Property | Type | Required | Description | |---|---|---|---| | city | string | no | The city the user is located in. | | emailAddress | string (email) | yes | The email address. | | firstName | string | yes | The first name. | | id | string | yes | The user ID. | | initials | string | no | The initials. | | lastName | string | yes | The last name. | | locale | string | yes | The locale settings (e.g., UI language) for the user. One of: `de-DE`, `en-US`, `unknown`. | | title | string | no | The title. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListUsers) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Get Own User `GET /v2/users/me` Operation ID: `GetOwnUser` · Tags: Users Returns the profile of the requesting user. **Required permissions:** - none beyond the access token ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: UserProfile ```json { "city": "string", "emailAddress": "user@provider.com", "firstName": "string", "id": "00000000-0000-0000-0000-000000000000", "initials": "string", "lastName": "string", "locale": "de-DE", "title": "Dr." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ## Schemas ### UserProfile | Property | Type | Required | Description | |---|---|---|---| | city | string | yes | The city, the user is located in. | | emailAddress | string (email) | yes | The email address. | | firstName | string | yes | The first name. | | id | string | yes | The user ID. | | initials | string | yes | The initials. | | lastName | string | yes | The last name. | | locale | string | yes | The locale settings (e.g., UI language) for the user. One of: `de-DE`, `en-US`, `unknown`. | | title | string | no | The title. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/GetOwnUser) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Update Own User `PATCH /v2/users` Operation ID: `UpdateUser` · Tags: Users Updates the requester's user information. **Required permissions:** - none beyond the access token ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Request body The updated user information. Content-Type: `application/json` Schema: UserUpdate ```json { "city": "string", "firstName": "string", "initials": "string", "lastName": "string", "locale": "de-DE", "title": "Dr." } ``` ## Responses ### 204 The request was processed successfully. ### 400 The request was not valid. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Bad Request", "status": 400, "detail": "The request was not valid." } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 422 See the section [Errors](/v2/docs/openapi#/#errors) of the API overview. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unprocessable Entity", "status": 422, "detail": "See the section [Errors](/v2/docs/openapi#/#errors) of the API overview." } ``` ## Schemas ### UserUpdate | Property | Type | Required | Description | |---|---|---|---| | city | string | no | The city the user is located in. | | firstName | string | no | The first name. | | initials | string | no | The initials. | | lastName | string | no | The last name. | | locale | string | no | The locale settings (e.g., UI language) for the user. One of: `de-DE`, `en-US`. | | title | string | no | The title. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/UpdateUser) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Delete User `DELETE /v2/users/{id}` Operation ID: `DeleteUser` · Tags: Users Deletes a user. If the user is logged in at the time of the deletion, it can take up to an hour until the user is fully unable to access any part of the system. **Required permissions:** - deleting the caller's own user: none beyond the access token - deleting another user: user permission `userAdmin` **Restrictions:** - guest access token: rejected ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Parameters | Name | In | Type | Required | Description | |---|---|---|---|---| | id | path | string | yes | The user ID. | ## Responses ### 204 The request was processed successfully. ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 403 The requesting user does not have the necessary permissions. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Forbidden", "status": 403, "detail": "The requesting user does not have the necessary permissions." } ``` ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/DeleteUser) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # Get own company `GET /v2/users/me/company` Operation ID: `GetOwnCompany` · Tags: Users Returns the company of the requester. **Required permissions:** - none beyond the access token ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: Company ```json { "companyId": "0123456789ABCDEFGHIJKLMNOP", "createdAt": "2026-09-01T10:00:00Z", "displayName": "string" } ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ## Schemas ### Company | Property | Type | Required | Description | |---|---|---|---| | companyId | string | yes | The ID. | | createdAt | string (date-time) | yes | The time at which the company was created. | | displayName | string | yes | The display name. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/GetOwnCompany) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml) --- # List Permission Groups `GET /v2/permission-groups` Operation ID: `ListPermissionGroups` · Tags: Permissions Lists permission groups. Permission groups are predefined permissions that can be applied to users (e.g., Admin, Guest, etc.). **Required permissions:** - none beyond the access token ## Authentication Requires an access token in the `Authorization` header with the `Bearer ` prefix. Access tokens are returned by the authentication operations and are accepted without the `Bearer` prefix. See the [overview](https://apis.alfaview.com/v2/docs/overview.md#authentication) for details. ## Responses ### 200 The request was processed successfully. Content-Type: `application/json` Schema: array of PermissionGroup or null ```json [ { "id": "00000000-0000-0000-0000-000000000000", "name": "Admin", "permissions": { "admin": true, "chat": true, "join": true, "promote": true, "screen": true, "upload": true, "video": true, "vip": true, "voice": true } } ] ``` ### 401 The `Authorization` header did not contain a valid API token. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Unauthorized", "status": 401, "detail": "The `Authorization` header did not contain a valid API token." } ``` ### 404 Permission group or company was not found. Content-Type: `application/problem+json` Schema: [ErrorModel](https://apis.alfaview.com/v2/docs/overview.md#errors) ```json { "title": "Not Found", "status": 404, "detail": "Permission group or company was not found." } ``` ## Schemas ### PermissionGroup | Property | Type | Required | Description | |---|---|---|---| | id | string | yes | The permission group ID. | | name | string | yes | The name of the permission group. | | permissions | Permissions | yes | The attached permissions. | ### Permissions | Property | Type | Required | Description | |---|---|---|---| | admin | boolean | yes | If true, the associated user is an admin. | | chat | boolean | yes | Permission to chat. | | join | boolean | yes | Permission to join the room. | | promote | boolean | yes | Permission to promote permissions for other users. | | screen | boolean | yes | Permission to share the screen. | | upload | boolean | yes | Permission to upload files. | | video | boolean | yes | Permission to stream video input. | | vip | boolean | yes | Permission to mark users as VIP. | | voice | boolean | yes | Permission to speak. | ## Links - [Interactive documentation](https://apis.alfaview.com/v2/docs/openapi#/operations/ListPermissionGroups) - [OpenAPI specification](https://apis.alfaview.com/v2/docs/openapi.yaml)