Skip to main content

REST API

OpenTalk Controller Frontend API (1)

Download OpenAPI specification:Download

License: EUPL-1.2

Specifies the endpoints and structure of the OpenTalk Controller Frontend API

rooms

Endpoints related to room functionality

Get a list of accessible rooms

Get a list of all rooms that are accessible by the requesting user.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new room

Create a new room from the provided PostRoomsBody.

Authorizations:
BearerAuth
Request Body schema: application/json
required
password
required
string <= 255 characters

The room password

enable_sip
required
boolean

When enabled, a new sip configuration is generated for the roomRescheduleEvent

waiting_room
boolean

Indicates whether the meeting room should have the waiting room enabled. If absent, the waiting room will be disabled.

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "enable_sip": true,
  • "waiting_room": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "created_at": "string",
  • "password": "pa$$word",
  • "waiting_room": true
}

Patch a room

Patches a room with the provided PatchRoomsBody.

Authorizations:
BearerAuth
path Parameters
room_id
required
string <uuid>

The id of the room to be modified.

Request Body schema: application/json
required
password
string <= 255 characters

The password of this room

waiting_room
boolean

Indicates whether the meeting room should have the waiting room enabled.

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "waiting_room": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "created_at": "string",
  • "password": "pa$$word",
  • "waiting_room": true
}

Get a room

Get a room by id.

Authorizations:
BearerAuth
path Parameters
room_id
required
string <uuid>

Id of the requested room

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "created_at": "string",
  • "password": "pa$$word",
  • "waiting_room": true
}

Delete a room

Delete a room by id

Authorizations:
BearerAuth
path Parameters
room_id
required
string <uuid>

Id of the requested room

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Get a room's tariff information

Returns a description of the tariff of the given room.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "9ffa9185-7453-4fb2-aa6a-3105a6ae83a8",
  • "quotas": {
    },
  • "enabled_modules": [
    ],
  • "disabled_features": [
    ],
  • "modules": [
    ]
}

Get a room's event information

Returns a description of the event of the given room.

Authorizations:
BearerAuthInviteCode
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "is_adhoc": true
}

Start a signaling session as a registered user

Returns a ticket to be used with the /signaling endpoint. When joining a room, the ticket must be provided as a Sec-WebSocket-Protocol header field when starting the WebSocket connection. When the requested room has a password set, the requester has to provide the correct password through the requests body. When the room has no password set, the provided password will be ignored.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Request Body schema: application/json
required
breakout_room
integer

ID of the breakout room

resumption
string

Token to resume previous session inside the same room

Responses

Request samples

Content type
application/json
{
  • "breakout_room": 0,
  • "resumption": "string"
}

Response samples

Content type
application/json
{
  • "ticket": "string",
  • "resumption": "string"
}

Start a signaling session for an invition code

Returns a ticket to be used with the /signaling endpoint. When joining a room, the ticket must be provided as a Sec-WebSocket-Protocol header field when starting the WebSocket connection. When the requested room has a password set, the requester has to provide the correct password through the requests body. When the room has no password set, the provided password will be ignored.

path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Request Body schema: application/json
required
password
required
string <= 128 characters

The room password

breakout_room
integer

ID of the breakout room

invite_code
required
string <= 128 characters

The invite_code

resumption
string

Token to resume previous session inside the same room

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "breakout_room": 0,
  • "invite_code": "string",
  • "resumption": "string"
}

Response samples

Content type
application/json
{
  • "ticket": "string",
  • "resumption": "string"
}

Get all invites

Gets all invites the user has access to.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

query Parameters
per_page
integer
Default: 30

Results per page (max 100)

page
integer
Default: 1

Page number of the results to fetch.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new invite

Create a new invite from the provided object. On success, the controller will create a new Invite and return the InviteCode object. Returns 404 Not Found when the user has no access to the room.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Request Body schema: application/json
required
expiration
string <date-time>

Expiration date of this invite, or null if no expiration is set

Responses

Request samples

Content type
application/json
{
  • "expiration": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "invite_code": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated": "string",
  • "updated_by": {
    },
  • "room": "2fa2a266-7d97-4147-8f17-1e57105c70ea",
  • "active": true,
  • "expiration": "2019-08-24T14:15:22Z"
}

Get an invite

Get the invite for the given room_id and invite_code.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

invite_code
required
string

The invite_code

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update an invite code

Update an invite from the provided object. On success, the controller will return the updated InviteCode object.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

invite_code
required
string

The invite_code

Request Body schema: application/json
required
non-empty
expiration
string <date-time>

Expiration date of this invite, or null if no expiration is set

Responses

Request samples

Content type
application/json
{
  • "expiration": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "invite_code": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated": "string",
  • "updated_by": {
    },
  • "room": "2fa2a266-7d97-4147-8f17-1e57105c70ea",
  • "active": true,
  • "expiration": "2019-08-24T14:15:22Z"
}

Delete an invite code

Delete the respective invite. On success, the controller will return 200 OK.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

invite_code
required
string

The invite_code

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Get the rooms SIP config

Returns the SIP config of this room.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Responses

Response samples

Content type
application/json
{
  • "room": "2fa2a266-7d97-4147-8f17-1e57105c70ea",
  • "sip_id": "string",
  • "password": "string",
  • "lobby": true
}

Create or modify the rooms SIP config

When the room has no sip config configured, a new one is created based on the provided request body and a 201 CREATED response is returned. When the room already has a sip config, the config will be modified and a 200 OK response is returned.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Request Body schema: application/json
required
non-empty
password
string <= 10 characters

Numeric string with 10 characters to secure room access. Is automatically generated when not set on creation.

lobby
boolean

Enable/Disable a lobby for users that join through SIP. Defaults to false when not set on creation.

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "lobby": true
}

Response samples

Content type
application/json
{
  • "room": "2fa2a266-7d97-4147-8f17-1e57105c70ea",
  • "sip_id": "string",
  • "password": "string",
  • "lobby": true
}

Delete a rooms sip config

Deletes the rooms sip config and thus disables participants from joining via SIP.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Responses

Get assets for a room

Gets all assets that are available in a room.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

query Parameters
per_page
integer
Default: 30

Results per page (max 100)

page
integer
Default: 1

Page number of the results to fetch.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get an asset

Get the asset for the given room_id and asset_id.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

asset_id
required
string <uuid>

The ID of the requested asset

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Delete an asset

Delete the respective asset.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

asset_id
required
string <uuid>

The ID of the requested asset

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

List the streaming targets for a room

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a streaming target for a room

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

query Parameters
suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Request Body schema: application/json
required
name
required
string

The name of the streaming target

kind
required
string
Value: "custom"

The kind of the streaming target

streaming_endpoint
required
string <uri>

The endpoint url of the streaming target

streaming_key
required
string

The streaming key

public_url
required
string <uri>

The url from which the stream can be accessed

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application_json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "kind": "custom",
  • "streaming_endpoint": "http://example.com",
  • "streaming_key": "string",
  • "public_url": "http://example.com"
}

Get the streaming target for a room

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

streaming_target_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Responses

Response samples

Content type
application_json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "kind": "custom",
  • "streaming_endpoint": "http://example.com",
  • "streaming_key": "string",
  • "public_url": "http://example.com"
}

Update a streaming target for a room

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

streaming_target_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

query Parameters
suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Request Body schema: application/json
required
name
string

The name of the streaming target

kind
string
Value: "custom"

The kind of the streaming target

streaming_endpoint
string <uri>

The endpoint url of the streaming target

streaming_key
string

The streaming key

public_url
string <uri>

The url from which the stream can be accessed

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application_json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "kind": "custom",
  • "streaming_endpoint": "http://example.com",
  • "streaming_key": "string",
  • "public_url": "http://example.com"
}

Delete the streaming target for a room

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

streaming_target_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

query Parameters
suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Responses

events

Endpoints related to event functionality

Get a room's event information

Returns a description of the event of the given room.

Authorizations:
BearerAuthInviteCode
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "is_adhoc": true
}

Favorite an event

Add the event to the current user's favorite list

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Unfavorite an event

remove the event from the current user's favorite list

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Create a new event

Create a new event

Authorizations:
BearerAuth
query Parameters
suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Request Body schema: application/json
required
One of
title
required
string <= 255 characters

Title of the event

description
required
string <= 4096 characters

Description of the event

password
string [ 1 .. 255 ] characters

Password of the room in which the event will take place

is_adhoc
boolean

Marks this event as adhoc

waiting_room
boolean

Indicates whether the meeting room should have the waiting room enabled. If absent, the waiting room will be disabled.

is_time_independent
required
boolean

Marks the event as time independent. No time/schedule related fields will be set.

is_all_day
required
boolean

Marks this event as an event that has no start time / end time but only start and end date

Array of objects (StreamingTarget)

The streaming targets of the room associated with the event

has_shared_folder
boolean

Indicates whether the meeting room should have a shared folder. If absent, no shared folder will be created.

required
object (DateTimeTZ)

Start time of the event. For all-day events the time-part must be zero (00:00).

required
object (DateTimeTZ)

End time of the event. For recurring events this is the first instance's end time. If the duration is unknown, this SHOULD equal starts_at. For all-day events the time-part must be zero (00:00).

recurrence_pattern
Array of strings <RFC 5545 recurrence attribute> (RecurrencePattern) <= 4 items [ items <RFC 5545 recurrence attribute > <= 1024 characters ]

List of recurrence rules which describe the occurrences of the event. To get all event instances resolved use the the GET /events/{event_id}/instances endpoint. Changing this field will always remove all exceptions for the event.

Allowed are RRULE, RDATE, EXRULE and EXDATE.

The DTSTART and DTEND attributes are not allowed as their information is stored in the starts_at and ends_at fields.

Responses

Request samples

Content type
application/json
Example
{
  • "title": "string",
  • "description": "string",
  • "password": "string",
  • "is_adhoc": true,
  • "waiting_room": true,
  • "is_time_independent": false,
  • "is_all_day": true,
  • "streaming_targets": [],
  • "has_shared_folder": true,
  • "starts_at": {
    },
  • "ends_at": {
    },
  • "recurrence_pattern": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_by": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "updated_at": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "description": "string",
  • "room": {
    },
  • "invitees_truncated": true,
  • "invitees": [
    ],
  • "is_time_independent": false,
  • "is_all_day": true,
  • "streaming_targets": [
    ],
  • "starts_at": {
    },
  • "ends_at": {
    },
  • "recurrence_pattern": [
    ],
  • "is_adhoc": true,
  • "type": "single",
  • "status": "cancelled",
  • "invite_status": "pending",
  • "is_favorite": true,
  • "shared_folder": {}
}

Get events

Get events in a specified time range. Recurring events that are possible to be inside the time range will also be returned. Also included are the exceptions for recurring events, in this case the id will be an instance id and the recurring_event_id is set.

Authorizations:
BearerAuth
query Parameters
time_min
string <date-time>

Lower bound of the time range (as a RFC3339 UTC timestamp)

time_max
string <date-time>

Upper bound of the time range (as a RFC3339 UTC timestamp)

invitees_max
integer
Default: 0

maximum number of invitees sent with an event

per_page
integer
Default: 30

Results per page (max 100)

after
string

Page cursor. Needs to be handled opaque

favorites
boolean

Only include favorite events

adhoc
boolean

If present, either only adhoc or non-adhoc events are returned, depending on the flag value. If absent, all events are returned regardless their adhoc flag.

time_independent
boolean

If present, either only time-independent or time-dependent events are returned, depending on the flag value. If absent, all events are returned regardless their time dependency.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get event resource

Get the Event resource for the given id

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

query Parameters
invitees_max
integer
Default: 0

maximum number of invitees sent with an event

Responses

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_by": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "updated_at": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "description": "string",
  • "room": {
    },
  • "invitees_truncated": true,
  • "invitees": [
    ],
  • "is_time_independent": false,
  • "is_all_day": true,
  • "streaming_targets": [
    ],
  • "starts_at": {
    },
  • "ends_at": {
    },
  • "recurrence_pattern": [
    ],
  • "is_adhoc": true,
  • "type": "single",
  • "status": "cancelled",
  • "invite_status": "pending",
  • "is_favorite": true,
  • "shared_folder": {}
}

Update an event or a single event occurrence

Update fields on an event. If you change the recurrence pattern of an recurring event, all exceptions to this recurring event are invalidated and deleted.

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

query Parameters
invitees_max
integer
Default: 0

maximum number of invitees sent with an event

suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Request Body schema: application/json
required
non-empty
title
string <= 255 characters

Title of the event

description
string <= 4096 characters

Description of the event

password
string [ 1 .. 255 ] characters

Password of the room the event uses

is_adhoc
boolean

Marks the event as adhoc

waiting_room
boolean

Indicates whether the meeting room should have the waiting room enabled.

is_time_independent
boolean

Marks the event as time independent. No time/schedule related fields will be set.

is_all_day
boolean

Marks this event as an event that has no start time / end time but only start and end date

object (DateTimeTZ)

Start time of the event. This is used to match exceptions.

object (DateTimeTZ)

End time of the event. For recurring events this is the first instance's end time. ends_at - starts_at is the duration of a single event or an instance. If the duration is unknown, this equals starts_at.

recurrence_pattern
Array of strings <RFC 5545 recurrence attribute> (RecurrencePattern) <= 4 items [ items <RFC 5545 recurrence attribute > <= 1024 characters ]

List of recurrence rules which describe the occurrences of the event. To get all event instances resolved use the the GET /events/{event_id}/instances endpoint. Changing this field will always remove all exceptions for the event.

Allowed are RRULE, RDATE, EXRULE and EXDATE.

The DTSTART and DTEND attributes are not allowed as their information is stored in the starts_at and ends_at fields.

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "password": "string",
  • "is_adhoc": true,
  • "waiting_room": true,
  • "is_time_independent": true,
  • "is_all_day": true,
  • "starts_at": {
    },
  • "ends_at": {
    },
  • "recurrence_pattern": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_by": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "updated_at": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "description": "string",
  • "room": {
    },
  • "invitees_truncated": true,
  • "invitees": [
    ],
  • "is_time_independent": false,
  • "is_all_day": true,
  • "streaming_targets": [
    ],
  • "starts_at": {
    },
  • "ends_at": {
    },
  • "recurrence_pattern": [
    ],
  • "is_adhoc": true,
  • "type": "single",
  • "status": "cancelled",
  • "invite_status": "pending",
  • "is_favorite": true,
  • "shared_folder": {}
}

Delete an event

Delete an event

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

query Parameters
suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Get instances of the specified event

Get the RRULE based instances for the specific event. If the event has no RRULE set, the single shot event instance will be returned

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

query Parameters
time_min
string <date-time>

Lower bound of the time range (as a RFC3339 UTC timestamp)

time_max
string <date-time>

Upper bound of the time range (as a RFC3339 UTC timestamp)

per_page
integer
Default: 30

Results per page (max 100)

cursor
string

Page cursor. Needs to be handled opaque

invitees_max
integer
Default: 0

maximum number of invitees sent with an event

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a single event instance

Get an event instance.

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

instance_id
required
string
Example: 20220215T180000Z,20220215T180000+0100

Opaque id of an event instance

query Parameters
invitees_max
integer
Default: 0

maximum number of invitees sent with an event

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "recurring_event_id": "050aa237-bac2-4a0f-914a-2ac7c3e5e586",
  • "instance_id": "string",
  • "created_by": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "updated_at": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "description": "string",
  • "room": {
    },
  • "invitees_truncated": true,
  • "invitees": [
    ],
  • "is_all_day": true,
  • "starts_at": {
    },
  • "ends_at": {
    },
  • "type": "instance",
  • "status": "cancelled",
  • "invite_status": "pending",
  • "is_favorite": true
}

Update a single event instance

Update fields on an event instance.

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

instance_id
required
string
Example: 20220215T180000Z,20220215T180000+0100

Opaque id of an event instance

query Parameters
invitees_max
integer
Default: 0

maximum number of invitees sent with an event

suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Request Body schema: application/json
required
non-empty
title
string <= 255 characters

Title of the event

description
string <= 4096 characters

Description of the event

is_all_day
boolean

Marks this event as an event that has no start time / end time but only start and end date

object (DateTimeTZ)

Start time of the event. This is used to match exceptions.

object (DateTimeTZ)

End time of the event. For recurring events this is the first instance's end time. ends_at - starts_at is the duration of a single event or an instance. If the duration is unknown, this equals starts_at.

status
string
Enum: "cancelled" "ok"

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "is_all_day": true,
  • "starts_at": {
    },
  • "ends_at": {
    },
  • "status": "cancelled"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "recurring_event_id": "050aa237-bac2-4a0f-914a-2ac7c3e5e586",
  • "instance_id": "string",
  • "created_by": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_by": {
    },
  • "updated_at": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "description": "string",
  • "room": {
    },
  • "invitees_truncated": true,
  • "invitees": [
    ],
  • "is_all_day": true,
  • "starts_at": {
    },
  • "ends_at": {
    },
  • "type": "instance",
  • "status": "cancelled",
  • "invite_status": "pending",
  • "is_favorite": true
}

Create an invite to an event

Invite a user to an event

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

query Parameters
suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Request Body schema: application/json
required
One of
email
string

Email address of the user to be invited

role
string
Enum: "guest" "moderator"

The role for the invited user

Responses

Request samples

Content type
application/json
Example
{
  • "email": "string",
  • "role": "guest"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Get invitees of the specified event

Returns a list of user profiles and their invite acceptance status

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

query Parameters
status
string
Enum: "pending" "accepted" "tentative" "declined"
Example: status=pending&status=accepted&status=tentative&status=declined

Filter by an event invite status

per_page
integer
Default: 30

Results per page (max 100)

page
integer
Default: 1

Page number of the results to fetch.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update invite to an event

Update the invite to an event for a specified user

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

user_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

Id of an user

Request Body schema: application/json
required
role
string
Enum: "user" "moderator"

The role for the invited user

Responses

Request samples

Content type
application/json
{
  • "role": "user"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Delete invite to an event

Delete/retract an invite to an event for a specified user

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

user_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

Id of an user

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Update invite to an event using the email address as the identifier.

Update the invite to an event for a specified email address

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Request Body schema: application/json
required
email
required
string <email>

The email address of the invited participant

role
string
Enum: "guest" "moderator"

The role for the invited user

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "role": "guest"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Delete an email invite to 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:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Request Body schema: application/json
required
email
required
string <email>

The email address of the invited participant

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Accept an event invite

Accept an event invite for the current user to the specified event

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Decline an event invite

Decline an event invite for the current user to the specified event

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Get the shared folder for an event

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Responses

Response samples

Content type
application_json
{}

Create a shared folder for an event

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

query Parameters
suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Responses

Response samples

Content type
application_json
{}

Delete the shared folder for an event

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

query Parameters
force_delete_reference_if_shared_folder_deletion_fails
boolean
Default: false

Delete shared folder information from the database, even if the shared folder itself could not be deleted on the remote system that provides it (e.g. the NextCloud instance)

suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Responses

Information about pending invites

Returns information about pending invites for the current user

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "total_pending_invites": 0
}

invite_codes

Endpoints related to invite code functionality

Start a signaling session for an invition code

Returns a ticket to be used with the /signaling endpoint. When joining a room, the ticket must be provided as a Sec-WebSocket-Protocol header field when starting the WebSocket connection. When the requested room has a password set, the requester has to provide the correct password through the requests body. When the room has no password set, the provided password will be ignored.

path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Request Body schema: application/json
required
password
required
string <= 128 characters

The room password

breakout_room
integer

ID of the breakout room

invite_code
required
string <= 128 characters

The invite_code

resumption
string

Token to resume previous session inside the same room

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "breakout_room": 0,
  • "invite_code": "string",
  • "resumption": "string"
}

Response samples

Content type
application/json
{
  • "ticket": "string",
  • "resumption": "string"
}

Get all invites

Gets all invites the user has access to.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

query Parameters
per_page
integer
Default: 30

Results per page (max 100)

page
integer
Default: 1

Page number of the results to fetch.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new invite

Create a new invite from the provided object. On success, the controller will create a new Invite and return the InviteCode object. Returns 404 Not Found when the user has no access to the room.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Request Body schema: application/json
required
expiration
string <date-time>

Expiration date of this invite, or null if no expiration is set

Responses

Request samples

Content type
application/json
{
  • "expiration": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "invite_code": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated": "string",
  • "updated_by": {
    },
  • "room": "2fa2a266-7d97-4147-8f17-1e57105c70ea",
  • "active": true,
  • "expiration": "2019-08-24T14:15:22Z"
}

Get an invite

Get the invite for the given room_id and invite_code.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

invite_code
required
string

The invite_code

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update an invite code

Update an invite from the provided object. On success, the controller will return the updated InviteCode object.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

invite_code
required
string

The invite_code

Request Body schema: application/json
required
non-empty
expiration
string <date-time>

Expiration date of this invite, or null if no expiration is set

Responses

Request samples

Content type
application/json
{
  • "expiration": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "invite_code": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "created_by": {
    },
  • "updated": "string",
  • "updated_by": {
    },
  • "room": "2fa2a266-7d97-4147-8f17-1e57105c70ea",
  • "active": true,
  • "expiration": "2019-08-24T14:15:22Z"
}

Delete an invite code

Delete the respective invite. On success, the controller will return 200 OK.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

invite_code
required
string

The invite_code

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Verify an invite code

Verifies the invite and returns the room_url for this invite_code

Authorizations:
BearerAuth
Request Body schema: application/json
required
invite_code
required
string

The invites invite_code

Responses

Request samples

Content type
application/json
{
  • "invite_code": "string"
}

Response samples

Content type
application/json
{
  • "room_id": "05451321-18e1-4bfa-aa22-dfd0080cc120",
  • "password_required": true
}

event_invites

Endpoints related to invitations for events

Create an invite to an event

Invite a user to an event

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

query Parameters
suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Request Body schema: application/json
required
One of
email
string

Email address of the user to be invited

role
string
Enum: "guest" "moderator"

The role for the invited user

Responses

Request samples

Content type
application/json
Example
{
  • "email": "string",
  • "role": "guest"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Get invitees of the specified event

Returns a list of user profiles and their invite acceptance status

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

query Parameters
status
string
Enum: "pending" "accepted" "tentative" "declined"
Example: status=pending&status=accepted&status=tentative&status=declined

Filter by an event invite status

per_page
integer
Default: 30

Results per page (max 100)

page
integer
Default: 1

Page number of the results to fetch.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update invite to an event

Update the invite to an event for a specified user

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

user_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

Id of an user

Request Body schema: application/json
required
role
string
Enum: "user" "moderator"

The role for the invited user

Responses

Request samples

Content type
application/json
{
  • "role": "user"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Delete invite to an event

Delete/retract an invite to an event for a specified user

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

user_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

Id of an user

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Update invite to an event using the email address as the identifier.

Update the invite to an event for a specified email address

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Request Body schema: application/json
required
email
required
string <email>

The email address of the invited participant

role
string
Enum: "guest" "moderator"

The role for the invited user

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "role": "guest"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Delete an email invite to 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:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Request Body schema: application/json
required
email
required
string <email>

The email address of the invited participant

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Accept an event invite

Accept an event invite for the current user to the specified event

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Decline an event invite

Decline an event invite for the current user to the specified event

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Information about pending invites

Returns information about pending invites for the current user

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "total_pending_invites": 0
}

signaling

Endpoints related to signaling functionality

Start a signaling session as a registered user

Returns a ticket to be used with the /signaling endpoint. When joining a room, the ticket must be provided as a Sec-WebSocket-Protocol header field when starting the WebSocket connection. When the requested room has a password set, the requester has to provide the correct password through the requests body. When the room has no password set, the provided password will be ignored.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Request Body schema: application/json
required
breakout_room
integer

ID of the breakout room

resumption
string

Token to resume previous session inside the same room

Responses

Request samples

Content type
application/json
{
  • "breakout_room": 0,
  • "resumption": "string"
}

Response samples

Content type
application/json
{
  • "ticket": "string",
  • "resumption": "string"
}

Start a signaling session for an invition code

Returns a ticket to be used with the /signaling endpoint. When joining a room, the ticket must be provided as a Sec-WebSocket-Protocol header field when starting the WebSocket connection. When the requested room has a password set, the requester has to provide the correct password through the requests body. When the room has no password set, the provided password will be ignored.

path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Request Body schema: application/json
required
password
required
string <= 128 characters

The room password

breakout_room
integer

ID of the breakout room

invite_code
required
string <= 128 characters

The invite_code

resumption
string

Token to resume previous session inside the same room

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "breakout_room": 0,
  • "invite_code": "string",
  • "resumption": "string"
}

Response samples

Content type
application/json
{
  • "ticket": "string",
  • "resumption": "string"
}

Room Signaling Websocket

The room signaling websocket. See asyncapi specs for details.

Authorizations:
BearerAuth
header Parameters
required
string or string (SignalingProtocolHeader)
Example: opentalk-signaling-json-v1.0, ticket#eyJpc3MiOiJodHRwczovL2V4YW1wbGUuYXV0aDAuY29tLy
Connection
required
string
Value: "Upgrade"
Example: Upgrade
Upgrade
required
string
Value: "websocket"
Example: websocket

Responses

Starts a signaling session given a room id and pin

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 users. The user has to provide the credentials (id and pin) via DTMF (the number pad).

Authorizations:
BearerAuth
Request Body schema: application/json
required
id
required
string <= 10 characters

Unique numeric string with 10 characters to identify the room

pin
required
string <= 10 characters

Numeric string with 10 characters to secure room access

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "pin": "string"
}

Response samples

Content type
application/json
{
  • "ticket": "string",
  • "resumption": "string"
}

users

Endpoints related to user functionality

Get all users

Returns a list of all users visible to the authenticated user, as PublicUserProfile.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Patch the current users settings

Patch the current users settings with a PatchUserBody object. Returns the updated user profile

Authorizations:
BearerAuth
Request Body schema: application/json
non-empty
title
string <= 255 characters

The users display name

display_name
string <= 255 characters

Display name of the user

language
string <= 35 characters

The users preferred language as specified in RFC 5646

dashboard_theme
string <= 128 characters

The users dashboard UI theme name

conference_theme
string <= 128 characters

The users conference UI theme name

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "display_name": "string",
  • "language": "string",
  • "dashboard_theme": "string",
  • "conference_theme": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "email": "user@example.com",
  • "title": "string",
  • "firstname": "string",
  • "lastname": "string",
  • "display_name": "string",
  • "avatar_url": "string",
  • "dashboard_theme": "string",
  • "conference_theme": "string",
  • "language": "string",
  • "tariff_status": "default",
  • "used_storage": 0
}

Get the current users profile

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "email": "user@example.com",
  • "title": "string",
  • "firstname": "string",
  • "lastname": "string",
  • "display_name": "string",
  • "avatar_url": "string",
  • "dashboard_theme": "string",
  • "conference_theme": "string",
  • "language": "string",
  • "tariff_status": "default",
  • "used_storage": 0
}

Get the assets created by the current user.

Returns a list of assets that where created by a user.

Authorizations:
BearerAuth
query Parameters
per_page
integer
Default: 30

Results per page (max 100)

page
integer
Default: 1

Page number of the results to fetch.

order
string
Enum: "ascending" "descending"
Example: order=ascending&order=descending

The direction of the sorting that is applied to the return collection.

sort
string
Enum: "filename" "size" "namespace" "kind" "created_at"
Example: sort=filename&sort=size&sort=namespace&sort=kind&sort=created_at

The property by which a collection of assets is sorted.

Responses

Response samples

Content type
application/json
{
  • "owned_assets": null
}

Get the current user's tariff information

Returns a description of the tariff of the current user.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "9ffa9185-7453-4fb2-aa6a-3105a6ae83a8",
  • "quotas": {
    },
  • "enabled_modules": [
    ],
  • "disabled_features": [
    ],
  • "modules": [
    ]
}

Get user details

Get the user details of a specific user as PublicUserProfile object.

Authorizations:
BearerAuth
path Parameters
id
required
integer <int64>

The identifier of the user

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "email": "user@example.com",
  • "title": "string",
  • "firstname": "string",
  • "lastname": "string",
  • "display_name": "string",
  • "avatar_url": "string"
}

Find users

Used to query users. Can be used in autocomplete fields.

Authorizations:
BearerAuth
query Parameters
q
string

The query string (currently matches name and email)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Favorite an event

Add the event to the current user's favorite list

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Unfavorite an event

remove the event from the current user's favorite list

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

auth

Endpoints related to authentication

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.

Returns a list of the users permissions on success.

Request Body schema: application/json
id_token
required
string

Responses

Request samples

Content type
application/json
{
  • "id_token": "string"
}

Response samples

Content type
application/json
{
  • "permissions": [
    ]
}

Get the configured OIDC provider.

Responses

Response samples

Content type
application/json
{
  • "oidc": {
    }
}

sip

Endpoints related to sip configuration

Get the rooms SIP config

Returns the SIP config of this room.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Responses

Response samples

Content type
application/json
{
  • "room": "2fa2a266-7d97-4147-8f17-1e57105c70ea",
  • "sip_id": "string",
  • "password": "string",
  • "lobby": true
}

Create or modify the rooms SIP config

When the room has no sip config configured, a new one is created based on the provided request body and a 201 CREATED response is returned. When the room already has a sip config, the config will be modified and a 200 OK response is returned.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Request Body schema: application/json
required
non-empty
password
string <= 10 characters

Numeric string with 10 characters to secure room access. Is automatically generated when not set on creation.

lobby
boolean

Enable/Disable a lobby for users that join through SIP. Defaults to false when not set on creation.

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "lobby": true
}

Response samples

Content type
application/json
{
  • "room": "2fa2a266-7d97-4147-8f17-1e57105c70ea",
  • "sip_id": "string",
  • "password": "string",
  • "lobby": true
}

Delete a rooms sip config

Deletes the rooms sip config and thus disables participants from joining via SIP.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Responses

call_in

Endpoints related to call-in functionality

Starts a signaling session given a room id and pin

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 users. The user has to provide the credentials (id and pin) via DTMF (the number pad).

Authorizations:
BearerAuth
Request Body schema: application/json
required
id
required
string <= 10 characters

Unique numeric string with 10 characters to identify the room

pin
required
string <= 10 characters

Numeric string with 10 characters to secure room access

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "pin": "string"
}

Response samples

Content type
application/json
{
  • "ticket": "string",
  • "resumption": "string"
}

tariff

Endpoints related to tariff functionality

Get a room's tariff information

Returns a description of the tariff of the given room.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "9ffa9185-7453-4fb2-aa6a-3105a6ae83a8",
  • "quotas": {
    },
  • "enabled_modules": [
    ],
  • "disabled_features": [
    ],
  • "modules": [
    ]
}

Get the current user's tariff information

Returns a description of the tariff of the current user.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "9ffa9185-7453-4fb2-aa6a-3105a6ae83a8",
  • "quotas": {
    },
  • "enabled_modules": [
    ],
  • "disabled_features": [
    ],
  • "modules": [
    ]
}

assets

Endpoints related to asset management

Get assets for a room

Gets all assets that are available in a room.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

query Parameters
per_page
integer
Default: 30

Results per page (max 100)

page
integer
Default: 1

Page number of the results to fetch.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get an asset

Get the asset for the given room_id and asset_id.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

asset_id
required
string <uuid>

The ID of the requested asset

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Delete an asset

Delete the respective asset.

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

asset_id
required
string <uuid>

The ID of the requested asset

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "documentation_url": "string",
  • "status": "string"
}

Get the assets created by the current user.

Returns a list of assets that where created by a user.

Authorizations:
BearerAuth
query Parameters
per_page
integer
Default: 30

Results per page (max 100)

page
integer
Default: 1

Page number of the results to fetch.

order
string
Enum: "ascending" "descending"
Example: order=ascending&order=descending

The direction of the sorting that is applied to the return collection.

sort
string
Enum: "filename" "size" "namespace" "kind" "created_at"
Example: sort=filename&sort=size&sort=namespace&sort=kind&sort=created_at

The property by which a collection of assets is sorted.

Responses

Response samples

Content type
application/json
{
  • "owned_assets": null
}

turn

Endpoints related to TURN server functionality

Get a TURN server and corresponding credentials

Get a Turn server and corresponding credentials, if none are configured return 500

Authorizations:
BearerAuthInviteCode

Responses

Response samples

Content type
application/json
[
  • {
    }
]

stun

Endpoints related to STUN functionality

Get a TURN server and corresponding credentials

Get a Turn server and corresponding credentials, if none are configured return 500

Authorizations:
BearerAuthInviteCode

Responses

Response samples

Content type
application/json
[
  • {
    }
]

services

Endpoints that should be used by service integrations

Starts a signaling session given a room id and pin

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 users. The user has to provide the credentials (id and pin) via DTMF (the number pad).

Authorizations:
BearerAuth
Request Body schema: application/json
required
id
required
string <= 10 characters

Unique numeric string with 10 characters to identify the room

pin
required
string <= 10 characters

Numeric string with 10 characters to secure room access

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "pin": "string"
}

Response samples

Content type
application/json
{
  • "ticket": "string",
  • "resumption": "string"
}

shared_folder

Endpoints related to shared folder functionality

Get the shared folder for an event

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

Responses

Response samples

Content type
application_json
{}

Create a shared folder for an event

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

query Parameters
suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Responses

Response samples

Content type
application_json
{}

Delete the shared folder for an event

Authorizations:
BearerAuth
path Parameters
event_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the event.

query Parameters
force_delete_reference_if_shared_folder_deletion_fails
boolean
Default: false

Delete shared folder information from the database, even if the shared folder itself could not be deleted on the remote system that provides it (e.g. the NextCloud instance)

suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Responses

streaming_targets

Endpoints related to streaming target functionality

List the streaming targets for a room

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a streaming target for a room

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

query Parameters
suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Request Body schema: application/json
required
name
required
string

The name of the streaming target

kind
required
string
Value: "custom"

The kind of the streaming target

streaming_endpoint
required
string <uri>

The endpoint url of the streaming target

streaming_key
required
string

The streaming key

public_url
required
string <uri>

The url from which the stream can be accessed

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application_json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "kind": "custom",
  • "streaming_endpoint": "http://example.com",
  • "streaming_key": "string",
  • "public_url": "http://example.com"
}

Get the streaming target for a room

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

streaming_target_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

Responses

Response samples

Content type
application_json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "kind": "custom",
  • "streaming_endpoint": "http://example.com",
  • "streaming_key": "string",
  • "public_url": "http://example.com"
}

Update a streaming target for a room

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

streaming_target_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

query Parameters
suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Request Body schema: application/json
required
name
string

The name of the streaming target

kind
string
Value: "custom"

The kind of the streaming target

streaming_endpoint
string <uri>

The endpoint url of the streaming target

streaming_key
string

The streaming key

public_url
string <uri>

The url from which the stream can be accessed

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application_json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "kind": "custom",
  • "streaming_endpoint": "http://example.com",
  • "streaming_key": "string",
  • "public_url": "http://example.com"
}

Delete the streaming target for a room

Authorizations:
BearerAuth
path Parameters
room_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

streaming_target_id
required
string
Example: 87f81f6f-35c5-4481-81ff-ec10c7e9d8b1

The id of the room

query Parameters
suppress_email_notification
boolean

Suppress notification emails. Note that not sending emails will lead to external calendars getting out of sync with the actual event.

Responses

upload

Upload Websocket

The upload websocket. transfers binary upload contents.

Authorizations:
BearerAuth
query Parameters
room_id
string <uuid>

The id of the room the asset belongs to

filename
string

The filename of the asset

header Parameters
required
string or string (SignalingProtocolHeader)
Example: opentalk-signaling-json-v1.0
Connection
required
string
Value: "Upgrade"
Example: Upgrade
Upgrade
required
string
Value: "websocket"
Example: websocket

Responses