REST API
OpenTalk Controller Frontend API (0.0.0-dev)
Download OpenAPI specification:Download
Specifies the endpoints and structure of the OpenTalk Controller Frontend API
The login endpoint
Attempt to authenticate with a provided ID token. The ID token can be received from an OIDC provider and contains information about the requesting user as well as an expiration timestamp. When a valid token with an unknown user is provided, a new user will be created in the database.
Request Body schema: application/jsonrequired
id_token required | string The id token to use for the login |
Responses
Request samples
- Payload
{- "id_token": "bG9yZW0gaXBzdW0sIHF1aWEgZG9sb3Igc2"
}
Response samples
- 200
- 400
- 401
{- "permissions": [ ]
}
Verify an invite code
Verifies the invite and returns the room url for the invite code
Request Body schema: application/jsonrequired
invite_code required | string <uuid> (InviteCode) An invite code |
Responses
Request samples
- Payload
{- "invite_code": "00000000-0000-0000-0000-0000deadbeef"
}
Response samples
- 200
- 401
{- "password_required": true,
- "room_id": "00000000-0000-0000-0000-0000abadcafe"
}
Get all invites for a room
This returns all invites that are available for a room. If no pagination query is added, the default page size is used.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
query Parameters
per_page | integer <int64> The number of entries per page |
page | integer <int64> The number of the page |
Responses
Response samples
- 200
- 401
[- {
- "active": true,
- "created": "2024-06-18T11:22:33Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "expiration": null,
- "invite_code": "00000000-0000-0000-0000-0000deadbeef",
- "room_id": "00000000-0000-0000-0000-0000abadcafe",
- "updated": "2024-06-20T14:16:19Z",
- "updated_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
}
]
Create a new invite
A new invite to the room is created with the information in the body.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
Request Body schema: application/jsonrequired
expiration | string or null <date-time> Optional expiration date of the invite |
Responses
Request samples
- Payload
{- "expiration": "2024-06-20T14:16:19Z"
}
Response samples
- 200
- 401
{- "active": true,
- "created": "2024-06-18T11:22:33Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "expiration": null,
- "invite_code": "00000000-0000-0000-0000-0000deadbeef",
- "room_id": "00000000-0000-0000-0000-0000abadcafe",
- "updated": "2024-06-20T14:16:19Z",
- "updated_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
}
Get a room invite
Returns the room invite resource
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The room id for the invite |
invite_code required | string <uuid> (InviteCode) Example: 00000000-0000-0000-0000-0000deadbeef The invite code id |
Responses
Response samples
- 200
- 401
{- "active": true,
- "created": "2024-06-18T11:22:33Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "expiration": null,
- "invite_code": "00000000-0000-0000-0000-0000deadbeef",
- "room_id": "00000000-0000-0000-0000-0000abadcafe",
- "updated": "2024-06-20T14:16:19Z",
- "updated_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
}
Update an invite code
Updates the field values as set in the request body.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The room id for the invite |
invite_code required | string <uuid> (InviteCode) Example: 00000000-0000-0000-0000-0000deadbeef The invite code id |
Request Body schema: application/jsonrequired
expiration | string or null <date-time> Optional expiration date of the invite |
Responses
Request samples
- Payload
{- "expiration": "2024-06-20T14:16:19Z"
}
Response samples
- 200
- 401
{- "active": true,
- "created": "2024-06-18T11:22:33Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "expiration": null,
- "invite_code": "00000000-0000-0000-0000-0000deadbeef",
- "room_id": "00000000-0000-0000-0000-0000abadcafe",
- "updated": "2024-06-20T14:16:19Z",
- "updated_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
}
Delete an invite code
The invite code will no longer be usable once it is deleted.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The room id for the invite |
invite_code required | string <uuid> (InviteCode) Example: 00000000-0000-0000-0000-0000deadbeef The invite code id |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Get a list of rooms accessible by the requesting user
All rooms accessible to the requesting user are returned in a list. If no pagination query is added, the default page size is used.
Authorizations:
query Parameters
per_page | integer <int64> The number of entries per page |
page | integer <int64> The number of the page |
Responses
Response samples
- 200
- 401
[- {
- "created_at": "1970-01-01T00:00:00Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "id": "00000000-0000-0000-0000-000000000000",
- "password": "v3rys3cr3t",
- "waiting_room": false
}
]
Create a new room
Creates a new room withh the settings given in the request body.
Authorizations:
Request Body schema: application/jsonrequired
e2e_encryption | boolean Enable/Disable e2e encryption for this room; defaults to false when not set |
enable_sip | boolean Enable/Disable sip for this room; defaults to false when not set |
password | string or null [ 1 .. 255 ] characters A room password |
waiting_room | boolean Indicates whether the meeting room should have the waiting room enabled. When not present, the waiting room will be disabled. |
Responses
Request samples
- Payload
{- "e2e_encryption": true,
- "enable_sip": true,
- "password": "v3rys3cr3t",
- "waiting_room": true
}
Response samples
- 201
- 401
{- "created_at": "1970-01-01T00:00:00Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "id": "00000000-0000-0000-0000-000000000000",
- "password": "v3rys3cr3t",
- "waiting_room": false
}
Get a room
Returns the room resource including additional information such as the creator profile.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
Responses
Response samples
- 200
- 401
{- "created_at": "1970-01-01T00:00:00Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "id": "00000000-0000-0000-0000-000000000000",
- "password": "v3rys3cr3t",
- "waiting_room": false
}
Delete a room and its owned resources.
Deletes the room by the id if found. See the query parameters for affecting the behavior of this endpoint, such as mail notification suppression, or succeding even if external resources cannot be successfully deleted.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
query Parameters
force_delete_reference_if_external_services_fail | boolean Flag to force delete the reference if the deletion at the external services fails |
suppress_email_notification | boolean Flag to disable email notification |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Patch a room with the provided fields
Fields that are not provided in the request body will remain unchanged.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room to be modified |
Request Body schema: application/jsonrequired
e2e_encryption | boolean or null If e2e encryption is enabled |
password | string or null [ 1 .. 255 ] characters A room password |
waiting_room | boolean or null If waiting room is enabled |
Responses
Request samples
- Payload
{- "e2e_encryption": true,
- "password": "v3rys3cr3t",
- "waiting_room": true
}
Response samples
- 200
- 401
{- "created_at": "1970-01-01T00:00:00Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "id": "00000000-0000-0000-0000-000000000000",
- "password": "v3rys3cr3t",
- "waiting_room": false
}
Get a room's event
This returns the event with which the room is associated. Please note
that rooms can exist without events, in which case a 404
status will be
returned.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
Responses
Response samples
- 200
- 401
{- "e2e_encryption": false,
- "id": "00000000-0000-0000-0000-004433221100",
- "is_adhoc": false,
- "meeting_details": {
- "call_in": {
- "id": "1234567890",
- "password": "0987654321",
- "tel": "+555-123-456-789"
}, - "invite_code_id": "00000000-0000-0000-0000-0000deadbeef",
}, - "room_id": "00000000-0000-0000-0000-0000abadcafe",
- "title": "Team Event"
}
Start a signaling session as a registered user
This endpoint has to be called in order to get a room ticket. When joining a room, the ticket
must be provided as a Sec-WebSocket-Protocol
header field when starting the WebSocket
connection.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
Request Body schema: application/jsonrequired
breakout_room | string <uuid> The id of a breakout room |
resumption | string A resumption token |
Responses
Request samples
- Payload
{- "breakout_room": "00000000-0000-0000-0000-00000badcafe",
- "resumption": "654321zyxwvutsrqponmlkjihgfedcba654321zyxwvutsrqponmlkjihgfedcba"
}
Response samples
- 200
- 400
- 401
- 403
- 404
{- "resumption": "654321zyxwvutsrqponmlkjihgfedcba654321zyxwvutsrqponmlkjihgfedcba",
- "ticket": "abcdefghijklmnopqrstuvwxyz123456abcdefghijklmnopqrstuvwxyz123456"
}
Start a signaling session for an invitation code
Returns a ticket to be used with the /signaling
endpoint. When joining a
room, the ticket must be provided as Sec-WebSocket-Protocol
header field
when starting the WebSocket connection. When the requested room has a
password set, the requester must provide the correct password through the
requests body. When the request has no password set, the password will be
ignored if provided.
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
Request Body schema: application/jsonrequired
breakout_room | string <uuid> The id of a breakout room |
invite_code required | string The invite code |
password | string [ 1 .. 255 ] characters A room password |
resumption | string A resumption token |
Responses
Request samples
- Payload
{- "breakout_room": "00000000-0000-0000-0000-0000badcab1e",
- "invite_code": "00000000-0000-0000-0000-0000deadbeef",
- "password": "v3rys3cr3t",
- "resumption": "654321zyxwvutsrqponmlkjihgfedcba654321zyxwvutsrqponmlkjihgfedcba"
}
Response samples
- 200
- 400
- 401
- 403
{- "resumption": "654321zyxwvutsrqponmlkjihgfedcba654321zyxwvutsrqponmlkjihgfedcba",
- "ticket": "abcdefghijklmnopqrstuvwxyz123456abcdefghijklmnopqrstuvwxyz123456"
}
Get a room's tariff
This returns the tariff that applies to the room, typically the tariff of the room creator.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
Responses
Response samples
- 200
- 401
{- "disabled_features": [
- "recording::stream"
], - "enabled_modules": [
- "chat",
- "core",
- "media",
- "moderation",
- "recording"
], - "id": "00000000-0000-0000-0000-000000000000",
- "modules": {
- "chat": {
- "features": [ ]
}, - "core": {
- "features": [ ]
}, - "media": {
- "features": [ ]
}, - "moderation": {
- "features": [ ]
}, - "recording": {
- "features": [
- "record"
]
}
}, - "name": "Starter tariff",
- "quotas": {
- "max_storage": 50000
}
}
Get a list of events accessible by the requesting user
Returns a paginated list of events and their exceptions inside the given time range
Authorizations:
query Parameters
time_min | string or null <date-time> Optional minimum time in which the event happens |
time_max | string or null <date-time> Optional maximum time in which the event happens |
invitees_max | integer <int32> >= 0 Maximum number of invitees to return inside the event resource Default value is 0 |
favorites | boolean Return only favorite events |
invite_status | Array of strings (EventInviteStatus) Items Enum: "pending" "accepted" "tentative" "declined" Example: invite_status=accepted Filter the events by invite status |
per_page | integer or null <int64> How many events to return per page |
after | string or null Cursor token to get the next page of events Returned by the endpoint if the maximum number of events per page has been hit |
adhoc | boolean or null Only get events that are either marked as adhoc or non-adhoc If present, all adhoc events will be returned when |
time_independent | boolean or null Only get events that are either time-independent or time-dependent If present, all time-independent events will be returned when |
Responses
Response samples
- 200
- 401
[- {
- "can_edit": false,
- "created_at": "2024-07-20T14:16:19Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "description": "The Weekly Team Event",
- "id": "00000000-0000-0000-0000-004433221100",
- "invite_status": "accepted",
- "invitees": [
- {
- "profile": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "kind": "registered",
- "lastname": "Adams",
- "role": "user",
- "title": ""
}, - "status": "accepted"
}
], - "invitees_truncated": false,
- "is_adhoc": false,
- "is_favorite": false,
- "is_time_independent": false,
- "room": {
- "call_in": {
- "id": "1234567890",
- "password": "9876543210",
- "tel": "+555-12345-67890"
}, - "e2e_encryption": false,
- "id": "00000000-0000-0000-0000-0000abadcafe",
- "password": "v3rys3cr3t",
- "waiting_room": false
}, - "shared_folder": {
}, - "show_meeting_details": true,
- "starts_at": {
- "datetime": "2024-07-05T17:02:42Z",
- "timezone": "Europe/Berlin"
}, - "streaming_targets": [
- {
- "id": "00000000-0000-0000-0000-000043434343",
- "kind": "custom",
- "name": "Example Stream",
- "streaming_key": "aabbccddeeff"
}
], - "title": "Team Event",
- "type": "single",
- "updated_at": "2024-07-20T14:16:19Z",
- "updated_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
}
]
Create a new event
Create a new event with the fields sent in the body.
Authorizations:
query Parameters
suppress_email_notification | boolean Flag to disable email notification |
Request Body schema: application/jsonrequired
description required | string (EventDescription) <= 4096 characters The description of an event |
e2e_encryption | boolean Should the created event be encrypted? |
object Representation of a datetime timezone | |
has_shared_folder | boolean Should the created event have a shared folder? |
is_adhoc | boolean Is this an ad-hoc chatroom? |
is_all_day | boolean Should the event be all-day? If true, requires |
is_time_independent required | boolean Should the created event be time independent? If true, all following fields must be null
If false, requires |
password | string [ 1 .. 255 ] characters A room password |
recurrence_pattern | Array of strings (RecurrencePattern) [ 1 .. 4 ] items [ items <= 1024 characters ] A recurrence pattern containing recurrence rules |
show_meeting_details | boolean Should it be able to show the meeting details? |
object Representation of a datetime timezone | |
Array of objects (StreamingTarget) The streaming targets of the room associated with the event | |
title required | string (EventTitle) <= 255 characters The title of an event |
waiting_room | boolean Should the created event have a waiting room? |
Responses
Request samples
- Payload
{- "description": "The weekly teammeeting",
- "e2e_encryption": false,
- "ends_at": {
- "datetime": "2024-07-22T11:00:00Z",
- "timezone": "Europe/Berlin"
}, - "has_shared_folder": false,
- "is_adhoc": false,
- "is_time_independent": false,
- "password": "v3rys3cr3t",
- "recurrence_pattern": [
- "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO"
], - "show_meeting_details": true,
- "starts_at": {
- "datetime": "2024-07-22T10:00:00Z",
- "timezone": "Europe/Berlin"
}, - "streaming_targets": [
- {
- "kind": "custom",
- "name": "Example Stream",
- "streaming_key": "aabbccddeeff"
}
], - "title": "Teammeeting",
- "waiting_room": false
}
Response samples
- 201
- 401
{- "can_edit": false,
- "created_at": "2024-07-20T14:16:19Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "description": "The Weekly Team Event",
- "id": "00000000-0000-0000-0000-004433221100",
- "invite_status": "accepted",
- "invitees": [
- {
- "profile": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "kind": "registered",
- "lastname": "Adams",
- "role": "user",
- "title": ""
}, - "status": "accepted"
}
], - "invitees_truncated": false,
- "is_adhoc": false,
- "is_favorite": false,
- "is_time_independent": false,
- "room": {
- "call_in": {
- "id": "1234567890",
- "password": "9876543210",
- "tel": "+555-12345-67890"
}, - "e2e_encryption": false,
- "id": "00000000-0000-0000-0000-0000abadcafe",
- "password": "v3rys3cr3t",
- "waiting_room": false
}, - "shared_folder": {
}, - "show_meeting_details": true,
- "starts_at": {
- "datetime": "2024-07-05T17:02:42Z",
- "timezone": "Europe/Berlin"
}, - "streaming_targets": [
- {
- "id": "00000000-0000-0000-0000-000043434343",
- "kind": "custom",
- "name": "Example Stream",
- "streaming_key": "aabbccddeeff"
}
], - "title": "Team Event",
- "type": "single",
- "updated_at": "2024-07-20T14:16:19Z",
- "updated_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
}
Get an event
Returns the event resource for the given id
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 The id of the event |
query Parameters
invitees_max | integer <int64> Maximum number of invitees to return inside the event resource Default value is 0 |
Responses
Response samples
- 200
- 401
{- "can_edit": false,
- "created_at": "2024-07-20T14:16:19Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "description": "The Weekly Team Event",
- "id": "00000000-0000-0000-0000-004433221100",
- "invite_status": "accepted",
- "invitees": [
- {
- "profile": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "kind": "registered",
- "lastname": "Adams",
- "role": "user",
- "title": ""
}, - "status": "accepted"
}
], - "invitees_truncated": false,
- "is_adhoc": false,
- "is_favorite": false,
- "is_time_independent": false,
- "room": {
- "call_in": {
- "id": "1234567890",
- "password": "9876543210",
- "tel": "+555-12345-67890"
}, - "e2e_encryption": false,
- "id": "00000000-0000-0000-0000-0000abadcafe",
- "password": "v3rys3cr3t",
- "waiting_room": false
}, - "shared_folder": {
}, - "show_meeting_details": true,
- "starts_at": {
- "datetime": "2024-07-05T17:02:42Z",
- "timezone": "Europe/Berlin"
}, - "streaming_targets": [
- {
- "id": "00000000-0000-0000-0000-000043434343",
- "kind": "custom",
- "name": "Example Stream",
- "streaming_key": "aabbccddeeff"
}
], - "title": "Team Event",
- "type": "single",
- "updated_at": "2024-07-20T14:16:19Z",
- "updated_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
}
Delete an event and its owned resources, including the associated room.
Deletes the event by the id if found. See the query parameters for affecting the behavior of this endpoint, such as mail notification suppression, or succeding even if external resources cannot be successfully deleted.
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 The id of the event |
query Parameters
force_delete_reference_if_external_services_fail | boolean Flag to force delete the reference if the deletion at the external services fails |
suppress_email_notification | boolean Flag to disable email notification |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Patch an event
Fields that are not provided in the request body will remain unchanged.
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 The id of the event |
query Parameters
invitees_max | integer <int64> Maximum number of invitees to include inside the event |
suppress_email_notification | boolean Flag to disable email notification |
Request Body schema: application/jsonrequired
description | string <= 4096 characters The description of an event |
e2e_encryption | boolean Patch whether the event is encrypted |
object Representation of a datetime timezone | |
has_shared_folder | boolean Either add a shared folder to the event, if none existed before or delete the shared folder |
is_adhoc | boolean Patch the adhoc flag. |
is_all_day | boolean Patch if the event is an all-day event If it changes the value from false to true this request must ensure
that the |
is_time_independent | boolean Patch the time independence of the event If it changes the independence from true false this body has to have
|
password | string [ 1 .. 255 ] characters A room password |
recurrence_pattern | Array of strings [ 1 .. 4 ] items [ items <= 1024 characters ] A recurrence pattern containing recurrence rules |
show_meeting_details | boolean Patch wether the meeting details are displayed or not |
object Representation of a datetime timezone | |
Array of objects (StreamingTarget) The streaming targets of the room associated with the event | |
title | string <= 255 characters The title of an event |
waiting_room | boolean Patch the presence of a waiting room |
Responses
Request samples
- Payload
{- "description": "The new description",
- "has_shared_folder": true,
- "show_meeting_details": false,
- "title": "The new title"
}
Response samples
- 200
- 401
{- "can_edit": false,
- "created_at": "2024-07-20T14:16:19Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "description": "The Weekly Team Event",
- "id": "00000000-0000-0000-0000-004433221100",
- "invite_status": "accepted",
- "invitees": [
- {
- "profile": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "kind": "registered",
- "lastname": "Adams",
- "role": "user",
- "title": ""
}, - "status": "accepted"
}
], - "invitees_truncated": false,
- "is_adhoc": false,
- "is_favorite": false,
- "is_time_independent": false,
- "room": {
- "call_in": {
- "id": "1234567890",
- "password": "9876543210",
- "tel": "+555-12345-67890"
}, - "e2e_encryption": false,
- "id": "00000000-0000-0000-0000-0000abadcafe",
- "password": "v3rys3cr3t",
- "waiting_room": false
}, - "shared_folder": {
}, - "show_meeting_details": true,
- "starts_at": {
- "datetime": "2024-07-05T17:02:42Z",
- "timezone": "Europe/Berlin"
}, - "streaming_targets": [
- {
- "id": "00000000-0000-0000-0000-000043434343",
- "kind": "custom",
- "name": "Example Stream",
- "streaming_key": "aabbccddeeff"
}
], - "title": "Team Event",
- "type": "single",
- "updated_at": "2024-07-20T14:16:19Z",
- "updated_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
}
Add an event to the current user's favorites
The event will be marked as favorited by the calling user.
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 The id of the event that gets marked as favorite |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Remove an event from the current user's favorites
The event will be marked as non-favorited by the calling user.
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 The id of the event that gets marked as non-favorited |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Get a list of the instances of an event
The instances are calculated based on the RRULE of the event. If no RRULE is set for the event, the single event instance is returned.
If no pagination query is added, the default page size is used.
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 The id of the event |
query Parameters
invitees_max | integer <int64> Maximum number of invitees to include inside the event |
time_min | string or null <date-time> Minimum time of the event instances |
time_max | string or null <date-time> Maximum time of the event instances |
per_page | integer or null <int64> How many events to return per page |
after | string (GetEventInstancesCursor) An encoded cursor pointing to a position in a series of elements |
Responses
Response samples
- 200
- 401
[- {
- "can_edit": false,
- "created_at": "2024-07-20T14:16:19Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "description": "The Weekly Team Event",
- "ends_at": {
- "datetime": "2024-07-22T11:00:00Z",
- "timezone": "Europe/Berlin"
}, - "id": "00000000-0000-0000-0000-004433221100_20240705T170242Z",
- "instance_id": "20240705T170242Z",
- "invite_status": "pending",
- "invitees": [
- {
- "profile": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "kind": "registered",
- "lastname": "Adams",
- "role": "user",
- "title": ""
}, - "status": "accepted"
}
], - "invitees_truncated": true,
- "is_all_day": false,
- "is_favorite": false,
- "recurring_event_id": "00000000-0000-0000-0000-004433221100",
- "room": {
- "call_in": {
- "id": "1234567890",
- "password": "9876543210",
- "tel": "+555-12345-67890"
}, - "e2e_encryption": false,
- "id": "00000000-0000-0000-0000-0000abadcafe",
- "password": "v3rys3cr3t",
- "waiting_room": false
}, - "shared_folder": {
}, - "starts_at": {
- "datetime": "2024-07-22T10:00:00Z",
- "timezone": "Europe/Berlin"
}, - "status": "ok",
- "title": "Team Event",
- "type": "recurring",
- "updated_at": "2024-07-20T14:16:19Z",
- "updated_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
}
]
Get an event instance
Returns the event instance resource
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 ID of the event |
instance_id required | string (InstanceId) Example: 2024-07-20T15:23:42+00:00 ID of the event instance |
query Parameters
invitees_max | integer <int64> Maximum number of invitees to return inside the event instance resource Default: 0 |
suppress_email_notification | boolean Flag to suppress email notification |
Responses
Response samples
- 200
- 401
{- "can_edit": false,
- "created_at": "2024-07-20T14:16:19Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "description": "The Weekly Team Event",
- "ends_at": {
- "datetime": "2024-07-22T11:00:00Z",
- "timezone": "Europe/Berlin"
}, - "id": "00000000-0000-0000-0000-004433221100_20240705T170242Z",
- "instance_id": "20240705T170242Z",
- "invite_status": "pending",
- "invitees": [
- {
- "profile": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "kind": "registered",
- "lastname": "Adams",
- "role": "user",
- "title": ""
}, - "status": "accepted"
}
], - "invitees_truncated": true,
- "is_all_day": false,
- "is_favorite": false,
- "recurring_event_id": "00000000-0000-0000-0000-004433221100",
- "room": {
- "call_in": {
- "id": "1234567890",
- "password": "9876543210",
- "tel": "+555-12345-67890"
}, - "e2e_encryption": false,
- "id": "00000000-0000-0000-0000-0000abadcafe",
- "password": "v3rys3cr3t",
- "waiting_room": false
}, - "shared_folder": {
}, - "starts_at": {
- "datetime": "2024-07-22T10:00:00Z",
- "timezone": "Europe/Berlin"
}, - "status": "ok",
- "title": "Team Event",
- "type": "recurring",
- "updated_at": "2024-07-20T14:16:19Z",
- "updated_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
}
API Endpoint `PATCH /events/{event_id}/{instance_id}`
Patch an instance of a recurring event. This creates or modifies an exception for the event at the point of time of the given instance_id. Returns the patched event instance
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 ID of the event |
instance_id required | string (InstanceId) Example: 2024-07-20T15:23:42+00:00 ID of the event instance |
query Parameters
invitees_max | integer <int64> Maximum number of invitees to return inside the event instance resource Default: 0 |
suppress_email_notification | boolean Flag to suppress email notification |
Request Body schema: application/jsonrequired
description | string <= 4096 characters The description of an event |
object Representation of a datetime timezone | |
is_all_day | boolean Flag to indicate if the event is all-day |
object Representation of a datetime timezone | |
status | string Enum: "ok" "cancelled" Status of an event |
title | string <= 255 characters The title of an event |
Responses
Request samples
- Payload
{- "is_all_day": false,
- "status": "cancelled",
- "title": "Early morning meeting"
}
Response samples
- 200
- 401
{- "can_edit": false,
- "created_at": "2024-07-20T14:16:19Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "description": "The Weekly Team Event",
- "ends_at": {
- "datetime": "2024-07-22T11:00:00Z",
- "timezone": "Europe/Berlin"
}, - "id": "00000000-0000-0000-0000-004433221100_20240705T170242Z",
- "instance_id": "20240705T170242Z",
- "invite_status": "pending",
- "invitees": [
- {
- "profile": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "kind": "registered",
- "lastname": "Adams",
- "role": "user",
- "title": ""
}, - "status": "accepted"
}
], - "invitees_truncated": true,
- "is_all_day": false,
- "is_favorite": false,
- "recurring_event_id": "00000000-0000-0000-0000-004433221100",
- "room": {
- "call_in": {
- "id": "1234567890",
- "password": "9876543210",
- "tel": "+555-12345-67890"
}, - "e2e_encryption": false,
- "id": "00000000-0000-0000-0000-0000abadcafe",
- "password": "v3rys3cr3t",
- "waiting_room": false
}, - "shared_folder": {
}, - "starts_at": {
- "datetime": "2024-07-22T10:00:00Z",
- "timezone": "Europe/Berlin"
}, - "status": "ok",
- "title": "Team Event",
- "type": "recurring",
- "updated_at": "2024-07-20T14:16:19Z",
- "updated_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
}
Decline an invite to an event
No content required, the request will accept the invitation.
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 The id of the event |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Accept an invite to an event
No content required, the request will accept the invitation.
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 The id of the event |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Get the invites for an event
Returns the list of event invites
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 The id of the event |
query Parameters
required | object Results will be paginated by this pagination specification |
status | string or null Enum: "pending" "accepted" "tentative" "declined" Example: status=accepted If present, the results will be filtered by that state |
Responses
Response samples
- 200
- 401
{- "can_edit": false,
- "created_at": "2024-07-20T14:16:19Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "description": "The Weekly Team Event",
- "ends_at": {
- "datetime": "2024-07-22T11:00:00Z",
- "timezone": "Europe/Berlin"
}, - "id": "00000000-0000-0000-0000-004433221100_20240705T170242Z",
- "instance_id": "20240705T170242Z",
- "invite_status": "pending",
- "invitees": [
- {
- "profile": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "kind": "registered",
- "lastname": "Adams",
- "role": "user",
- "title": ""
}, - "status": "accepted"
}
], - "invitees_truncated": true,
- "is_all_day": false,
- "is_favorite": false,
- "recurring_event_id": "00000000-0000-0000-0000-004433221100",
- "room": {
- "call_in": {
- "id": "1234567890",
- "password": "9876543210",
- "tel": "+555-12345-67890"
}, - "e2e_encryption": false,
- "id": "00000000-0000-0000-0000-0000abadcafe",
- "password": "v3rys3cr3t",
- "waiting_room": false
}, - "shared_folder": {
}, - "starts_at": {
- "datetime": "2024-07-22T10:00:00Z",
- "timezone": "Europe/Berlin"
}, - "status": "ok",
- "title": "Team Event",
- "type": "recurring",
- "updated_at": "2024-07-20T14:16:19Z",
- "updated_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
}
Create a new invite to an event
Create a new invite to an event with the fields sent in the body.
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 The id of the event |
query Parameters
suppress_email_notification | boolean Flag to suppress email notification |
Request Body schema: application/jsonrequired
invitee required | string <uuid> (UserId) The id of a user |
role | string (InviteRole) Enum: "user" "moderator" |
Responses
Request samples
- Payload
{- "invitee": "00000009-9889-9889-9889-988000000000",
- "role": "user"
}
Response samples
- 201
- 401
[- {
- "can_edit": false,
- "created_at": "2024-07-20T14:16:19Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "description": "The Weekly Team Event",
- "id": "00000000-0000-0000-0000-004433221100",
- "invite_status": "accepted",
- "invitees": [
- {
- "profile": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "kind": "registered",
- "lastname": "Adams",
- "role": "user",
- "title": ""
}, - "status": "accepted"
}
], - "invitees_truncated": false,
- "is_adhoc": false,
- "is_favorite": false,
- "is_time_independent": false,
- "room": {
- "call_in": {
- "id": "1234567890",
- "password": "9876543210",
- "tel": "+555-12345-67890"
}, - "e2e_encryption": false,
- "id": "00000000-0000-0000-0000-0000abadcafe",
- "password": "v3rys3cr3t",
- "waiting_room": false
}, - "shared_folder": {
}, - "show_meeting_details": true,
- "starts_at": {
- "datetime": "2024-07-05T17:02:42Z",
- "timezone": "Europe/Berlin"
}, - "streaming_targets": [
- {
- "id": "00000000-0000-0000-0000-000043434343",
- "kind": "custom",
- "name": "Example Stream",
- "streaming_key": "aabbccddeeff"
}
], - "title": "Team Event",
- "type": "single",
- "updated_at": "2024-07-20T14:16:19Z",
- "updated_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
}
]
Delete an invite from an event
Delete/Withdraw an event invitation using the email address as the identifier.
This will also withdraw invites from registered users if the provided email address matches theirs.
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 The id of the event |
query Parameters
suppress_email_notification | boolean Flag to disable email notification |
Request Body schema: application/jsonrequired
email required | string <email> (EmailAddress) An e-mail address |
Responses
Request samples
- Payload
{- "email": "alice@example.com"
}
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Patch an event email invite with the provided fields
Fields that are not provided in the request body will remain unchanged.
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 The id of the event to be modified |
Request Body schema: application/jsonrequired
email required | string <email> (EmailAddress) An e-mail address |
role | string or null Enum: "guest" "moderator" |
Responses
Request samples
- Payload
{- "email": "alice@example.com",
- "role": "guest"
}
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Delete an invite from an event
This will uninvite the user from the event
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 ID of the event to delete the invite for |
user_id required | string <uuid> (UserId) Example: 00000009-9889-9889-9889-988000000000 ID of the user to delete the invite for |
query Parameters
suppress_email_notification | boolean Flag to disable email notification |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Patch an event invite with the provided fields
Fields that are not provided in the request body will remain unchanged.
Authorizations:
path Parameters
event_id required | string <uuid> (EventId) Example: 00000000-0000-0000-0000-004433221100 The id of the event to be modified |
user_id required | string <uuid> (UserId) Example: 00000009-9889-9889-9889-988000000000 The id of the invited user to be modified |
Request Body schema: application/jsonrequired
role | string Enum: "user" "moderator" |
Responses
Request samples
- Payload
{- "role": "moderator"
}
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Get the assets associated with a room.
This returns assets that are available for a room. If no pagination query is added, the default page size is used.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
query Parameters
per_page | integer <int64> The number of entries per page |
page | integer <int64> The number of the page |
Responses
Response samples
- 200
- 401
[- {
- "created_at": "2024-06-18T11:22:33Z",
- "filename": "recording.webm",
- "id": "00000000-0000-0000-0000-0000aabbcc00",
- "kind": "record",
- "namespace": "recording",
- "size": 98765432
}
]
Get a specific asset inside a room.
This will return the plain asset contents, e.g. the binary file contents or whatever else is stored inside the asset storage.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
asset_id required | string <uuid> (AssetId) Example: 00000000-0000-0000-0000-0000aabbcc00 The id of the asset |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Delete an asset from a room.
The asset is removed from the room and deleted from the storage.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
asset_id required | string <uuid> (AssetId) Example: 00000000-0000-0000-0000-0000aabbcc00 The id of the asset |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Get the sip config for the specified room.
Returns the sip config if available for the room, otherwise 404 NOT_FOUND
is returned.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
Responses
Response samples
- 200
- 401
{- "lobby": false,
- "password": "9876543210",
- "room": "00000000-0000-0000-0000-0000abadcafe",
- "sip_id": "0123456789"
}
Modify the sip configuration of a room. A new sip configuration is created
if none was set before.
Returns the new modified sip configuration. Get the sip config for the specified room.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
Request Body schema: application/jsonrequired
lobby | boolean Enable or disable the lobby for users that join throughh SIP. Defaults
to [ |
password | string = 10 characters [0-9]+ A string containing number characters |
Responses
Request samples
- Payload
{- "lobby": true,
- "password": "9876543210"
}
Response samples
- 200
- 201
- 401
{- "lobby": false,
- "password": "9876543210",
- "room": "00000000-0000-0000-0000-0000abadcafe",
- "sip_id": "0123456789"
}
Delete the SIP configuration of a room.
This removes the dial-in functionality from the room.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Starts a signaling session
Takes call-in id and pin and returns a ticket for the /signaling
endpoint. Behaves similar to the
/rooms/{room_id}/start
endpoint.
This endpoint is provided for call-in gateways to start a room connection for call-in participants. The participant typically has to provide the credentials (id and pin) via DTMF (the number pad).
Authorizations:
Request Body schema: application/jsonrequired
id required | string (CallInId) = 10 characters [0-9]+ A string containing number characters |
pin required | string (CallInPassword) = 10 characters [0-9]+ A string containing number characters |
Responses
Request samples
- Payload
{- "id": "0000000000",
- "pin": "0000000000"
}
Response samples
- 200
- 400
- 401
{- "resumption": "string",
- "ticket": "string"
}
Starts a signaling session for recording
This endpoint is provided for participation of recording and streaming clients which will join incognito and receive all the information and media streams required for creating a recording or livestream of the meeting.
Authorizations:
Request Body schema: application/jsonrequired
breakout_room | string or null <uuid> The id of a breakout room |
room_id required | string <uuid> (RoomId) The id of a room |
Responses
Request samples
- Payload
{- "breakout_room": "00000000-0000-0000-0000-0000badcab1e",
- "room_id": "00000000-0000-0000-0000-0000abadcafe"
}
Response samples
- 200
- 401
- 404
{- "resumption": "string",
- "ticket": "string"
}
Streaming upload of a rendered recording
This is a WebSocket endpoint, all the data that is sent in binary messages is stored in the destination file.
Authorizations:
query Parameters
room_id required | string <uuid> (RoomId) Example: room_id=00000000-0000-0000-0000-0000abadcafe The room id |
file_extension required | string (FileExtension) <= 10 characters ^[0-9a-zA-Z]*$ Example: file_extension=pdf The file extension |
timestamp required | string <date-time> (Timestamp) The recording creation timestamp |
header Parameters
connection required | string Value: "Upgrade" |
upgrade required | string Value: "websocket" |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Upload a rendered recording Deprecated
The body of this request should simply contain the raw data.
This endpoint is deprecated, please use the streaming upload
/services/recording/upload
WebSocket endpoint instead.
Authorizations:
query Parameters
room_id required | string <uuid> (RoomId) Example: room_id=00000000-0000-0000-0000-0000abadcafe The room id |
file_extension required | string (FileExtension) <= 10 characters ^[0-9a-zA-Z]*$ Example: file_extension=pdf The file extension |
timestamp required | string <date-time> (Timestamp) The recording creation timestamp |
Request Body schema: application/octet-streamrequired
The raw data to be uploaded
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
List the streaming targets of a room
Returns the streaming targets available for a room
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
query Parameters
per_page | integer <int64> The number of entries per page |
page | integer <int64> The number of the page |
Responses
Response samples
- 200
- 401
[- {
- "id": "00000000-0000-0000-0000-000043434343",
- "kind": "custom",
- "name": "Example Stream",
- "streaming_key": "aabbccddeeff"
}
]
Create a new streaming target
Creates a new streaming target for the given room
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The id of the room |
query Parameters
suppress_email_notification | boolean Flag to disable email notification |
Request Body schema: application/jsonrequired
Responses
Request samples
- Payload
{- "kind": "StreamingTarget",
- "name": "Example Stream",
- "streaming_key": "aabbccddeeff"
}
Response samples
- 200
- 401
{- "kind": "StreamingTarget",
- "name": "Example Stream",
- "streaming_key": "aabbccddeeff"
}
Get a streaming target
Returns a single streaming target for a specific room.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The room id for the invite |
streaming_target_id required | string <uuid> (StreamingTargetId) Example: 00000000-0000-0000-0000-000043434343 The streaming target id |
Responses
Response samples
- 200
- 401
{- "kind": "StreamingTarget",
- "name": "Example Stream",
- "streaming_key": "aabbccddeeff"
}
Deletes a single streaming target.
The streaming target is deleted from the room.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The room id for the invite |
streaming_target_id required | string <uuid> (StreamingTargetId) Example: 00000000-0000-0000-0000-000043434343 The streaming target id |
query Parameters
suppress_email_notification | boolean Flag to disable email notification |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}
Update a room streaming target
Modifies and returns a single streaming target.
Authorizations:
path Parameters
room_id required | string <uuid> (RoomId) Example: 00000000-0000-0000-0000-0000abadcafe The room id for the invite |
streaming_target_id required | string <uuid> (StreamingTargetId) Example: 00000000-0000-0000-0000-000043434343 The streaming target id |
Request Body schema: application/jsonrequired
Responses
Request samples
- Payload
Response samples
- 200
- 401
{- "kind": "StreamingTarget",
- "name": "Example Stream",
- "streaming_key": "aabbccddeeff"
}
Get a TURN server and corresponding credentials
The returned TURN server can be used with the credentials to circumvent NAT restrictions.
Authorizations:
Responses
Response samples
- 200
- 401
[- {
- "password": "string",
- "ttl": "string",
- "uris": [
- "string"
], - "username": "string"
}
]
Find users
Query users for autocomplete fields
Authorizations:
query Parameters
q required | string The query string |
Responses
Response samples
- 200
- 401
[- {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": "",
- "kind": "registered"
}
]
Get the current user's profile
Returns the private user profile of the currently logged-in user. This private profile contains information that is not visible in the public profile, such as tariff status or the used storage.
Authorizations:
Responses
Response samples
- 200
- 401
{- "avatar_url": "string",
- "conference_theme": "string",
- "dashboard_theme": "string",
- "display_name": "string",
- "email": "string",
- "firstname": "string",
- "id": "00000009-9889-9889-9889-988000000000",
- "language": "string",
- "lastname": "string",
- "tariff_status": "default",
- "title": "string",
- "used_storage": 0
}
Patch the current user's profile
Fields that are not provided in the request body will remain unchanged.
Authorizations:
Request Body schema: application/jsonrequired
conference_theme | string or null The conference theme |
dashboard_theme | string or null The dashboard theme |
display_name | string or null The user's display name |
language | string or null The user's language |
title | string or null The user's title |
Responses
Request samples
- Payload
{- "conference_theme": null,
- "dashboard_theme": null,
- "display_name": "Alice Adams",
- "language": "en",
- "title": null
}
Response samples
- 200
- 401
{- "created_at": "1970-01-01T00:00:00Z",
- "created_by": {
- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}, - "id": "00000000-0000-0000-0000-000000000000",
- "password": "v3rys3cr3t",
- "waiting_room": false
}
Get the assets associated with the user.
All assets associated to the requesting user are returned in a list. If no pagination query is added, the default page size is used.
Authorizations:
query Parameters
per_page | integer <int64> The number of entries per page |
page | integer <int64> The number of the page |
sort required | string (AssetSorting) Enum: "filename" "size" "namespace" "kind" "created_at" sort by this field |
order required | string (Ordering) Enum: "ascending" "descending" ordering direction |
Responses
Response samples
- 200
- 401
{- "owned_assets": [
- {
- "created_at": "2024-06-18T11:22:33Z",
- "event_id": "00000000-0000-0000-0000-004433221100",
- "filename": "recording.webm",
- "id": "00000000-0000-0000-0000-0000aabbcc00",
- "kind": "record",
- "namespace": "recording",
- "room_id": "00000000-0000-0000-0000-0000abadcafe",
- "size": 98765432
}
]
}
Get the current user tariff information.
Returns the tariff information for the currently logged in user.
Authorizations:
Responses
Response samples
- 200
- 401
{- "disabled_features": [
- "recording::stream"
], - "enabled_modules": [
- "chat",
- "core",
- "media",
- "moderation",
- "recording"
], - "id": "00000000-0000-0000-0000-000000000000",
- "modules": {
- "chat": {
- "features": [ ]
}, - "core": {
- "features": [ ]
}, - "media": {
- "features": [ ]
}, - "moderation": {
- "features": [ ]
}, - "recording": {
- "features": [
- "record"
]
}
}, - "name": "Starter tariff",
- "quotas": {
- "max_storage": 50000
}
}
Get a user's public profile
Returns the public profile of a user.
Authorizations:
path Parameters
user_id required | string <uuid> (UserId) Example: 00000009-9889-9889-9889-988000000000 The id of the user |
Responses
Response samples
- 200
- 401
{- "display_name": "Alice Adams",
- "email": "alice@example.com",
- "firstname": "Alice",
- "id": "00000000-0000-0000-0000-0000000a11c3",
- "lastname": "Adams",
- "title": ""
}
Room signaling websocket
The room signaling websocket. Documentation: https://docs.opentalk.eu/developer/controller/signaling/.
Authorizations:
header Parameters
Sec-WebSocket-Protocol required | string^opentalk-signaling-json-v1.0, ticket#.*$ Example: opentalk-signaling-json-v1.0, ticket#eyJpc3MiOiJodHRwczovL2V4YW1wbGUuYXV0aDAuY29tLy |
connection required | string Value: "Upgrade" |
upgrade required | string Value: "websocket" |
Responses
Response samples
- 401
{- "code": "string",
- "message": "string"
}