MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

Pagination

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {DEVELOPER_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

Iframe integration

Room url has the following structure

To create {jwtToken} you need to generate a JWT token with HS256 algorithm, signed with {team.developer_key} as secret and a payload described below

Payload structure

td  string  

The UUID of the team.

rd  string  

The UUID of the room.

ud  string optional  

External user identifier.

u  string optional  

User name. If not provided the user will see a screen to input his name.

role  string optional  

Role id or name. If not provided the default role will be used.

avatar  string optional  

The url of the user's avatar image. Will be used as image for user's tile when his video is disabled.

iat  timestamp optional  

Token issued at timestamp

exp  timestamp optional  

Token expiration timestamp

nbf  timestamp optional  

Token not valid before timestamp

Default room settings

Get default room settings.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "fc16892a-556b-4c2d-a522-82e6b3e884cc",
    "owner_id": "57670ebd-0de2-4f92-8bce-661bec142dde",
    "domain": "local",
    "is_locked": false,
    "topbar_enabled": true,
    "toolbar_enabled": true,
    "toolbar_position": "bottom",
    "toolbar_color": "#000000",
    "primary_color": "#3771E0",
    "background_color": "#000000",
    "palette_mode": "light",
    "language": "en",
    "language_selection_enabled": true,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "screenshare_enabled": true,
    "participants_list_enabled": true,
    "chat_enabled": true,
    "private_chat_enabled": true,
    "private_group_chat_enabled": false,
    "private_group_chat_name": "Moderators",
    "pin_enabled": true,
    "full_screen_enabled": true,
    "minimize_own_tile_enabled": true,
    "minimize_own_tile_on_join_enabled": false,
    "end_session_enabled": true,
    "e2ee_enabled": false,
    "layout_mode_switch_enabled": true,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "logo_enabled": false,
    "custom_logo": "https://storage.dev.monza.wbcnf.net/images/fYwFJWsfpfMK2PECyW5JmXapPobecasL2bh3RndH.png",
    "application_logo": "https://storage.dev.monza.wbcnf.net/images/fMwFJWsfpfDc2PECyW5JmXapPobecasL2bh3RndH.png",
    "favicon": "https://storage.dev.monza.wbcnf.net/images/wgjrUhRrnkaLAEgrrUMvmhMRKzYUvhvc5pbCjdK1.png",
    "recordings_enabled": true,
    "recording_logo_enabled": true,
    "virtual_backgrounds_enabled": true,
    "raise_hand_enabled": true,
    "participant_names_in_recordings_enabled": true,
    "hide_tiles_in_recordings_enabled": false,
    "invite_participants_enabled": true,
    "whiteboard_enabled": true,
    "qa_enabled": true,
    "files_panel_enabled": true,
    "consent_message_enabled": true,
    "recording_consent_message_enabled": true,
    "consent_message_type": "generic",
    "consent_message": "By joining, you consent to the processing of your personal data in accordance with our [link https://www.digitalsamba.com/redirect/privacy-policy]Privacy Policy[/link].",
    "checkbox_message": "Don’t show this again.",
    "recordings_layout_mode": "tiled",
    "layout_mode_on_join": "tiled",
    "roles": [
        {
            "id": "76bb6199-2900-4b8d-b1bf-351dec4a8db4",
            "name": "moderator",
            "display_name": "Moderators",
            "allow_private_group_chat": false
        },
        {
            "id": "768db499-8db4-351d-4b8d-351dec4a8db4",
            "name": "speaker",
            "display_name": "Speakers",
            "allow_private_group_chat": false
        }
    ],
    "default_role": {
        "id": "76bb6199-2900-4b8d-b1bf-351dec4a8db4",
        "name": "moderator",
        "display_name": "Moderators"
    },
    "custom_cname": null,
    "captions_enabled": false,
    "captions_in_recordings_enabled": false,
    "captions_language": "en",
    "max_participants": 100,
    "max_sessions": 5,
    "session_length": 90,
    "html_title": "My Title",
    "subscription_start": "2024-04-17 00:00:00",
    "subscription_end": "2024-05-16 23:59:59"
}
 

Request      

GET api/v1

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Update default room settings.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'domain' => 'tenetur',
            'default_role' => 'moderator',
            'roles' => [
                'moderator',
            ],
            'is_locked' => false,
            'session_length' => 90,
            'topbar_enabled' => true,
            'toolbar_enabled' => true,
            'toolbar_position' => 'bottom',
            'toolbar_color' => '#000000',
            'primary_color' => '#3771E0',
            'background_color' => '#000000',
            'palette_mode' => 'light',
            'language' => 'en',
            'languages' => [
                'en',
                'es-ES',
            ],
            'language_selection_enabled' => true,
            'audio_on_join_enabled' => true,
            'video_on_join_enabled' => true,
            'hd_video_on_join_enabled' => false,
            'participants_list_enabled' => true,
            'pin_enabled' => true,
            'full_screen_enabled' => true,
            'minimize_own_tile_enabled' => true,
            'minimize_own_tile_on_join_enabled' => false,
            'end_session_enabled' => true,
            'chat_enabled' => true,
            'private_chat_enabled' => true,
            'private_group_chat_enabled' => false,
            'private_group_chat_name' => 'Presenters',
            'private_group_chat_roles' => [
                'moderator',
            ],
            'e2ee_enabled' => false,
            'layout_mode_switch_enabled' => true,
            'simple_notifications_enabled' => true,
            'join_screen_enabled' => true,
            'screenshare_enabled' => true,
            'recordings_enabled' => true,
            'recording_autostart_enabled' => false,
            'logo_enabled' => true,
            'custom_logo' => 'cumque',
            'application_logo' => 'et',
            'favicon' => 'ipsa',
            'recording_logo_enabled' => true,
            'virtual_backgrounds_enabled' => true,
            'raise_hand_enabled' => true,
            'participant_names_in_recordings_enabled' => true,
            'hide_tiles_in_recordings_enabled' => false,
            'invite_participants_enabled' => true,
            'whiteboard_enabled' => true,
            'qa_enabled' => true,
            'upvote_qa_enabled' => true,
            'files_panel_enabled' => true,
            'polls_enabled' => true,
            'breakout_rooms_enabled' => false,
            'consent_message_enabled' => true,
            'recording_consent_message_enabled' => true,
            'consent_message_type' => 'generic',
            'consent_message' => 'By joining, you consent to the processing of your personal data in accordance with our [link https://www.digitalsamba.com/redirect/privacy-policy]Privacy Policy[/link].',
            'checkbox_message' => 'Don’t show this again.',
            'recordings_layout_mode' => 'tiled',
            'layout_mode_on_join' => 'tiled',
            'html_title' => 'My room',
            'transcription_enabled' => false,
            'transcription_auto_start_enabled' => true,
            'captions_enabled' => false,
            'captions_language' => 'en',
            'captions_in_recordings_enabled' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "domain": "tenetur",
    "default_role": "moderator",
    "roles": [
        "moderator"
    ],
    "is_locked": false,
    "session_length": 90,
    "topbar_enabled": true,
    "toolbar_enabled": true,
    "toolbar_position": "bottom",
    "toolbar_color": "#000000",
    "primary_color": "#3771E0",
    "background_color": "#000000",
    "palette_mode": "light",
    "language": "en",
    "languages": [
        "en",
        "es-ES"
    ],
    "language_selection_enabled": true,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "hd_video_on_join_enabled": false,
    "participants_list_enabled": true,
    "pin_enabled": true,
    "full_screen_enabled": true,
    "minimize_own_tile_enabled": true,
    "minimize_own_tile_on_join_enabled": false,
    "end_session_enabled": true,
    "chat_enabled": true,
    "private_chat_enabled": true,
    "private_group_chat_enabled": false,
    "private_group_chat_name": "Presenters",
    "private_group_chat_roles": [
        "moderator"
    ],
    "e2ee_enabled": false,
    "layout_mode_switch_enabled": true,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "screenshare_enabled": true,
    "recordings_enabled": true,
    "recording_autostart_enabled": false,
    "logo_enabled": true,
    "custom_logo": "cumque",
    "application_logo": "et",
    "favicon": "ipsa",
    "recording_logo_enabled": true,
    "virtual_backgrounds_enabled": true,
    "raise_hand_enabled": true,
    "participant_names_in_recordings_enabled": true,
    "hide_tiles_in_recordings_enabled": false,
    "invite_participants_enabled": true,
    "whiteboard_enabled": true,
    "qa_enabled": true,
    "upvote_qa_enabled": true,
    "files_panel_enabled": true,
    "polls_enabled": true,
    "breakout_rooms_enabled": false,
    "consent_message_enabled": true,
    "recording_consent_message_enabled": true,
    "consent_message_type": "generic",
    "consent_message": "By joining, you consent to the processing of your personal data in accordance with our [link https:\/\/www.digitalsamba.com\/redirect\/privacy-policy]Privacy Policy[\/link].",
    "checkbox_message": "Don’t show this again.",
    "recordings_layout_mode": "tiled",
    "layout_mode_on_join": "tiled",
    "html_title": "My room",
    "transcription_enabled": false,
    "transcription_auto_start_enabled": true,
    "captions_enabled": false,
    "captions_language": "en",
    "captions_in_recordings_enabled": false
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request PATCH \
    "https://api.digitalsamba.com/api/v1" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"domain\": \"tenetur\",
    \"default_role\": \"moderator\",
    \"roles\": [
        \"moderator\"
    ],
    \"is_locked\": false,
    \"session_length\": 90,
    \"topbar_enabled\": true,
    \"toolbar_enabled\": true,
    \"toolbar_position\": \"bottom\",
    \"toolbar_color\": \"#000000\",
    \"primary_color\": \"#3771E0\",
    \"background_color\": \"#000000\",
    \"palette_mode\": \"light\",
    \"language\": \"en\",
    \"languages\": [
        \"en\",
        \"es-ES\"
    ],
    \"language_selection_enabled\": true,
    \"audio_on_join_enabled\": true,
    \"video_on_join_enabled\": true,
    \"hd_video_on_join_enabled\": false,
    \"participants_list_enabled\": true,
    \"pin_enabled\": true,
    \"full_screen_enabled\": true,
    \"minimize_own_tile_enabled\": true,
    \"minimize_own_tile_on_join_enabled\": false,
    \"end_session_enabled\": true,
    \"chat_enabled\": true,
    \"private_chat_enabled\": true,
    \"private_group_chat_enabled\": false,
    \"private_group_chat_name\": \"Presenters\",
    \"private_group_chat_roles\": [
        \"moderator\"
    ],
    \"e2ee_enabled\": false,
    \"layout_mode_switch_enabled\": true,
    \"simple_notifications_enabled\": true,
    \"join_screen_enabled\": true,
    \"screenshare_enabled\": true,
    \"recordings_enabled\": true,
    \"recording_autostart_enabled\": false,
    \"logo_enabled\": true,
    \"custom_logo\": \"cumque\",
    \"application_logo\": \"et\",
    \"favicon\": \"ipsa\",
    \"recording_logo_enabled\": true,
    \"virtual_backgrounds_enabled\": true,
    \"raise_hand_enabled\": true,
    \"participant_names_in_recordings_enabled\": true,
    \"hide_tiles_in_recordings_enabled\": false,
    \"invite_participants_enabled\": true,
    \"whiteboard_enabled\": true,
    \"qa_enabled\": true,
    \"upvote_qa_enabled\": true,
    \"files_panel_enabled\": true,
    \"polls_enabled\": true,
    \"breakout_rooms_enabled\": false,
    \"consent_message_enabled\": true,
    \"recording_consent_message_enabled\": true,
    \"consent_message_type\": \"generic\",
    \"consent_message\": \"By joining, you consent to the processing of your personal data in accordance with our [link https:\\/\\/www.digitalsamba.com\\/redirect\\/privacy-policy]Privacy Policy[\\/link].\",
    \"checkbox_message\": \"Don’t show this again.\",
    \"recordings_layout_mode\": \"tiled\",
    \"layout_mode_on_join\": \"tiled\",
    \"html_title\": \"My room\",
    \"transcription_enabled\": false,
    \"transcription_auto_start_enabled\": true,
    \"captions_enabled\": false,
    \"captions_language\": \"en\",
    \"captions_in_recordings_enabled\": false
}"

Example response (200):


{
    "id": "fc16892a-556b-4c2d-a522-82e6b3e884cc",
    "owner_id": "57670ebd-0de2-4f92-8bce-661bec142dde",
    "domain": "local",
    "is_locked": false,
    "topbar_enabled": true,
    "toolbar_enabled": true,
    "toolbar_position": "bottom",
    "toolbar_color": "#000000",
    "primary_color": "#3771E0",
    "background_color": "#000000",
    "palette_mode": "light",
    "language": "en",
    "language_selection_enabled": true,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "screenshare_enabled": true,
    "participants_list_enabled": true,
    "chat_enabled": true,
    "private_chat_enabled": true,
    "private_group_chat_enabled": false,
    "private_group_chat_name": "Moderators",
    "pin_enabled": true,
    "full_screen_enabled": true,
    "minimize_own_tile_enabled": true,
    "minimize_own_tile_on_join_enabled": false,
    "end_session_enabled": true,
    "e2ee_enabled": false,
    "layout_mode_switch_enabled": true,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "logo_enabled": false,
    "custom_logo": "https://storage.dev.monza.wbcnf.net/images/fYwFJWsfpfMK2PECyW5JmXapPobecasL2bh3RndH.png",
    "application_logo": "https://storage.dev.monza.wbcnf.net/images/fMwFJWsfpfDc2PECyW5JmXapPobecasL2bh3RndH.png",
    "favicon": "https://storage.dev.monza.wbcnf.net/images/wgjrUhRrnkaLAEgrrUMvmhMRKzYUvhvc5pbCjdK1.png",
    "recordings_enabled": true,
    "recording_logo_enabled": true,
    "virtual_backgrounds_enabled": true,
    "raise_hand_enabled": true,
    "participant_names_in_recordings_enabled": true,
    "hide_tiles_in_recordings_enabled": false,
    "invite_participants_enabled": true,
    "whiteboard_enabled": true,
    "qa_enabled": true,
    "files_panel_enabled": true,
    "consent_message_enabled": true,
    "recording_consent_message_enabled": true,
    "consent_message_type": "generic",
    "consent_message": "By joining, you consent to the processing of your personal data in accordance with our [link https://www.digitalsamba.com/redirect/privacy-policy]Privacy Policy[/link].",
    "checkbox_message": "Don’t show this again.",
    "recordings_layout_mode": "tiled",
    "layout_mode_on_join": "tiled",
    "roles": [
        {
            "id": "76bb6199-2900-4b8d-b1bf-351dec4a8db4",
            "name": "moderator",
            "display_name": "Moderators",
            "allow_private_group_chat": false
        },
        {
            "id": "768db499-8db4-351d-4b8d-351dec4a8db4",
            "name": "speaker",
            "display_name": "Speakers",
            "allow_private_group_chat": false
        }
    ],
    "default_role": {
        "id": "76bb6199-2900-4b8d-b1bf-351dec4a8db4",
        "name": "moderator",
        "display_name": "Moderators"
    },
    "custom_cname": null,
    "captions_enabled": false,
    "captions_in_recordings_enabled": false,
    "captions_language": "en",
    "max_participants": 100,
    "max_sessions": 5,
    "session_length": 90,
    "html_title": "My Title",
    "subscription_start": "2024-04-17 00:00:00",
    "subscription_end": "2024-05-16 23:59:59"
}
 

Request      

PATCH api/v1

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

domain   string  optional  

Must contain only letters, numbers, dashes and underscores. Must not be one of docs, api, dev-api, staging-api, you, or dashboard Must be at least 3 characters. Must not be greater than 32 characters. Example: tenetur

default_role   string  optional  

Select a role to be assigned to participants who join with no token (shared link to public room) or with a token without a role. Role ID or name. Example: moderator

roles   string[]  optional  

Select a subset of roles for this room. The order in which they’re added will be the order in which they appear in the Participants panel. Must be an array of role IDs or names.

is_locked   boolean  optional  

Locked rooms require acceptance to join. Single-role rooms cannot be locked on join. Example: false

session_length   integer  optional  

Value in minutes after which sessions should automatically end. Must be at least 1. Must not be greater than 1440. Empty value means Unlimited. Example: 90

topbar_enabled   boolean  optional  

Set rooms with or without a top bar. Example: true

toolbar_enabled   boolean  optional  

Set rooms with or without a toolbar. Example: true

toolbar_position   string  optional  

Choose your desired position for the toolbar or desktop devices. Must be one of left, right or bottom. Example: bottom

toolbar_color   string  optional  

Select a background colour for the toolbar in rooms. Must be color hex code. Example: #000000

primary_color   string  optional  

Select a colour for buttons and other interactive elements in rooms. Must be color hex code. Example: #3771E0

background_color   string  optional  

Select a colour for the background in rooms. Must be color hex code. Example: #000000

palette_mode   string  optional  

Palette mode (Appearance) will control the background colour of panels, modals and join screen. Must be one of light or dark. Example: light

language   string  optional  

Select a default language for the room’s UI. Must be one of de, en or es. Example: en

languages   string[]  optional  

Select a subset of languages for participants to be able to choose from. Must be an array of language codes.

language_selection_enabled   boolean  optional  

Allow each user to control application UI language on their side. Example: true

audio_on_join_enabled   boolean  optional  

When disabled, users will join the session with muted microphones. Example: true

video_on_join_enabled   boolean  optional  

When disabled, users will join the session with turned-off cameras. Example: true

hd_video_on_join_enabled   boolean  optional  

Participants will stream in better quality. This setting requires more uplink bandwidth on the participants' side. Example: false

participants_list_enabled   boolean  optional  

When enabled, your participants will have access to the Participants panel. Example: true

pin_enabled   boolean  optional  

When enabled, participants will have the option to select a participant to enlarge and continuously watch. Example: true

full_screen_enabled   boolean  optional  

Allow your participants to expand any participant tile to full screen. Will not work in Auto mode. Example: true

minimize_own_tile_enabled   boolean  optional  

Allow your participants to minimise and maximise their own tile when in tiled mode. Example: true

minimize_own_tile_on_join_enabled   boolean  optional  

When enabled, participants will join rooms with their own tile minimised. Example: false

end_session_enabled   boolean  optional  

When enabled, the "End session" button will be available in the toolbar. Example: true

chat_enabled   boolean  optional  

Allow participants to post and read in the public chat. Example: true

private_chat_enabled   boolean  optional  

Enable posting and reading in one-to-one chats with specific participants. Example: true

private_group_chat_enabled   boolean  optional  

Enable posting and reading in private group chats. Example: false

private_group_chat_name   string  optional  

Customise your private group chat with a name of your choice to be displayed. Must be at least 3 characters. Example: Presenters

private_group_chat_roles   string[]   

Must be an array of role IDs or names.

e2ee_enabled   boolean  optional  

Secure usernames, chat messages, and video / audio streams, including shared screens with encryption keys that only participants in the room have access to. Example: false

layout_mode_switch_enabled   boolean  optional  

When disabled, participants will not see the layout mode switcher. Example: true

simple_notifications_enabled   boolean  optional  

Send participants non-disruptive notifications to inform them when others join and leave the session. Example: true

join_screen_enabled   boolean  optional  

When enabled, users will have the chance to test their speakers, camera and microphone ahead of joining. Example: true

screenshare_enabled   boolean  optional  

Allow your participants to share their screen. Mobile users will not be able to share their screen. Example: true

recordings_enabled   boolean  optional  

Allow participants to record sessions. Example: true

recording_autostart_enabled   boolean  optional  

Recording will automatically start when the first participant joins. Example: false

logo_enabled   boolean  optional  

When enabled, the logo will be shown in rooms. Example: true

custom_logo   string  optional  

You may add a custom logo to be displayed in rooms and its recordings. Image URL or base64 encoded file source. Example: cumque

application_logo   string  optional  

You may add an application logo to be displayed in rooms join page. Image URL or base64 encoded file source. Example: et

favicon   string  optional  

You may add custom favicon to be displayed in rooms. Image URL or base64 encoded file source. Example: ipsa

recording_logo_enabled   boolean  optional  

When enabled, the logo will be shown in recordings. Example: true

virtual_backgrounds_enabled   boolean  optional  

When enabled, participants on desktop devices will be able to appear on virtual backgrounds. Example: true

raise_hand_enabled   boolean  optional  

Allow participants to raise hand to take turns to speak without disrupting sessions. Example: true

participant_names_in_recordings_enabled   boolean  optional  

When enabled, recordings will include participant name badges on tiles. Example: true

hide_tiles_in_recordings_enabled   boolean  optional  

When enabled, recordings will only capture participants' audio and shared screens. A blank screen will be recorded if no screen is shared. Example: false

invite_participants_enabled   boolean  optional  

When enabled, users allowed to β€˜Invite participants’ will see an β€˜Invite people’ button in the participants panel. Example: true

whiteboard_enabled   boolean  optional  

Add a whiteboard to rooms so that participants with the β€˜edit whiteboard’ permission are able to open and edit content. Not compatible with E2EE. Example: true

qa_enabled   boolean  optional  

Allow participants to post, answer, and moderate questions. Answering and moderating require permission. Example: true

upvote_qa_enabled   boolean  optional  

Upvote Q&A. Example: true

files_panel_enabled   boolean  optional  

When enabled, participants will have access to the Files panel. Example: true

polls_enabled   boolean  optional  

When enabled, participants with the β€˜manage polls’ permission will have the ability to create and launch polls. Example: true

breakout_rooms_enabled   boolean  optional  

Allow host to split meeting participants into separate, smaller rooms (incompatible with E2EE). Example: false

consent_message_enabled   boolean  optional  

When enabled, participants will be reminded that by joining, they consent to the processing of their personal data in accordance with your organisation’s Privacy Policy. Example: true

recording_consent_message_enabled   boolean  optional  

When enabled, participants initiating a recording will be reminded that all participants' consent, including those who join late, can be a legal requirement. Example: true

consent_message_type   string  optional  

Must be in ['generic', 'custom']. Example: generic

consent_message   string  optional  

Example: By joining, you consent to the processing of your personal data in accordance with our [link https://www.digitalsamba.com/redirect/privacy-policy]Privacy Policy[/link].

checkbox_message   string  optional  

Add a custom message to the β€˜don’t show this again' checkbox. Example: Don’t show this again.

recordings_layout_mode   string  optional  

Set the layout mode for recordings. Auto mode highlights the active speaker, open content, or shared screen, ideal for novice users, while Tiled mode offers customisable grid layouts for personalized viewing experiences. Must be in ['auto', 'tiled']. Example: tiled

layout_mode_on_join   string  optional  

Set the layout mode on join: Auto mode highlights the active speaker, open content, or shared screen, ideal for novice users, while Tiled mode offers customisable grid layouts for personalized viewing experiences. Must be in ['auto', 'tiled']. Example: tiled

html_title   string  optional  

Add a custom title to be displayed on the browser tab, visible as long as the room is not embedded in an iframe. Must be at least 5 characters. Must not be greater than 255 characters. Example: My room

transcription_enabled   boolean  optional  

When enabled, the speech of participants in this room will be transcribed into text (incompatible with E2EE). Example: false

transcription_auto_start_enabled   boolean  optional  

Transcription will automatically start when the first participant joins. Example: true

captions_enabled   boolean  optional  

Allow Π·articipants to enable or disable captions on their end. Example: false

captions_language   string  optional  

Set the default input language to be transcribed in rooms. Must be en or de. Example: en

captions_in_recordings_enabled   boolean  optional  

Display session transcriptions as subtitles in recordings. Example: false

Rooms

Get chat messages.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/chat';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'session_id' => '16719c1b-cc82-4dfe-9f6f-40d9093fa695',
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/chat"
);

const params = {
    "session_id": "16719c1b-cc82-4dfe-9f6f-40d9093fa695",
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/chat?session_id=16719c1b-cc82-4dfe-9f6f-40d9093fa695&limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "total_count": 3,
    "data": [
        {
            "id": "3d8a123d-1a65-4b8b-a1d7-cde0578bf928",
            "message": "Morning. How are you?",
            "participant_id": "5e54e7e0-2639-4307-aafa-9eb957e20c2d",
            "external_participant_id": "#123",
            "participant_name": "John Smith",
            "created_at": "2024-02-13T16:45:05.000000Z"
        },
        {
            "id": "98255fe2-8e3f-4195-9771-8144c484d191",
            "message": "I am fine, thanks! What about you?",
            "participant_id": "685dacb3-5943-4661-a37d-d218586b8b6d",
            "external_participant_id": "#456",
            "participant_name": "Jane Doe",
            "created_at": "2024-02-13T16:45:10.000000Z"
        },
        {
            "id": "3d8a123d-1a65-4b8b-a1d7-cde0578bf928",
            "breakout_id": "79e54583-3aad-4023-a2fa-968125e6c816",
            "message": "In breakout #2",
            "participant_id": "5e54e7e0-2639-4307-aafa-9eb957e20c2d",
            "external_participant_id": "ABCDEF123",
            "participant_name": "John Smith",
            "created_at": "2024-02-13T16:45:20.000000Z"
        }
    ]
}
 

Request      

GET api/v1/rooms/{room}/chat

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Query Parameters

session_id   string  optional  

UUID of the session. Example: 16719c1b-cc82-4dfe-9f6f-40d9093fa695

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the chat message after which records will be returned.

Export chat messages.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/chat/export';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'session_id' => '16719c1b-cc82-4dfe-9f6f-40d9093fa695',
            'format' => 'txt',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/chat/export"
);

const params = {
    "session_id": "16719c1b-cc82-4dfe-9f6f-40d9093fa695",
    "format": "txt",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/chat/export?session_id=16719c1b-cc82-4dfe-9f6f-40d9093fa695&format=txt" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


Text file - Chat messages
 

Request      

GET api/v1/rooms/{room}/chat/export

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Query Parameters

session_id   string  optional  

UUID of the Session. Example: 16719c1b-cc82-4dfe-9f6f-40d9093fa695

format   string  optional  

Export format (txt or json). Example: txt

Get questions and answers.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/questions';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'session_id' => '16719c1b-cc82-4dfe-9f6f-40d9093fa695',
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/questions"
);

const params = {
    "session_id": "16719c1b-cc82-4dfe-9f6f-40d9093fa695",
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/questions?session_id=16719c1b-cc82-4dfe-9f6f-40d9093fa695&limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "total_count": 1,
    "data": [
        {
            "id": "3d8a123d-1a65-4b8b-a1d7-cde0578bf928",
            "question": "How tall is the Statue of Liberty?",
            "participant_id": "5e54e7e0-2639-4307-aafa-9eb957e20c2d",
            "external_participant_id": "#123",
            "participant_name": "John Smith",
            "created_at": "2024-02-13T16:45:05.000000Z",
            "answers": [
                {
                    "id": "856e86e5-5d97-4a48-978a-6b8afe65f749",
                    "answer": "It is 46 metres high.",
                    "participant_id": "685dacb3-5943-4661-a37d-d218586b8b6d",
                    "external_participant_id": "#456",
                    "participant_name": "John Doe",
                    "created_at": "2024-02-13T16:45:30.000000Z"
                },
                {
                    "id": "29817328-b632-4741-8ba2-09d393bd2fb0",
                    "answer": "Yep, about 46 metres high.",
                    "participant_id": "d0f509a4-7aee-496a-a331-d44c0df6bdd7",
                    "external_participant_id": "#789",
                    "participant_name": "Jane Doe",
                    "created_at": "2024-02-13T16:45:35.000000Z"
                }
            ]
        }
    ]
}
 

Request      

GET api/v1/rooms/{room}/questions

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Query Parameters

session_id   string  optional  

UUID of the session. Example: 16719c1b-cc82-4dfe-9f6f-40d9093fa695

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the question after which records will be returned.

Export questions and answers.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/questions/export';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'session_id' => '16719c1b-cc82-4dfe-9f6f-40d9093fa695',
            'format' => 'txt',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/questions/export"
);

const params = {
    "session_id": "16719c1b-cc82-4dfe-9f6f-40d9093fa695",
    "format": "txt",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/questions/export?session_id=16719c1b-cc82-4dfe-9f6f-40d9093fa695&format=txt" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


Text file - Questions and answers
 

Request      

GET api/v1/rooms/{room}/questions/export

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Query Parameters

session_id   string  optional  

UUID of the Session. Example: 16719c1b-cc82-4dfe-9f6f-40d9093fa695

format   string  optional  

Export format (txt or json). Example: txt

Get room transcripts.

requires authentication

Closed Captioning.

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'session_id' => '16719c1b-cc82-4dfe-9f6f-40d9093fa695',
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts"
);

const params = {
    "session_id": "16719c1b-cc82-4dfe-9f6f-40d9093fa695",
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts?session_id=16719c1b-cc82-4dfe-9f6f-40d9093fa695&limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "total_count": 3,
    "data": [
        {
            "participant_id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "participant_name": "John Smith",
            "transcript": "Morning. How are you?",
            "start_time": "2024-04-10T12:18:27Z",
            "end_time": "2024-04-10T12:33:27Z"
        },
        {
            "participant_id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "participant_name": "Jane Doe",
            "transcript": "I am fine, thanks! What about you?",
            "start_time": "2024-04-10T12:10:27Z",
            "end_time": "2024-04-10T12:31:27Z"
        },
        {
            "participant_id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "participant_name": "John Doe",
            "transcript": "Hi all!",
            "start_time": "2024-04-10T12:06:27Z",
            "end_time": "2024-04-10T12:33:27Z"
        }
    ]
}
 

Request      

GET api/v1/rooms/{room}/transcripts

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Query Parameters

session_id   string  optional  

UUID of the session. Example: 16719c1b-cc82-4dfe-9f6f-40d9093fa695

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

Export room transcripts.

requires authentication

Closed Captioning.

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts/export';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'format' => 'txt',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts/export"
);

const params = {
    "format": "txt",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts/export?format=txt" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


Text file - Transcripts
 

Request      

GET api/v1/rooms/{room}/transcripts/export

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Query Parameters

format   string  optional  

Export format (txt or json). Example: txt

Delete chats by room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/chat';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/chat"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/chat" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/rooms/{room}/chat

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Delete Q&A by room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/questions';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/questions"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/questions" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/rooms/{room}/questions

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Delete summaries by room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/summaries';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/summaries"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/summaries" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/rooms/{room}/summaries

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Delete transcripts by room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/rooms/{room}/transcripts

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Delete polls by room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/rooms/{room}/polls

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Delete recordings by room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/recordings';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/recordings"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/recordings" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/rooms/{room}/recordings

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Get all team rooms.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms"
);

const params = {
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms?limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "data": [
        {
            "id": "6faf062e-08a1-39e5-a71b-cbfe5fd74759",
            "description": "Consequuntur fuga.",
            "topic": "Consequuntur fuga.",
            "friendly_url": "-v-AVOjgoAC1zpGJcOpg_-PD43ctBSiG",
            "privacy": "public",
            "max_participants": 100,
            "max_broadcasters": 100,
            "topbar_enabled": true,
            "toolbar_enabled": true,
            "toolbar_position": "bottom",
            "toolbar_color": "#000000",
            "primary_color": "#3771E0",
            "background_color": "#000000",
            "palette_mode": "light",
            "language": "en",
            "languages": [
                "en",
                "es-ES",
                "de-DE",
                "df",
                "zh-CN",
                "zh-TW"
            ],
            "language_selection_enabled": true,
            "audio_on_join_enabled": true,
            "video_on_join_enabled": true,
            "screenshare_enabled": true,
            "participants_list_enabled": true,
            "logo_enabled": true,
            "virtual_backgrounds_enabled": true,
            "raise_hand_enabled": true,
            "chat_enabled": true,
            "private_chat_enabled": true,
            "pin_enabled": true,
            "full_screen_enabled": true,
            "minimize_own_tile_enabled": true,
            "broadcaster_tile_visibility": "all",
            "end_session_enabled": true,
            "layout_mode_switch_enabled": true,
            "simple_notifications_enabled": true,
            "join_screen_enabled": true,
            "participant_names_in_recordings_enabled": true,
            "invite_participants_enabled": true,
            "whiteboard_enabled": true,
            "qa_enabled": true,
            "upvote_qa_enabled": true,
            "files_panel_enabled": true,
            "polls_enabled": true,
            "content_library_enabled": true,
            "consent_message_enabled": true,
            "recording_consent_message_enabled": true,
            "consent_message_type": "generic",
            "consent_message": "By joining, you consent to the processing of your personal data in accordance with our [link https://www.digitalsamba.com/redirect/privacy-policy]Privacy Policy[/link].",
            "checkbox_message": "Don’t show this again.",
            "recordings_layout_mode": "tiled",
            "layout_mode_on_join": "tiled",
            "room_url": "https://3a9c4fb6b21e5150138ca22ed09421dc.digitalsamba.com/-v-AVOjgoAC1zpGJcOpg_-PD43ctBSiG",
            "external_id": "EXTID1017005343",
            "transcription_auto_start_enabled": true,
            "captions_language": "en",
            "created_at": "2024-09-19T18:50:27Z",
            "updated_at": "2024-09-19T18:50:27Z"
        },
        {
            "id": "04bae599-ce6a-3270-8fab-daa35c6e1bee",
            "description": "Id quaerat debitis.",
            "topic": "Id quaerat debitis.",
            "friendly_url": "Xjj3ZH-bRBkF0KWkgBqgs-HahfCL7EkY",
            "privacy": "public",
            "max_participants": 100,
            "max_broadcasters": 100,
            "topbar_enabled": true,
            "toolbar_enabled": true,
            "toolbar_position": "bottom",
            "toolbar_color": "#000000",
            "primary_color": "#3771E0",
            "background_color": "#000000",
            "palette_mode": "light",
            "language": "en",
            "languages": [
                "en",
                "es-ES",
                "de-DE",
                "df",
                "zh-CN",
                "zh-TW"
            ],
            "language_selection_enabled": true,
            "audio_on_join_enabled": true,
            "video_on_join_enabled": true,
            "screenshare_enabled": true,
            "participants_list_enabled": true,
            "logo_enabled": true,
            "virtual_backgrounds_enabled": true,
            "raise_hand_enabled": true,
            "chat_enabled": true,
            "private_chat_enabled": true,
            "pin_enabled": true,
            "full_screen_enabled": true,
            "minimize_own_tile_enabled": true,
            "broadcaster_tile_visibility": "all",
            "end_session_enabled": true,
            "layout_mode_switch_enabled": true,
            "simple_notifications_enabled": true,
            "join_screen_enabled": true,
            "participant_names_in_recordings_enabled": true,
            "invite_participants_enabled": true,
            "whiteboard_enabled": true,
            "qa_enabled": true,
            "upvote_qa_enabled": true,
            "files_panel_enabled": true,
            "polls_enabled": true,
            "content_library_enabled": true,
            "consent_message_enabled": true,
            "recording_consent_message_enabled": true,
            "consent_message_type": "generic",
            "consent_message": "By joining, you consent to the processing of your personal data in accordance with our [link https://www.digitalsamba.com/redirect/privacy-policy]Privacy Policy[/link].",
            "checkbox_message": "Don’t show this again.",
            "recordings_layout_mode": "tiled",
            "layout_mode_on_join": "tiled",
            "room_url": "https://af6424cc9abdfbfd2097069a3c1f95d5.digitalsamba.com/Xjj3ZH-bRBkF0KWkgBqgs-HahfCL7EkY",
            "external_id": "EXTID317357705",
            "transcription_auto_start_enabled": true,
            "captions_language": "en",
            "created_at": "2024-09-19T18:50:27Z",
            "updated_at": "2024-09-19T18:50:27Z"
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/rooms

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the room or room friendly URL after which records will be returned.

Get the specified room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "13a5aa53-f4da-470b-bfd0-63dd9e5dd81d",
    "description": "My public room description.",
    "friendly_url": "MyPublicRoom",
    "privacy": "public",
    "max_participants": 100,
    "max_broadcasters": 10,
    "is_locked": false,
    "topbar_enabled": true,
    "toolbar_enabled": true,
    "toolbar_position": "left",
    "toolbar_color": "#000000",
    "primary_color": "#3771E0",
    "background_color": "#000000",
    "palette_mode": "light",
    "language": "en",
    "language_selection_enabled": true,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "screenshare_enabled": true,
    "participants_list_enabled": true,
    "recordings_enabled": true,
    "logo_enabled": true,
    "custom_logo": null,
    "recording_logo_enabled": false,
    "virtual_backgrounds_enabled": true,
    "raise_hand_enabled": true,
    "chat_enabled": true,
    "private_chat_enabled": true,
    "private_group_chat_enabled": true,
    "private_group_chat_name": "test",
    "pin_enabled": true,
    "full_screen_enabled": true,
    "minimize_own_tile_enabled": true,
    "minimize_own_tile_on_join_enabled": false,
    "end_session_enabled": true,
    "e2ee_enabled": false,
    "layout_mode_switch_enabled": true,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "participant_names_in_recordings_enabled": false,
    "hide_tiles_in_recordings_enabled": false,
    "invite_participants_enabled": true,
    "whiteboard_enabled": true,
    "qa_enabled": true,
    "files_panel_enabled": true,
    "consent_message_enabled": true,
    "recording_consent_message_enabled": true,
    "consent_message_type": "generic",
    "consent_message": "By joining, you consent to the processing of your personal data in accordance with our [link https://www.digitalsamba.com/redirect/privacy-policy]Privacy Policy[/link].",
    "checkbox_message": "Don’t show this again.",
    "recordings_layout_mode": "tiled",
    "layout_mode_on_join": "tiled",
    "room_url": "https://myteam.digitalsamba.com/MyPublicRoom",
    "external_id": "EXTID123",
    "default_role": {
        "id": "47697570-a2e8-4b0c-8f2d-1af1ea2bae67",
        "name": "moderator",
        "display_name": "Moderators"
    },
    "roles": [
        {
            "id": "47697570-a2e8-4b0c-8f2d-1af1ea2bae67",
            "name": "moderator",
            "display_name": "Moderators",
            "allow_private_group_chat": true
        },
        {
            "id": "4fae2627-3d52-4b01-905f-5022b285ee8c",
            "name": "attendee",
            "display_name": "Attendees",
            "allow_private_group_chat": false
        }
    ],
    "files": [
        {
            "id": "ae137edf-741e-4d0d-acd9-e5ad2c1dd74f",
            "name": "image.png",
            "url": "https://www.myimages.com/image.png",
            "thumbnail_url": "https://www.myimages.com/image-thumbnail.png"
        }
    ],
    "webhooks": [
        "3d5260b1-741e-4d0d-4a00-e5ad2c1dd74f",
        "77ea623b-741e-4d0d-acd9-32d98793e168"
    ],
    "breakout_rooms_enabled": true,
    "breakouts": [
        {
            "id": "ae137edf-741e-4d0d-acd9-e5ad2c1dd74f",
            "name": "Breakout Room 1"
        },
        {
            "id": "77ea623b-f677-4a00-8307-ec19aa022d22",
            "name": "Breakout Room 2"
        },
        {
            "id": "6cc45935-f00c-4683-9f14-32d98793e168",
            "name": "Breakout Room 3"
        }
    ],
    "html_title": "MyPublicRoom custom HTML title",
    "transcription_enabled": false,
    "captions_enabled": true,
    "captions_in_recordings_enabled": false,
    "captions_language": "en",
    "created_at": "2022-05-13T19:09:04Z",
    "updated_at": "2024-03-28T00:43:42Z"
}
 

Request      

GET api/v1/rooms/{room}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Create a new room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'description' => 'My public room description.',
            'friendly_url' => 'MyPublicRoom',
            'privacy' => 'public',
            'external_id' => 'myExtID123',
            'default_role' => 'moderator',
            'roles' => [
                'moderator',
            ],
            'webhooks' => [
                'c83c7b87-b9b8-444d-a749-7076fe58fdb8',
            ],
            'is_locked' => false,
            'topbar_enabled' => true,
            'toolbar_enabled' => true,
            'toolbar_position' => 'bottom',
            'toolbar_color' => '#000000',
            'primary_color' => '#3771E0',
            'background_color' => '#000000',
            'palette_mode' => 'light',
            'language' => 'en',
            'languages' => [
                'en',
                'es-ES',
            ],
            'language_selection_enabled' => true,
            'audio_on_join_enabled' => true,
            'video_on_join_enabled' => true,
            'hd_video_on_join_enabled' => false,
            'participants_list_enabled' => true,
            'pin_enabled' => true,
            'full_screen_enabled' => true,
            'minimize_own_tile_enabled' => true,
            'minimize_own_tile_on_join_enabled' => false,
            'broadcaster_tile_visibility' => 'all',
            'end_session_enabled' => true,
            'breakout_rooms_enabled' => false,
            'breakouts' => null,
            'chat_enabled' => true,
            'private_chat_enabled' => true,
            'private_group_chat_enabled' => false,
            'private_group_chat_name' => 'Presenters',
            'private_group_chat_roles' => [
                'moderator',
            ],
            'e2ee_enabled' => false,
            'layout_mode_switch_enabled' => true,
            'simple_notifications_enabled' => true,
            'join_screen_enabled' => true,
            'screenshare_enabled' => true,
            'recordings_enabled' => true,
            'recording_autostart_enabled' => false,
            'logo_enabled' => true,
            'custom_logo' => 'maiores',
            'recording_logo_enabled' => true,
            'virtual_backgrounds_enabled' => true,
            'raise_hand_enabled' => true,
            'participant_names_in_recordings_enabled' => true,
            'hide_tiles_in_recordings_enabled' => false,
            'invite_participants_enabled' => true,
            'whiteboard_enabled' => true,
            'qa_enabled' => true,
            'upvote_qa_enabled' => true,
            'files_panel_enabled' => true,
            'polls_enabled' => true,
            'consent_message_enabled' => true,
            'recording_consent_message_enabled' => true,
            'consent_message_type' => 'generic',
            'consent_message' => 'By joining, you consent to the processing of your personal data in accordance with our [link https://www.digitalsamba.com/redirect/privacy-policy]Privacy Policy[/link].',
            'checkbox_message' => 'Don’t show this again.',
            'recordings_layout_mode' => 'tiled',
            'layout_mode_on_join' => 'tiled',
            'max_participants' => 100,
            'max_broadcasters' => 100,
            'session_length' => 90,
            'html_title' => 'My room',
            'transcription_enabled' => false,
            'transcription_auto_start_enabled' => true,
            'captions_enabled' => false,
            'captions_language' => 'en',
            'captions_in_recordings_enabled' => false,
            'expires_at' => '2024-09-05 12:30:00',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "description": "My public room description.",
    "friendly_url": "MyPublicRoom",
    "privacy": "public",
    "external_id": "myExtID123",
    "default_role": "moderator",
    "roles": [
        "moderator"
    ],
    "webhooks": [
        "c83c7b87-b9b8-444d-a749-7076fe58fdb8"
    ],
    "is_locked": false,
    "topbar_enabled": true,
    "toolbar_enabled": true,
    "toolbar_position": "bottom",
    "toolbar_color": "#000000",
    "primary_color": "#3771E0",
    "background_color": "#000000",
    "palette_mode": "light",
    "language": "en",
    "languages": [
        "en",
        "es-ES"
    ],
    "language_selection_enabled": true,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "hd_video_on_join_enabled": false,
    "participants_list_enabled": true,
    "pin_enabled": true,
    "full_screen_enabled": true,
    "minimize_own_tile_enabled": true,
    "minimize_own_tile_on_join_enabled": false,
    "broadcaster_tile_visibility": "all",
    "end_session_enabled": true,
    "breakout_rooms_enabled": false,
    "breakouts": null,
    "chat_enabled": true,
    "private_chat_enabled": true,
    "private_group_chat_enabled": false,
    "private_group_chat_name": "Presenters",
    "private_group_chat_roles": [
        "moderator"
    ],
    "e2ee_enabled": false,
    "layout_mode_switch_enabled": true,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "screenshare_enabled": true,
    "recordings_enabled": true,
    "recording_autostart_enabled": false,
    "logo_enabled": true,
    "custom_logo": "maiores",
    "recording_logo_enabled": true,
    "virtual_backgrounds_enabled": true,
    "raise_hand_enabled": true,
    "participant_names_in_recordings_enabled": true,
    "hide_tiles_in_recordings_enabled": false,
    "invite_participants_enabled": true,
    "whiteboard_enabled": true,
    "qa_enabled": true,
    "upvote_qa_enabled": true,
    "files_panel_enabled": true,
    "polls_enabled": true,
    "consent_message_enabled": true,
    "recording_consent_message_enabled": true,
    "consent_message_type": "generic",
    "consent_message": "By joining, you consent to the processing of your personal data in accordance with our [link https:\/\/www.digitalsamba.com\/redirect\/privacy-policy]Privacy Policy[\/link].",
    "checkbox_message": "Don’t show this again.",
    "recordings_layout_mode": "tiled",
    "layout_mode_on_join": "tiled",
    "max_participants": 100,
    "max_broadcasters": 100,
    "session_length": 90,
    "html_title": "My room",
    "transcription_enabled": false,
    "transcription_auto_start_enabled": true,
    "captions_enabled": false,
    "captions_language": "en",
    "captions_in_recordings_enabled": false,
    "expires_at": "2024-09-05 12:30:00"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request POST \
    "https://api.digitalsamba.com/api/v1/rooms" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"description\": \"My public room description.\",
    \"friendly_url\": \"MyPublicRoom\",
    \"privacy\": \"public\",
    \"external_id\": \"myExtID123\",
    \"default_role\": \"moderator\",
    \"roles\": [
        \"moderator\"
    ],
    \"webhooks\": [
        \"c83c7b87-b9b8-444d-a749-7076fe58fdb8\"
    ],
    \"is_locked\": false,
    \"topbar_enabled\": true,
    \"toolbar_enabled\": true,
    \"toolbar_position\": \"bottom\",
    \"toolbar_color\": \"#000000\",
    \"primary_color\": \"#3771E0\",
    \"background_color\": \"#000000\",
    \"palette_mode\": \"light\",
    \"language\": \"en\",
    \"languages\": [
        \"en\",
        \"es-ES\"
    ],
    \"language_selection_enabled\": true,
    \"audio_on_join_enabled\": true,
    \"video_on_join_enabled\": true,
    \"hd_video_on_join_enabled\": false,
    \"participants_list_enabled\": true,
    \"pin_enabled\": true,
    \"full_screen_enabled\": true,
    \"minimize_own_tile_enabled\": true,
    \"minimize_own_tile_on_join_enabled\": false,
    \"broadcaster_tile_visibility\": \"all\",
    \"end_session_enabled\": true,
    \"breakout_rooms_enabled\": false,
    \"breakouts\": null,
    \"chat_enabled\": true,
    \"private_chat_enabled\": true,
    \"private_group_chat_enabled\": false,
    \"private_group_chat_name\": \"Presenters\",
    \"private_group_chat_roles\": [
        \"moderator\"
    ],
    \"e2ee_enabled\": false,
    \"layout_mode_switch_enabled\": true,
    \"simple_notifications_enabled\": true,
    \"join_screen_enabled\": true,
    \"screenshare_enabled\": true,
    \"recordings_enabled\": true,
    \"recording_autostart_enabled\": false,
    \"logo_enabled\": true,
    \"custom_logo\": \"maiores\",
    \"recording_logo_enabled\": true,
    \"virtual_backgrounds_enabled\": true,
    \"raise_hand_enabled\": true,
    \"participant_names_in_recordings_enabled\": true,
    \"hide_tiles_in_recordings_enabled\": false,
    \"invite_participants_enabled\": true,
    \"whiteboard_enabled\": true,
    \"qa_enabled\": true,
    \"upvote_qa_enabled\": true,
    \"files_panel_enabled\": true,
    \"polls_enabled\": true,
    \"consent_message_enabled\": true,
    \"recording_consent_message_enabled\": true,
    \"consent_message_type\": \"generic\",
    \"consent_message\": \"By joining, you consent to the processing of your personal data in accordance with our [link https:\\/\\/www.digitalsamba.com\\/redirect\\/privacy-policy]Privacy Policy[\\/link].\",
    \"checkbox_message\": \"Don’t show this again.\",
    \"recordings_layout_mode\": \"tiled\",
    \"layout_mode_on_join\": \"tiled\",
    \"max_participants\": 100,
    \"max_broadcasters\": 100,
    \"session_length\": 90,
    \"html_title\": \"My room\",
    \"transcription_enabled\": false,
    \"transcription_auto_start_enabled\": true,
    \"captions_enabled\": false,
    \"captions_language\": \"en\",
    \"captions_in_recordings_enabled\": false,
    \"expires_at\": \"2024-09-05 12:30:00\"
}"

Example response (200):


{
    "id": "13a5aa53-f4da-470b-bfd0-63dd9e5dd81d",
    "description": "My public room description.",
    "friendly_url": "MyPublicRoom",
    "privacy": "public",
    "max_participants": 100,
    "max_broadcasters": 10,
    "is_locked": false,
    "topbar_enabled": true,
    "toolbar_enabled": true,
    "toolbar_position": "left",
    "toolbar_color": "#000000",
    "primary_color": "#3771E0",
    "background_color": "#000000",
    "palette_mode": "light",
    "language": "en",
    "language_selection_enabled": true,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "screenshare_enabled": true,
    "participants_list_enabled": true,
    "recordings_enabled": true,
    "logo_enabled": true,
    "custom_logo": null,
    "recording_logo_enabled": false,
    "virtual_backgrounds_enabled": true,
    "raise_hand_enabled": true,
    "chat_enabled": true,
    "private_chat_enabled": true,
    "private_group_chat_enabled": true,
    "private_group_chat_name": "test",
    "pin_enabled": true,
    "full_screen_enabled": true,
    "minimize_own_tile_enabled": true,
    "minimize_own_tile_on_join_enabled": false,
    "end_session_enabled": true,
    "e2ee_enabled": false,
    "layout_mode_switch_enabled": true,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "participant_names_in_recordings_enabled": false,
    "hide_tiles_in_recordings_enabled": false,
    "invite_participants_enabled": true,
    "whiteboard_enabled": true,
    "qa_enabled": true,
    "files_panel_enabled": true,
    "consent_message_enabled": true,
    "recording_consent_message_enabled": true,
    "consent_message_type": "generic",
    "consent_message": "By joining, you consent to the processing of your personal data in accordance with our [link https://www.digitalsamba.com/redirect/privacy-policy]Privacy Policy[/link].",
    "checkbox_message": "Don’t show this again.",
    "recordings_layout_mode": "tiled",
    "layout_mode_on_join": "tiled",
    "room_url": "https://myteam.digitalsamba.com/MyPublicRoom",
    "external_id": "EXTID123",
    "default_role": {
        "id": "47697570-a2e8-4b0c-8f2d-1af1ea2bae67",
        "name": "moderator",
        "display_name": "Moderators"
    },
    "roles": [
        {
            "id": "47697570-a2e8-4b0c-8f2d-1af1ea2bae67",
            "name": "moderator",
            "display_name": "Moderators",
            "allow_private_group_chat": true
        },
        {
            "id": "4fae2627-3d52-4b01-905f-5022b285ee8c",
            "name": "attendee",
            "display_name": "Attendees",
            "allow_private_group_chat": false
        }
    ],
    "files": [
        {
            "id": "ae137edf-741e-4d0d-acd9-e5ad2c1dd74f",
            "name": "image.png",
            "url": "https://www.myimages.com/image.png",
            "thumbnail_url": "https://www.myimages.com/image-thumbnail.png"
        }
    ],
    "webhooks": [
        "3d5260b1-741e-4d0d-4a00-e5ad2c1dd74f",
        "77ea623b-741e-4d0d-acd9-32d98793e168"
    ],
    "breakout_rooms_enabled": true,
    "breakouts": [
        {
            "id": "ae137edf-741e-4d0d-acd9-e5ad2c1dd74f",
            "name": "Breakout Room 1"
        },
        {
            "id": "77ea623b-f677-4a00-8307-ec19aa022d22",
            "name": "Breakout Room 2"
        },
        {
            "id": "6cc45935-f00c-4683-9f14-32d98793e168",
            "name": "Breakout Room 3"
        }
    ],
    "html_title": "MyPublicRoom custom HTML title",
    "transcription_enabled": false,
    "captions_enabled": true,
    "captions_in_recordings_enabled": false,
    "captions_language": "en",
    "created_at": "2022-05-13T19:09:04Z",
    "updated_at": "2024-03-28T00:43:42Z"
}
 

Request      

POST api/v1/rooms

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

description   string  optional  

Must be at least 3 characters. Must not be greater than 500 characters. Example: My public room description.

friendly_url   string  optional  

Must be unique. Must be at least 3 characters. Must not be greater than 32 characters. Example: MyPublicRoom

privacy   string   

Public rooms can be joined using a room link. Private rooms require the room link to include a valid token. Must be in ['public', 'private']. Example: public

external_id   string  optional  

Assign the room with an ID for integration on your side. Example: myExtID123

default_role   string  optional  

Select a role to be assigned to participants who join with no token (shared link to public room) or with a token without a role. Role ID or name. Example: moderator

roles   string[]   

Select a subset of roles for this room. The order in which they’re added will be the order in which they appear in the Participants panel. Must be an array of role IDs or names.

webhooks   string[]  optional  

Must be an array of webhooks IDs. Limit the webhooks to the specified ones when this parameter is used, and when it's not provided, all webhooks are allowed.

is_locked   boolean  optional  

Locked rooms require acceptance to join. Single-role rooms cannot be locked on join. Example: false

topbar_enabled   boolean  optional  

Set the room with or without a top bar. Example: true

toolbar_enabled   boolean  optional  

Set the room with or without a toolbar. Example: true

toolbar_position   string  optional  

Choose your desired position for the toolbar or desktop devices. Must be one of left, right or bottom. Example: bottom

toolbar_color   string  optional  

Select a background colour for the toolbar in this room. Must be color hex code. Example: #000000

primary_color   string  optional  

Select a colour for buttons and other interactive elements in this room. Must be color hex code. Example: #3771E0

background_color   string  optional  

Select a colour for the background in this room. Must be color hex code. Example: #000000

palette_mode   string  optional  

Palette mode (Appearance) will control the background colour of panels, modals and join screen. Must be one of light or dark. Example: light

language   string  optional  

Select a default language for the room’s UI. Must be one of de, en or es. Example: en

languages   string[]  optional  

Select a subset of languages for participants to be able to choose from. Must be an array of language codes.

language_selection_enabled   boolean  optional  

Allow each user to control application UI language on their side. Example: true

audio_on_join_enabled   boolean  optional  

When disabled, users will join the session with muted microphones. Example: true

video_on_join_enabled   boolean  optional  

When disabled, users will join the session with turned-off cameras. Example: true

hd_video_on_join_enabled   boolean  optional  

Participants will stream in better quality. This setting requires more uplink bandwidth on the participants' side. Example: false

participants_list_enabled   boolean  optional  

When enabled, your participants will have access to the Participants panel. Example: true

pin_enabled   boolean  optional  

When enabled, participants will have the option to select a participant to enlarge and continuously watch. Example: true

full_screen_enabled   boolean  optional  

Allow your participants to expand any participant tile to full screen. Will not work in Auto mode. Example: true

minimize_own_tile_enabled   boolean  optional  

Allow your participants to minimise and maximise their own tile when in tiled mode. Example: true

minimize_own_tile_on_join_enabled   boolean  optional  

When enabled, participants will join the room with their own tile minimised. Example: false

broadcaster_tile_visibility   string  optional  

Set the visibility of tiles containing broadcaster’s initials depending or cam and mic state. Must be one of all, cam_mic or cam. Example: all

end_session_enabled   boolean  optional  

When enabled, the "End session" button will be available in the toolbar. Example: true

breakout_rooms_enabled   boolean  optional  

Allow host to split meeting participants into separate, smaller rooms (incompatible with E2EE). Example: false

breakouts   string[]  optional  

You can create and name required number of breakout rooms to use them during the meeting. Must be an array of breakouts room IDs and names.

chat_enabled   boolean  optional  

Allow participants to post and read in the public chat. Example: true

private_chat_enabled   boolean  optional  

Enable posting and reading in one-to-one chats with specific participants. Example: true

private_group_chat_enabled   boolean  optional  

Enable posting and reading in private group chats. Example: false

private_group_chat_name   string  optional  

Customise your private group chat with a name of your choice to be displayed. Must be at least 3 characters. Example: Presenters

private_group_chat_roles   string[]   

Must be an array of role IDs or names.

e2ee_enabled   boolean  optional  

Secure usernames, chat messages, and video / audio streams, including shared screens with encryption keys that only participants in the room have access to. Example: false

layout_mode_switch_enabled   boolean  optional  

When disabled, participants will not see the layout mode switcher. Example: true

simple_notifications_enabled   boolean  optional  

Send participants non-disruptive notifications to inform them when others join and leave the session. Example: true

join_screen_enabled   boolean  optional  

When enabled, users will have the chance to test their speakers, camera and microphone ahead of joining. Example: true

screenshare_enabled   boolean  optional  

Allow your participants to share their screen. Mobile users will not be able to share their screen. Example: true

recordings_enabled   boolean  optional  

Allow participants to record sessions. Example: true

recording_autostart_enabled   boolean  optional  

Recording will automatically start when the first participant joins. Example: false

logo_enabled   boolean  optional  

When enabled, the logo will be shown in this room. Example: true

custom_logo   string  optional  

You may add a custom logo to be displayed in this room and its recordings. Image URL or base64 encoded file source. Example: maiores

recording_logo_enabled   boolean  optional  

When enabled, the logo will be shown in this room’s recordings. Example: true

virtual_backgrounds_enabled   boolean  optional  

When enabled, participants on desktop devices will be able to appear on virtual backgrounds. Example: true

raise_hand_enabled   boolean  optional  

Allow participants to raise hand to take turns to speak without disrupting this session. Example: true

participant_names_in_recordings_enabled   boolean  optional  

When enabled, recordings in this room will include participant name badges on tiles. Example: true

hide_tiles_in_recordings_enabled   boolean  optional  

When enabled, recordings will only capture participants' audio and shared screens. A blank screen will be recorded if no screen is shared. Example: false

invite_participants_enabled   boolean  optional  

When enabled, users allowed to β€˜Invite participants’ will see an β€˜Invite people’ button in the participants panel. Example: true

whiteboard_enabled   boolean  optional  

Add a whiteboard to the room so that participants with the β€˜edit whiteboard’ permission are able to open and edit content. Not compatible with E2EE. Example: true

qa_enabled   boolean  optional  

Allow participants to post, answer, and moderate questions. Answering and moderating require permission. Example: true

upvote_qa_enabled   boolean  optional  

Allow participants with the 'Upvote Q&A' permission to vote for questions, enabling moderators to prioritise answers based on interest. Example: true

files_panel_enabled   boolean  optional  

When enabled, participants will have access to the Files panel. Example: true

polls_enabled   boolean  optional  

When enabled, participants with the β€˜manage polls’ permission will have the ability to create and launch polls. Example: true

consent_message_enabled   boolean  optional  

When enabled, participants will be reminded that by joining, they consent to the processing of their personal data in accordance with your organisation’s Privacy Policy. Example: true

recording_consent_message_enabled   boolean  optional  

When enabled, participants initiating a recording will be reminded that all participants' consent, including those who join late, can be a legal requirement. Example: true

consent_message_type   string  optional  

Must be in ['generic', 'custom']. Example: generic

consent_message   string  optional  

Example: By joining, you consent to the processing of your personal data in accordance with our [link https://www.digitalsamba.com/redirect/privacy-policy]Privacy Policy[/link].

checkbox_message   string  optional  

Add a custom message to the β€˜don’t show this again' checkbox. Example: Don’t show this again.

recordings_layout_mode   string  optional  

Set the layout mode for recordings. Auto mode highlights the active speaker, open content, or shared screen, ideal for novice users, while Tiled mode offers customisable grid layouts for personalized viewing experiences. Must be in ['auto', 'tiled']. Example: tiled

layout_mode_on_join   string  optional  

Set the layout mode on join: Auto mode highlights the active speaker, open content, or shared screen, ideal for novice users, while Tiled mode offers customisable grid layouts for personalized viewing experiences. Must be in ['auto', 'tiled']. Example: tiled

max_participants   integer  optional  

Number of maximum allowed concurrent participants per room. Must be at least 2. Must not be greater than max participants allowed by your plan. Can be up to 2000 in the largest plan. Example: 100

max_broadcasters   integer  optional  

Number of maximum allowed concurrent broadcasters per room. It will be limited by the maximum number of participants set above. Must be at least 1. Example: 100

session_length   integer  optional  

Value in minutes after which sessions should automatically end. Must be at least 1. Must not be greater than 1440. Empty value means Unlimited. Example: 90

html_title   string  optional  

Add a custom title to be displayed on the browser tab, visible as long as the room is not embedded in an iframe. Must be at least 5 characters. Must not be greater than 255 characters. Example: My room

transcription_enabled   boolean  optional  

When enabled, the speech of participants in this room will be transcribed into text (incompatible with E2EE). Example: false

transcription_auto_start_enabled   boolean  optional  

Transcription will automatically start when the first participant joins. Example: true

captions_enabled   boolean  optional  

Allow Π·articipants to enable or disable captions on their end. Example: false

captions_language   string  optional  

Set the default input language to be transcribed in this room. Must be en or de. Example: en

captions_in_recordings_enabled   boolean  optional  

Display session transcriptions as subtitles in this room’s recordings. Example: false

expires_at   datetime  optional  

Room will be automatically deleted after the specified expiration time is reached. Must be future date in format: YYYY-MM-DD hh:mm:ss. Example: 2024-09-05 12:30:00

Update room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'description' => 'My public room description.',
            'friendly_url' => 'MyPublicRoom',
            'privacy' => 'public',
            'external_id' => 'myExtID123',
            'default_role' => 'moderator',
            'roles' => [
                'moderator',
            ],
            'webhooks' => [
                'c83c7b87-b9b8-444d-a749-7076fe58fdb8',
            ],
            'is_locked' => false,
            'topbar_enabled' => true,
            'toolbar_enabled' => true,
            'toolbar_position' => 'bottom',
            'toolbar_color' => '#000000',
            'primary_color' => '#3771E0',
            'background_color' => '#000000',
            'palette_mode' => 'light',
            'language' => 'en',
            'language_selection_enabled' => true,
            'audio_on_join_enabled' => true,
            'video_on_join_enabled' => true,
            'hd_video_on_join_enabled' => false,
            'participants_list_enabled' => true,
            'pin_enabled' => true,
            'full_screen_enabled' => true,
            'minimize_own_tile_enabled' => true,
            'minimize_own_tile_on_join_enabled' => false,
            'broadcaster_tile_visibility' => 'all',
            'end_session_enabled' => true,
            'breakout_rooms_enabled' => false,
            'breakouts' => null,
            'chat_enabled' => true,
            'private_chat_enabled' => true,
            'private_group_chat_enabled' => false,
            'private_group_chat_name' => 'Presenters',
            'private_group_chat_roles' => [
                'moderator',
            ],
            'e2ee_enabled' => false,
            'layout_mode_switch_enabled' => true,
            'simple_notifications_enabled' => true,
            'join_screen_enabled' => true,
            'screenshare_enabled' => true,
            'recordings_enabled' => true,
            'recording_autostart_enabled' => false,
            'logo_enabled' => true,
            'custom_logo' => 'dolor',
            'recording_logo_enabled' => true,
            'virtual_backgrounds_enabled' => true,
            'raise_hand_enabled' => true,
            'participant_names_in_recordings_enabled' => true,
            'hide_tiles_in_recordings_enabled' => false,
            'invite_participants_enabled' => true,
            'whiteboard_enabled' => true,
            'qa_enabled' => true,
            'upvote_qa_enabled' => true,
            'files_panel_enabled' => true,
            'polls_enabled' => true,
            'consent_message_enabled' => true,
            'recording_consent_message_enabled' => true,
            'consent_message_type' => 'generic',
            'consent_message' => 'By joining, you consent to the processing of your personal data in accordance with our [link https://www.digitalsamba.com/redirect/privacy-policy]Privacy Policy[/link].',
            'checkbox_message' => 'Don’t show this again.',
            'recordings_layout_mode' => 'tiled',
            'layout_mode_on_join' => 'tiled',
            'max_participants' => 100,
            'max_broadcasters' => 100,
            'session_length' => 90,
            'html_title' => 'My room',
            'transcription_enabled' => false,
            'transcription_auto_start_enabled' => true,
            'captions_enabled' => false,
            'captions_language' => 'en',
            'captions_in_recordings_enabled' => false,
            'expires_at' => '2024-09-05 12:30:00',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "description": "My public room description.",
    "friendly_url": "MyPublicRoom",
    "privacy": "public",
    "external_id": "myExtID123",
    "default_role": "moderator",
    "roles": [
        "moderator"
    ],
    "webhooks": [
        "c83c7b87-b9b8-444d-a749-7076fe58fdb8"
    ],
    "is_locked": false,
    "topbar_enabled": true,
    "toolbar_enabled": true,
    "toolbar_position": "bottom",
    "toolbar_color": "#000000",
    "primary_color": "#3771E0",
    "background_color": "#000000",
    "palette_mode": "light",
    "language": "en",
    "language_selection_enabled": true,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "hd_video_on_join_enabled": false,
    "participants_list_enabled": true,
    "pin_enabled": true,
    "full_screen_enabled": true,
    "minimize_own_tile_enabled": true,
    "minimize_own_tile_on_join_enabled": false,
    "broadcaster_tile_visibility": "all",
    "end_session_enabled": true,
    "breakout_rooms_enabled": false,
    "breakouts": null,
    "chat_enabled": true,
    "private_chat_enabled": true,
    "private_group_chat_enabled": false,
    "private_group_chat_name": "Presenters",
    "private_group_chat_roles": [
        "moderator"
    ],
    "e2ee_enabled": false,
    "layout_mode_switch_enabled": true,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "screenshare_enabled": true,
    "recordings_enabled": true,
    "recording_autostart_enabled": false,
    "logo_enabled": true,
    "custom_logo": "dolor",
    "recording_logo_enabled": true,
    "virtual_backgrounds_enabled": true,
    "raise_hand_enabled": true,
    "participant_names_in_recordings_enabled": true,
    "hide_tiles_in_recordings_enabled": false,
    "invite_participants_enabled": true,
    "whiteboard_enabled": true,
    "qa_enabled": true,
    "upvote_qa_enabled": true,
    "files_panel_enabled": true,
    "polls_enabled": true,
    "consent_message_enabled": true,
    "recording_consent_message_enabled": true,
    "consent_message_type": "generic",
    "consent_message": "By joining, you consent to the processing of your personal data in accordance with our [link https:\/\/www.digitalsamba.com\/redirect\/privacy-policy]Privacy Policy[\/link].",
    "checkbox_message": "Don’t show this again.",
    "recordings_layout_mode": "tiled",
    "layout_mode_on_join": "tiled",
    "max_participants": 100,
    "max_broadcasters": 100,
    "session_length": 90,
    "html_title": "My room",
    "transcription_enabled": false,
    "transcription_auto_start_enabled": true,
    "captions_enabled": false,
    "captions_language": "en",
    "captions_in_recordings_enabled": false,
    "expires_at": "2024-09-05 12:30:00"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request PATCH \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"description\": \"My public room description.\",
    \"friendly_url\": \"MyPublicRoom\",
    \"privacy\": \"public\",
    \"external_id\": \"myExtID123\",
    \"default_role\": \"moderator\",
    \"roles\": [
        \"moderator\"
    ],
    \"webhooks\": [
        \"c83c7b87-b9b8-444d-a749-7076fe58fdb8\"
    ],
    \"is_locked\": false,
    \"topbar_enabled\": true,
    \"toolbar_enabled\": true,
    \"toolbar_position\": \"bottom\",
    \"toolbar_color\": \"#000000\",
    \"primary_color\": \"#3771E0\",
    \"background_color\": \"#000000\",
    \"palette_mode\": \"light\",
    \"language\": \"en\",
    \"language_selection_enabled\": true,
    \"audio_on_join_enabled\": true,
    \"video_on_join_enabled\": true,
    \"hd_video_on_join_enabled\": false,
    \"participants_list_enabled\": true,
    \"pin_enabled\": true,
    \"full_screen_enabled\": true,
    \"minimize_own_tile_enabled\": true,
    \"minimize_own_tile_on_join_enabled\": false,
    \"broadcaster_tile_visibility\": \"all\",
    \"end_session_enabled\": true,
    \"breakout_rooms_enabled\": false,
    \"breakouts\": null,
    \"chat_enabled\": true,
    \"private_chat_enabled\": true,
    \"private_group_chat_enabled\": false,
    \"private_group_chat_name\": \"Presenters\",
    \"private_group_chat_roles\": [
        \"moderator\"
    ],
    \"e2ee_enabled\": false,
    \"layout_mode_switch_enabled\": true,
    \"simple_notifications_enabled\": true,
    \"join_screen_enabled\": true,
    \"screenshare_enabled\": true,
    \"recordings_enabled\": true,
    \"recording_autostart_enabled\": false,
    \"logo_enabled\": true,
    \"custom_logo\": \"dolor\",
    \"recording_logo_enabled\": true,
    \"virtual_backgrounds_enabled\": true,
    \"raise_hand_enabled\": true,
    \"participant_names_in_recordings_enabled\": true,
    \"hide_tiles_in_recordings_enabled\": false,
    \"invite_participants_enabled\": true,
    \"whiteboard_enabled\": true,
    \"qa_enabled\": true,
    \"upvote_qa_enabled\": true,
    \"files_panel_enabled\": true,
    \"polls_enabled\": true,
    \"consent_message_enabled\": true,
    \"recording_consent_message_enabled\": true,
    \"consent_message_type\": \"generic\",
    \"consent_message\": \"By joining, you consent to the processing of your personal data in accordance with our [link https:\\/\\/www.digitalsamba.com\\/redirect\\/privacy-policy]Privacy Policy[\\/link].\",
    \"checkbox_message\": \"Don’t show this again.\",
    \"recordings_layout_mode\": \"tiled\",
    \"layout_mode_on_join\": \"tiled\",
    \"max_participants\": 100,
    \"max_broadcasters\": 100,
    \"session_length\": 90,
    \"html_title\": \"My room\",
    \"transcription_enabled\": false,
    \"transcription_auto_start_enabled\": true,
    \"captions_enabled\": false,
    \"captions_language\": \"en\",
    \"captions_in_recordings_enabled\": false,
    \"expires_at\": \"2024-09-05 12:30:00\"
}"

Example response (200):


{
    "id": "13a5aa53-f4da-470b-bfd0-63dd9e5dd81d",
    "description": "My public room description.",
    "friendly_url": "MyPublicRoom",
    "privacy": "public",
    "max_participants": 100,
    "max_broadcasters": 10,
    "is_locked": false,
    "topbar_enabled": true,
    "toolbar_enabled": true,
    "toolbar_position": "left",
    "toolbar_color": "#000000",
    "primary_color": "#3771E0",
    "background_color": "#000000",
    "palette_mode": "light",
    "language": "en",
    "language_selection_enabled": true,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "screenshare_enabled": true,
    "participants_list_enabled": true,
    "recordings_enabled": true,
    "logo_enabled": true,
    "custom_logo": null,
    "recording_logo_enabled": false,
    "virtual_backgrounds_enabled": true,
    "raise_hand_enabled": true,
    "chat_enabled": true,
    "private_chat_enabled": true,
    "private_group_chat_enabled": true,
    "private_group_chat_name": "test",
    "pin_enabled": true,
    "full_screen_enabled": true,
    "minimize_own_tile_enabled": true,
    "minimize_own_tile_on_join_enabled": false,
    "end_session_enabled": true,
    "e2ee_enabled": false,
    "layout_mode_switch_enabled": true,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "participant_names_in_recordings_enabled": false,
    "hide_tiles_in_recordings_enabled": false,
    "invite_participants_enabled": true,
    "whiteboard_enabled": true,
    "qa_enabled": true,
    "files_panel_enabled": true,
    "consent_message_enabled": true,
    "recording_consent_message_enabled": true,
    "consent_message_type": "generic",
    "consent_message": "By joining, you consent to the processing of your personal data in accordance with our [link https://www.digitalsamba.com/redirect/privacy-policy]Privacy Policy[/link].",
    "checkbox_message": "Don’t show this again.",
    "recordings_layout_mode": "tiled",
    "layout_mode_on_join": "tiled",
    "room_url": "https://myteam.digitalsamba.com/MyPublicRoom",
    "external_id": "EXTID123",
    "default_role": {
        "id": "47697570-a2e8-4b0c-8f2d-1af1ea2bae67",
        "name": "moderator",
        "display_name": "Moderators"
    },
    "roles": [
        {
            "id": "47697570-a2e8-4b0c-8f2d-1af1ea2bae67",
            "name": "moderator",
            "display_name": "Moderators",
            "allow_private_group_chat": true
        },
        {
            "id": "4fae2627-3d52-4b01-905f-5022b285ee8c",
            "name": "attendee",
            "display_name": "Attendees",
            "allow_private_group_chat": false
        }
    ],
    "files": [
        {
            "id": "ae137edf-741e-4d0d-acd9-e5ad2c1dd74f",
            "name": "image.png",
            "url": "https://www.myimages.com/image.png",
            "thumbnail_url": "https://www.myimages.com/image-thumbnail.png"
        }
    ],
    "webhooks": [
        "3d5260b1-741e-4d0d-4a00-e5ad2c1dd74f",
        "77ea623b-741e-4d0d-acd9-32d98793e168"
    ],
    "breakout_rooms_enabled": true,
    "breakouts": [
        {
            "id": "ae137edf-741e-4d0d-acd9-e5ad2c1dd74f",
            "name": "Breakout Room 1"
        },
        {
            "id": "77ea623b-f677-4a00-8307-ec19aa022d22",
            "name": "Breakout Room 2"
        },
        {
            "id": "6cc45935-f00c-4683-9f14-32d98793e168",
            "name": "Breakout Room 3"
        }
    ],
    "html_title": "MyPublicRoom custom HTML title",
    "transcription_enabled": false,
    "captions_enabled": true,
    "captions_in_recordings_enabled": false,
    "captions_language": "en",
    "created_at": "2022-05-13T19:09:04Z",
    "updated_at": "2024-03-28T00:43:42Z"
}
 

Request      

PATCH api/v1/rooms/{room}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Body Parameters

description   string  optional  

Must be at least 3 characters. Must not be greater than 500 characters. Example: My public room description.

friendly_url   string  optional  

Must be unique. Must be at least 3 characters. Must not be greater than 32 characters. Example: MyPublicRoom

privacy   string   

Public rooms can be joined using a room link. Private rooms require the room link to include a valid token. Must be in ['public', 'private']. Example: public

external_id   string  optional  

Assign the room with an ID for integration on your side. Example: myExtID123

default_role   string  optional  

Select a role to be assigned to participants who join with no token (shared link to public room) or with a token without a role. Role ID or name. Example: moderator

roles   string[]  optional  

Select a subset of roles for this room. The order in which they’re added will be the order in which they appear in the Participants panel. Must be an array of role IDs or names.

webhooks   string[]  optional  

Must be an array of webhooks IDs. Limit the webhooks to the specified ones when this parameter is used, and when it's not provided, all webhooks are allowed.

is_locked   boolean  optional  

Locked rooms require acceptance to join. Single-role rooms cannot be locked on join. Example: false

topbar_enabled   boolean  optional  

Set the room with or without a top bar. Example: true

toolbar_enabled   boolean  optional  

Set the room with or without a toolbar. Example: true

toolbar_position   string  optional  

Choose your desired position for the toolbar or desktop devices. Must be one of left, right or bottom. Example: bottom

toolbar_color   string  optional  

Select a background colour for the toolbar in this room. Must be color hex code. Example: #000000

primary_color   string  optional  

Select a colour for buttons and other interactive elements in this room. Must be color hex code. Example: #3771E0

background_color   string  optional  

Select a colour for the background in this room. Must be color hex code. Example: #000000

palette_mode   string  optional  

Palette mode (Appearance) will control the background colour of panels, modals and join screen. Must be one of light or dark. Example: light

language   string  optional  

Select a default language for the room’s UI. Must be one of de, en or es. Example: en

language_selection_enabled   boolean  optional  

Allow each user to control application UI language on their side. Example: true

audio_on_join_enabled   boolean  optional  

When disabled, users will join the session with muted microphones. Example: true

video_on_join_enabled   boolean  optional  

When disabled, users will join the session with turned-off cameras. Example: true

hd_video_on_join_enabled   boolean  optional  

Participants will stream in better quality. This setting requires more uplink bandwidth on the participants' side. Example: false

participants_list_enabled   boolean  optional  

When enabled, your participants will have access to the Participants panel. Example: true

pin_enabled   boolean  optional  

When enabled, participants will have the option to select a participant to enlarge and continuously watch. Example: true

full_screen_enabled   boolean  optional  

Allow your participants to expand any participant tile to full screen. Will not work in Auto mode. Example: true

minimize_own_tile_enabled   boolean  optional  

Allow your participants to minimise and maximise their own tile when in tiled mode. Example: true

minimize_own_tile_on_join_enabled   boolean  optional  

When enabled, participants will join the room with their own tile minimised. Example: false

broadcaster_tile_visibility   string  optional  

Set the visibility of tiles containing broadcaster’s initials depending or cam and mic state. Must be one of all, cam_mic or cam. Example: all

end_session_enabled   boolean  optional  

When enabled, the "End session" button will be available in the toolbar. Example: true

breakout_rooms_enabled   boolean  optional  

Allow host to split meeting participants into separate, smaller rooms (incompatible with E2EE). Example: false

breakouts   string[]  optional  

You can create and name required number of breakout rooms to use them during the meeting. Must be an array of breakouts room IDs and names.

chat_enabled   boolean  optional  

Allow participants to post and read in the public chat. Example: true

private_chat_enabled   boolean  optional  

Enable posting and reading in one-to-one chats with specific participants. Example: true

private_group_chat_enabled   boolean  optional  

Enable posting and reading in private group chats. Example: false

private_group_chat_name   string  optional  

Customise your private group chat with a name of your choice to be displayed. Must be at least 3 characters. Example: Presenters

private_group_chat_roles   string[]   

Must be an array of role IDs or names.

e2ee_enabled   boolean  optional  

Secure usernames, chat messages, and video / audio streams, including shared screens with encryption keys that only participants in the room have access to. Example: false

layout_mode_switch_enabled   boolean  optional  

When disabled, participants will not see the layout mode switcher. Example: true

simple_notifications_enabled   boolean  optional  

Send participants non-disruptive notifications to inform them when others join and leave the session. Example: true

join_screen_enabled   boolean  optional  

When enabled, users will have the chance to test their speakers, camera and microphone ahead of joining. Example: true

screenshare_enabled   boolean  optional  

Allow your participants to share their screen. Mobile users will not be able to share their screen. Example: true

recordings_enabled   boolean  optional  

Allow participants to record sessions. Example: true

recording_autostart_enabled   boolean  optional  

Recording will automatically start when the first participant joins. Example: false

logo_enabled   boolean  optional  

When enabled, the logo will be shown in this room. Example: true

custom_logo   string  optional  

You may add a custom logo to be displayed in this room and its recordings. Image URL or base64 encoded file source. Example: dolor

recording_logo_enabled   boolean  optional  

When enabled, the logo will be shown in this room’s recordings. Example: true

virtual_backgrounds_enabled   boolean  optional  

When enabled, participants on desktop devices will be able to appear on virtual backgrounds. Example: true

raise_hand_enabled   boolean  optional  

Allow participants to raise hand to take turns to speak without disrupting this session. Example: true

participant_names_in_recordings_enabled   boolean  optional  

When enabled, recordings in this room will include participant name badges on tiles. Example: true

hide_tiles_in_recordings_enabled   boolean  optional  

When enabled, recordings will only capture participants' audio and shared screens. A blank screen will be recorded if no screen is shared. Example: false

invite_participants_enabled   boolean  optional  

When enabled, users allowed to β€˜Invite participants’ will see an β€˜Invite people’ button in the participants panel. Example: true

whiteboard_enabled   boolean  optional  

Add a whiteboard to the room so that participants with the β€˜edit whiteboard’ permission are able to open and edit content. Not compatible with E2EE. Example: true

qa_enabled   boolean  optional  

Allow participants to post, answer, and moderate questions. Answering and moderating require permission. Example: true

upvote_qa_enabled   boolean  optional  

Allow participants with the 'Upvote Q&A' permission to vote for questions, enabling moderators to prioritise answers based on interest. Example: true

files_panel_enabled   boolean  optional  

When enabled, participants will have access to the Files panel. Example: true

polls_enabled   boolean  optional  

When enabled, participants with the β€˜manage polls’ permission will have the ability to create and launch polls. Example: true

consent_message_enabled   boolean  optional  

When enabled, participants will be reminded that by joining, they consent to the processing of their personal data in accordance with your organisation’s Privacy Policy. Example: true

recording_consent_message_enabled   boolean  optional  

When enabled, participants initiating a recording will be reminded that all participants' consent, including those who join late, can be a legal requirement. Example: true

consent_message_type   string  optional  

Must be in ['generic', 'custom']. Example: generic

consent_message   string  optional  

Example: By joining, you consent to the processing of your personal data in accordance with our [link https://www.digitalsamba.com/redirect/privacy-policy]Privacy Policy[/link].

checkbox_message   string  optional  

Add a custom message to the β€˜don’t show this again' checkbox. Example: Don’t show this again.

recordings_layout_mode   string  optional  

Set the layout mode for recordings. Auto mode highlights the active speaker, open content, or shared screen, ideal for novice users, while Tiled mode offers customisable grid layouts for personalized viewing experiences. Must be in ['auto', 'tiled']. Example: tiled

layout_mode_on_join   string  optional  

Set the layout mode on join: Auto mode highlights the active speaker, open content, or shared screen, ideal for novice users, while Tiled mode offers customisable grid layouts for personalized viewing experiences. Must be in ['auto', 'tiled']. Example: tiled

max_participants   integer  optional  

Number of maximum allowed concurrent participants per room. Must be at least 2. Must not be greater than max participants allowed by your plan. Can be up to 2000 in the largest plan. Example: 100

max_broadcasters   integer  optional  

Number of maximum allowed concurrent broadcasters per room. It will be limited by the maximum number of participants set above. Must be at least 1. Example: 100

session_length   integer  optional  

Value in minutes after which sessions should automatically end. Must be at least 1. Must not be greater than 1440. Empty value means Unlimited. Example: 90

html_title   string  optional  

Add a custom title to be displayed on the browser tab, visible as long as the room is not embedded in an iframe. Must be at least 5 characters. Must not be greater than 255 characters. Example: My room

transcription_enabled   boolean  optional  

When enabled, the speech of participants in this room will be transcribed into text (incompatible with E2EE). Example: false

transcription_auto_start_enabled   boolean  optional  

Transcription will automatically start when the first participant joins. Example: true

captions_enabled   boolean  optional  

Allow Π·articipants to enable or disable captions on their end. Example: false

captions_language   string  optional  

Set the default input language to be transcribed in this room. Must be en or de. Example: en

captions_in_recordings_enabled   boolean  optional  

Display session transcriptions as subtitles in this room’s recordings. Example: false

expires_at   datetime  optional  

Room will be automatically deleted after the specified expiration time is reached. Must be future date in format: YYYY-MM-DD hh:mm:ss. Example: 2024-09-05 12:30:00

Delete room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'delete_resources' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "delete_resources": false
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"delete_resources\": false
}"

Example response (204):

Empty response
 

Request      

DELETE api/v1/rooms/{room}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Body Parameters

delete_resources   boolean  optional  

Hard delete all of stored resource data for this room. Example: false

Hard delete all of stored resource data for specific room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/resources';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/resources"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/resources" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/rooms/{room}/resources

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Delete the specified poll.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/16719c1b-cc82-4dfe-9f6f-40d9093fa695';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/16719c1b-cc82-4dfe-9f6f-40d9093fa695"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/16719c1b-cc82-4dfe-9f6f-40d9093fa695" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/rooms/{room}/polls/{poll}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

poll   string   

The UUID of the poll. Example: 16719c1b-cc82-4dfe-9f6f-40d9093fa695

Live

Get rooms with live participants count.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/live';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/live"
);

const params = {
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/live?limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "total_count": 3,
    "data": [
        {
            "id": "ecd0fa17-b1c6-3f35-99c3-ce6cd81afca8",
            "external_id": "EXTID824955915",
            "start_time": "2022-05-13T12:31:19.000000Z",
            "session_duration": 11408,
            "live_participants": 27
        },
        {
            "id": "554265e0-9fd7-3408-ace4-249e00b024f1",
            "external_id": "EXTID1504059250",
            "start_time": "2022-05-13T10:22:42.000000Z",
            "session_duration": 2726,
            "live_participants": 3
        },
        {
            "id": "abb8cc46-6b87-3aae-80b0-82e8943ed0d4",
            "external_id": "EXTID69285216",
            "start_time": "2022-05-13T11:13:29.000000Z",
            "session_duration": 1183,
            "live_participants": 55
        }
    ]
}
 

Request      

GET api/v1/rooms/live

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the room or room friendly URL after which records will be returned.

Get rooms with live participants data.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/live/participants';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/live/participants"
);

const params = {
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/live/participants?limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "total_count": 5,
    "data": [
        {
            "id": "b31155d3-19ad-3d4d-bde6-c5ec9172d9b7",
            "external_id": "EXTID1251839424",
            "start_time": "2022-05-16T12:51:54.000000Z",
            "session_duration": 2580,
            "live_participants": [
                {
                    "id": "4354aa20-9906-45ed-9b02-799525e1dbc3",
                    "external_id": "EXTID1916626560",
                    "name": "Gwendolyn Hayes",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "898964d2-9951-4734-8eea-77fa72fd137d",
                    "external_id": "EXTID657371078",
                    "name": "Mrs. Mya Schroeder PhD",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "73c8f78f-0b80-4a76-8fa3-1d11705a5fa3",
                    "external_id": "EXTID229839886",
                    "name": "Gregg Runte",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "2fdc809a-e981-46a2-bc67-84c15ca7efd5",
                    "external_id": "EXTID1261882350",
                    "name": "Angelina Treutel I",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "19650289-6171-4c45-a7a2-0e66fb5c29a0",
                    "external_id": "EXTID2009248764",
                    "name": "Verdie Jacobs",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                }
            ]
        },
        {
            "id": "b623bc65-4cd8-316e-905b-213af2ed362d",
            "external_id": "EXTID2082633660",
            "start_time": "2022-05-16T12:51:54.000000Z",
            "session_duration": 2580,
            "live_participants": [
                {
                    "id": "59852f2b-b25a-43c6-927c-7a3c2634deef",
                    "external_id": "EXTID1005303666",
                    "name": "Stacey McLaughlin",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "3765c44f-b629-4bb3-8304-805c71b01fe5",
                    "external_id": "EXTID310825640",
                    "name": "Stewart Roob",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "c596f874-bf88-4865-a77b-44f9e3285f5b",
                    "external_id": "EXTID1492362491",
                    "name": "Miss Samantha Mayert",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "4930aee0-f4ab-4203-9054-b3932e94b015",
                    "external_id": "EXTID462108878",
                    "name": "Earl Buckridge",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "3f6dca1f-92b0-4147-81ee-754754cb00d1",
                    "external_id": "EXTID1790509806",
                    "name": "Colin Dickens",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                }
            ]
        },
        {
            "id": "2473e7b1-406c-3e05-93cb-57c6a6ba6e60",
            "external_id": "EXTID209019793",
            "start_time": "2022-05-16T12:51:54.000000Z",
            "session_duration": 2580,
            "live_participants": [
                {
                    "id": "c6a73ece-77b3-47f6-b614-7b949cddd2fe",
                    "external_id": "EXTID617498776",
                    "name": "Prof. Forrest Ritchie V",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "e4d23870-ed35-4901-9cfd-47bddb6a035a",
                    "external_id": "EXTID1665145569",
                    "name": "Shany Torphy",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "e9c6a70d-6528-404e-88ea-4994578b56e1",
                    "external_id": "EXTID401347102",
                    "name": "Lera Zboncak DVM",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "0ef1fd7f-acda-4b0a-94f5-ee411d16cd86",
                    "external_id": "EXTID597760933",
                    "name": "Leon Daugherty I",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "c76a28e9-b0d4-4d08-aa24-c869289ccc39",
                    "external_id": "EXTID2020171092",
                    "name": "Oswald Hickle",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                }
            ]
        },
        {
            "id": "6328914f-19a0-397a-99dc-4cd49570cffc",
            "external_id": "EXTID1928952811",
            "start_time": "2022-05-16T12:51:34.000000Z",
            "session_duration": 2600,
            "live_participants": [
                {
                    "id": "03a82571-3327-439d-ba57-8515302f0ee6",
                    "external_id": "EXTID2098450034",
                    "name": "Mrs. Icie Funk",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "22fde4ce-6fea-4c1b-85e9-14ae60c7b452",
                    "external_id": "EXTID2077221187",
                    "name": "Sonia Kulas",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "5ea800db-8c88-4f99-a6d2-a292016bfa9b",
                    "external_id": "EXTID1543982160",
                    "name": "Lisette Gerhold",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "a360431a-1e2e-45c2-8b74-67ce84585532",
                    "external_id": "EXTID222171890",
                    "name": "Vita Mann",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "bafa6f48-1992-45aa-bd72-6d10b08bb576",
                    "external_id": "EXTID1015346028",
                    "name": "Darien Powlowski",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                }
            ]
        },
        {
            "id": "f9716453-8e9f-39a4-b2f2-c1d00228411e",
            "external_id": "EXTID632729761",
            "start_time": "2022-05-16T12:51:00.000000Z",
            "session_duration": 2634,
            "live_participants": [
                {
                    "id": "aed005c5-69db-40f7-9785-395c545fed64",
                    "external_id": "EXTID2128980420",
                    "name": "Devante Stamm DVM",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "b8f2422e-a524-4ced-8cb2-9219bcdd5ec7",
                    "external_id": "EXTID1153236013",
                    "name": "Magnolia D'Amore",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "e58b84d4-b370-4389-9710-8935ac9d71ef",
                    "external_id": "EXTID1466108903",
                    "name": "Dr. Chauncey Franecki",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "3a7c8ad3-8082-4d2e-86f9-ffbddaff6a7b",
                    "external_id": "EXTID778875197",
                    "name": "Deborah Vandervort III",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                },
                {
                    "id": "35a65ef1-06f1-4ee1-a8cf-6e032fac227a",
                    "external_id": "EXTID206934569",
                    "name": "Callie DuBuque",
                    "role": "participant",
                    "join_time": "2022-05-16T12:51:54.000000Z"
                }
            ]
        }
    ]
}
 

Request      

GET api/v1/rooms/live/participants

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the room or room friendly URL after which records will be returned.

Get single room with live participants count.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/live';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/live"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/live" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "c2d64b46-cc89-3830-890b-f81ccb2f882c",
    "external_id": "EXTID1688929106",
    "start_time": "2022-05-16T12:12:54.000000Z",
    "session_duration": 1408,
    "live_participants": 17
}
 

Request      

GET api/v1/rooms/{room}/live

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Get single room with live participants' data.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/live/participants';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/live/participants"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/live/participants" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "4e68be68-f505-3827-81f7-72fa76f42de9",
    "external_id": "EXTID852602699",
    "start_time": "2022-05-16T12:48:18.000000Z",
    "session_duration": 1408,
    "live_participants": [
        {
            "id": "928f1a06-921b-446f-9d23-b78e96523563",
            "external_id": "EXTID2113427821",
            "name": "Unique Reynolds",
            "role": "participant",
            "join_time": "2022-05-16T12:48:18.000000Z"
        },
        {
            "id": "d9f72e6f-61e7-4722-919f-d850f315d49c",
            "external_id": "EXTID524240932",
            "name": "Susie Luettgen",
            "role": "participant",
            "join_time": "2022-05-16T12:50:22.000000Z"
        },
        {
            "id": "598f9761-4fa3-4b47-bde7-0cc05228ff36",
            "external_id": "EXTID766750985",
            "name": "Prof. Juliet Kunde I",
            "role": "participant",
            "join_time": "2022-05-16T12:19:31.000000Z"
        }
    ]
}
 

Request      

GET api/v1/rooms/{room}/live/participants

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Recordings

Get all team recordings.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/recordings';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'room_id' => 'd4dfe280-01e7-42f0-ba57-a2f3e449e775',
            'session_id' => 'ce4bba81-d332-426c-8e59-846d9c15d492',
            'status' => 'READY',
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/recordings"
);

const params = {
    "room_id": "d4dfe280-01e7-42f0-ba57-a2f3e449e775",
    "session_id": "ce4bba81-d332-426c-8e59-846d9c15d492",
    "status": "READY",
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/recordings?room_id=d4dfe280-01e7-42f0-ba57-a2f3e449e775&session_id=ce4bba81-d332-426c-8e59-846d9c15d492&status=READY&limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "data": [
        {
            "id": "0370df71-427f-3df4-8eb7-0bfb7cbefefa",
            "name": "In sunt iure.",
            "status": "AWAITING_START",
            "room_id": "8f540ef3-7605-3e76-9a78-30da879991b0",
            "external_room_id": "EXTID311374288",
            "friendly_url": "2n7eE63bBo-U_WlKZWqlT43rmjefy_KL",
            "privacy": "public",
            "participant_id": "b531f166-739d-4805-8097-9a77d9d18f30",
            "participant_name": "columbus.veum",
            "participant_external_id": "EXTID48",
            "created_at": "2024-09-19T18:50:28Z",
            "updated_at": "2024-09-19T18:50:28Z"
        },
        {
            "id": "604c301c-33d1-37b1-9f9f-d2cbe28e4bcc",
            "name": "Praesentium nobis.",
            "status": "AWAITING_START",
            "room_id": "ac093645-2396-30e5-afe0-5dfd5d3de903",
            "external_room_id": "EXTID134269459",
            "friendly_url": "i9gYiyp1v79selI_dtLyV_Ei2ojouOBu",
            "privacy": "public",
            "participant_id": "15b898df-e144-4d4d-a394-f717dbb6dc73",
            "participant_name": "madilyn.roob",
            "participant_external_id": "EXTID74",
            "created_at": "2024-09-19T18:50:28Z",
            "updated_at": "2024-09-19T18:50:28Z"
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/recordings

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

room_id   string  optional  

The UUID of the room. Example: d4dfe280-01e7-42f0-ba57-a2f3e449e775

session_id   string  optional  

The UUID of the session. Example: ce4bba81-d332-426c-8e59-846d9c15d492

status   string  optional  

Status of the recording (IN_PROGRESS, PENDING_CONVERSION, READY). Example: READY

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the recording after which records will be returned.

Get archived team recordings.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/recordings/archived';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'room_id' => 'd4dfe280-01e7-42f0-ba57-a2f3e449e775',
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/recordings/archived"
);

const params = {
    "room_id": "d4dfe280-01e7-42f0-ba57-a2f3e449e775",
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/recordings/archived?room_id=d4dfe280-01e7-42f0-ba57-a2f3e449e775&limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "data": [
        {
            "id": "a139cf70-d575-326a-8fe9-6e7e82a73892",
            "name": "At autem veniam.",
            "status": "AWAITING_START",
            "room_id": "9363b471-2d3c-3448-8aa6-7e8f916872d7",
            "external_room_id": "EXTID916867932",
            "friendly_url": "937WubqT-tDj1CLW2hnz_TAPG4mCKEqi",
            "privacy": "public",
            "participant_id": "e801c546-5b44-4ee2-88c5-432a65d82b4b",
            "participant_name": "gaston82",
            "participant_external_id": "EXTID46",
            "created_at": "2024-09-19T18:50:28Z",
            "updated_at": "2024-09-19T18:50:28Z"
        },
        {
            "id": "22974d45-782a-30fa-aa5c-b531a637a082",
            "name": "Minus vero quia.",
            "status": "AWAITING_START",
            "room_id": "48ed191a-1ed1-36ea-b362-38bde6658408",
            "external_room_id": "EXTID578032313",
            "friendly_url": "OKwv6A3Yruse2R6Cblv9ktigCh_3tKzq",
            "privacy": "public",
            "participant_id": "874cfd99-b41a-4382-a6f1-dc8b5c5a68ed",
            "participant_name": "ykemmer",
            "participant_external_id": "EXTID8",
            "created_at": "2024-09-19T18:50:29Z",
            "updated_at": "2024-09-19T18:50:29Z"
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/recordings/archived

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

room_id   string  optional  

The UUID of the room. Example: d4dfe280-01e7-42f0-ba57-a2f3e449e775

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the recording after which records will be returned.

Get the specified recording.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "2e9049ba-4e1d-3c14-9570-fea652ce7bf8",
    "name": "Commodi praesentium.",
    "duration": 0,
    "status": "AWAITING_START",
    "room_id": "94e7cce8-723d-3dbb-89c1-b2ad915e3b61",
    "external_room_id": "EXTID2095793175",
    "friendly_url": "dSUJ0xJtKPT_wNFvq-Z1JcStwmfQfwck",
    "room_is_deleted": false,
    "privacy": "public",
    "session_id": null,
    "participant_id": "9489bbba-6cc8-4974-9e56-ceadd694694d",
    "participant_name": "shaniya.crooks",
    "participant_external_id": "EXTID29",
    "created_at": "2024-09-19T18:50:29Z",
    "updated_at": "2024-09-19T18:50:29Z"
}
 

Request      

GET api/v1/recordings/{recording}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

recording   string   

The UUID of the recording. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Download the specified recording.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/download';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'valid_for_minutes' => '60',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/download"
);

const params = {
    "valid_for_minutes": "60",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/download?valid_for_minutes=60" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "link": "https://storage.server.net/8c59a25f-7ffa-43cb-a5b8-5814b3923906.mp4?h=rtiHKNPuXilF6NOWpiXbCw&expires=1668238783",
    "valid_until": "2022-11-12T07:39:43Z"
}
 

Request      

GET api/v1/recordings/{recording}/download

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

recording   string   

The UUID of the recording. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Query Parameters

valid_for_minutes   integer  optional  

Link expiration time in minutes. Example: 60

Archive recording.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/archive';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/archive"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
curl --request POST \
    "https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/archive" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{}
 

Request      

POST api/v1/recordings/{recording}/archive

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

recording   string   

The UUID of the recording. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Unarchive recording.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/unarchive';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/unarchive"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
curl --request POST \
    "https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/unarchive" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{}
 

Request      

POST api/v1/recordings/{recording}/unarchive

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

recording   string   

The UUID of the recording. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Delete recording.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/recordings/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/recordings/{recording}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

recording   string   

The UUID of the recording. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Start recording.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/recordings/start';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/recordings/start"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
curl --request POST \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/recordings/start" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

POST api/v1/rooms/{room}/recordings/start

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Stop recording.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/recordings/stop';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/recordings/stop"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
curl --request POST \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/recordings/stop" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

POST api/v1/rooms/{room}/recordings/stop

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Webhooks

Get webhooks for the team.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/webhooks';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/webhooks"
);

const params = {
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/webhooks?limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "data": [
        {
            "id": "438c4ceb-b373-4f6c-b616-c26c621da3d4",
            "endpoint": "http://www.johnston.com/expedita-et-ullam-consectetur-animi",
            "authorization_header": "af112e382f5b3d72e6881568d53cb6af",
            "name": "My webhook 7",
            "created_at": "2024-09-19T18:50:30Z",
            "updated_at": "2024-09-19T18:50:30Z"
        },
        {
            "id": "ae8f869c-a177-4801-b8a5-72db251ed56d",
            "endpoint": "http://www.hermann.biz/",
            "authorization_header": "32a2b2ab1b70b9ca8592637bc31d2526",
            "name": "My webhook 8",
            "created_at": "2024-09-19T18:50:30Z",
            "updated_at": "2024-09-19T18:50:30Z"
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/webhooks

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the webhook after which records will be returned.

Get the specified webhook.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/webhooks/a853d608-e6cf-48eb-a3c9-7d089bbc09b0';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/webhooks/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/webhooks/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "9809c5fa-b58a-4f1a-99ea-35dff6555fac",
    "endpoint": "http://www.schumm.biz/vel-aspernatur-ut-quis.html",
    "authorization_header": "23142bbeffad8831b9f06bb2583c040d",
    "name": "My webhook 6",
    "events": [
        "participant_sed"
    ],
    "created_at": "2024-09-19T18:50:30Z",
    "updated_at": "2024-09-19T18:50:30Z"
}
 

Request      

GET api/v1/webhooks/{webhook}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

webhook   string   

The UUID of the webhook. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Create a new webhook.

requires authentication

This endpoint allows you to create a new webhook

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/webhooks';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'endpoint' => 'https://example.com/webhook-for-join',
            'name' => 'Join Webhook',
            'authorization_header' => '2BULvsea4JtiGRiSDSJSI%3DEUifiRBkKG5E2XzMDjRfl76ZC9Ub0wnz4XsNiRVBChTYbJcE3F',
            'events' => [
                'participant_joined',
                'participant_left',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/webhooks"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "endpoint": "https:\/\/example.com\/webhook-for-join",
    "name": "Join Webhook",
    "authorization_header": "2BULvsea4JtiGRiSDSJSI%3DEUifiRBkKG5E2XzMDjRfl76ZC9Ub0wnz4XsNiRVBChTYbJcE3F",
    "events": [
        "participant_joined",
        "participant_left"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request POST \
    "https://api.digitalsamba.com/api/v1/webhooks" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"endpoint\": \"https:\\/\\/example.com\\/webhook-for-join\",
    \"name\": \"Join Webhook\",
    \"authorization_header\": \"2BULvsea4JtiGRiSDSJSI%3DEUifiRBkKG5E2XzMDjRfl76ZC9Ub0wnz4XsNiRVBChTYbJcE3F\",
    \"events\": [
        \"participant_joined\",
        \"participant_left\"
    ]
}"

Example response (200):


{
    "id": "94ab7c34-9b0d-4798-8fbe-113f73bcfcb7",
    "endpoint": "https://www.von.org/consequatur-dolores-rerum-quas-facilis",
    "authorization_header": "4a5d63b16968370b818a43f8ed6f88c1",
    "name": "My webhook 3",
    "events": [
        "participant_ab"
    ],
    "created_at": "2024-09-19T18:50:30Z",
    "updated_at": "2024-09-19T18:50:30Z"
}
 

Request      

POST api/v1/webhooks

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

endpoint   string   

Must be a valid URL. Must be at least 3 characters. Must not be greater than 100 characters. Example: https://example.com/webhook-for-join

name   string  optional  

Must be at least 3 characters. Must not be greater than 100 characters. Example: Join Webhook

authorization_header   string  optional  

A bearer token that will be sent as β€œAuthorization” header. Example: 2BULvsea4JtiGRiSDSJSI%3DEUifiRBkKG5E2XzMDjRfl76ZC9Ub0wnz4XsNiRVBChTYbJcE3F

events   string[]   

Event names for which the webhook will be triggered.

Update the specified webhook.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/webhooks/a853d608-e6cf-48eb-a3c9-7d089bbc09b0';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'endpoint' => 'https://example.com/webhook-for-join',
            'name' => 'Join Webhook',
            'authorization_header' => '2BULvsea4JtiGRiSDSJSI%3DEUifiRBkKG5E2XzMDjRfl76ZC9Ub0wnz4XsNiRVBChTYbJcE3F',
            'events' => [
                'participant_joined',
                'participant_left',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/webhooks/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "endpoint": "https:\/\/example.com\/webhook-for-join",
    "name": "Join Webhook",
    "authorization_header": "2BULvsea4JtiGRiSDSJSI%3DEUifiRBkKG5E2XzMDjRfl76ZC9Ub0wnz4XsNiRVBChTYbJcE3F",
    "events": [
        "participant_joined",
        "participant_left"
    ]
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request PATCH \
    "https://api.digitalsamba.com/api/v1/webhooks/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"endpoint\": \"https:\\/\\/example.com\\/webhook-for-join\",
    \"name\": \"Join Webhook\",
    \"authorization_header\": \"2BULvsea4JtiGRiSDSJSI%3DEUifiRBkKG5E2XzMDjRfl76ZC9Ub0wnz4XsNiRVBChTYbJcE3F\",
    \"events\": [
        \"participant_joined\",
        \"participant_left\"
    ]
}"

Example response (200):


{
    "id": "c31164ee-7168-4c5d-983d-48040d73d9ec",
    "endpoint": "http://www.weimann.com/ea-minima-autem-a-in-doloremque",
    "authorization_header": "d4b596f129940e200584a46ac13f91ed",
    "name": "My webhook 1",
    "events": [
        "participant_omnis"
    ],
    "created_at": "2024-09-19T18:50:30Z",
    "updated_at": "2024-09-19T18:50:30Z"
}
 

Request      

PATCH api/v1/webhooks/{webhook}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

webhook   string   

The UUID of the webhook. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Body Parameters

endpoint   string  optional  

Must be a valid URL. Must be at least 3 characters. Must not be greater than 100 characters. Example: https://example.com/webhook-for-join

name   string  optional  

Must be at least 3 characters. Must not be greater than 100 characters. Example: Join Webhook

authorization_header   string  optional  

A bearer token that will be sent as β€œAuthorization” header. Example: 2BULvsea4JtiGRiSDSJSI%3DEUifiRBkKG5E2XzMDjRfl76ZC9Ub0wnz4XsNiRVBChTYbJcE3F

events   string[]  optional  

Event names for which the webhook will be triggered.

Delete the specified webhook.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/webhooks/a853d608-e6cf-48eb-a3c9-7d089bbc09b0';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/webhooks/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/webhooks/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/webhooks/{webhook}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

webhook   string   

The UUID of the webhook. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Events

Get available events used for triggering webhooks

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/events';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/events"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/events" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


[
    "participant_joined",
    "participant_left"
]
 

Request      

GET api/v1/events

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Roles

Get available roles for the team.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/roles';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/roles"
);

const params = {
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/roles?limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "total_count": 3,
    "data": [
        {
            "id": "8cae6c49-c40a-4965-a32b-6cf20de36755",
            "name": "attendee",
            "display_name": "Attendees",
            "description": "The Digital Samba Embedded Attendee preset is conceived as the role with the lowest rank. An Attendee preset may essentially see and hear the Speaker and Moderator presets' audio, video and screenshare streams.",
            "default": false,
            "created_at": "2023-01-31T12:45:51Z",
            "updated_at": "2023-03-27T13:46:22Z"
        },
        {
            "id": "76bb6199-2900-4b8d-b1bf-351dec4a8db4",
            "name": "moderator",
            "display_name": "Moderators",
            "description": "The Digital Samba Embedded Moderator preset is conceived to have all permissions, encompassing speaker’s rights to broadcast, screenshare and present, and also management rights such as granting or removing permissions, removing participants, starting / ending a session or recording it.",
            "default": true,
            "created_at": "2023-01-31T12:45:51Z",
            "updated_at": "2023-03-27T13:46:22Z"
        },
        {
            "id": "e5bad6b9-48bd-46a0-9482-af78a834c28c",
            "name": "speaker",
            "display_name": "Speakers",
            "description": "The Digital Samba Embedded Speaker preset is conceived to have all broadcast, screensharing and presentation permissions, but none of the Moderator’s management rights, such as as granting or removing permissions, removing participants, starting / ending a session or recording it.",
            "default": false,
            "created_at": "2023-01-31T12:45:51Z",
            "updated_at": "2023-03-27T13:46:22Z"
        }
    ]
}
 

Request      

GET api/v1/roles

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

Get the specified role.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "5ce6fda5-d42b-4110-8796-177e571a7407",
    "name": "moderator",
    "display_name": "Moderators",
    "description": "The Digital Samba Embedded Moderator preset is conceived to have all permissions, encompassing speaker’s rights to broadcast, screenshare and present, and also management rights such as granting or removing permissions, removing participants, starting / ending a session or recording it.",
    "default": true,
    "created_at": "2023-01-31T12:45:53Z",
    "updated_at": "2023-02-15T03:22:24Z",
    "permissions": {
        "answer_qa": true,
        "ask_remote_unmute": true,
        "broadcast": true,
        "start_session": false,
        "end_session": true,
        "see_participants_panel": true,
        "general_chat": true,
        "manage_broadcast": true,
        "manage_edit_whiteboard": true,
        "manage_breakout": true,
        "manage_roles": [
            "moderator",
            "speaker",
            "attendee"
        ],
        "manage_screenshare": false,
        "moderate_qa": true,
        "present_files": true,
        "private_chat": true,
        "raise_hand": false,
        "recording": false,
        "transcribe_session": true,
        "remote_muting": false,
        "invite_participant": true,
        "control_room_entry": true,
        "control_room_components": false,
        "remove_participant": false,
        "edit_whiteboard": true,
        "screenshare": false,
        "upvote_qa": false
    }
}
 

Request      

GET api/v1/roles/{role}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

role   string   

The UUID of the role or role name. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Create a new role.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/roles';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'participant',
            'display_name' => 'Basic Participant',
            'description' => 'Participant with basic permissions',
            'permissions' => [
                'ask_remote_unmute' => true,
                'broadcast' => true,
                'end_session' => true,
                'general_chat' => true,
                'manage_broadcast' => true,
                'manage_roles' => [
                    'moderator',
                    'speaker',
                    'attendee',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/roles"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "participant",
    "display_name": "Basic Participant",
    "description": "Participant with basic permissions",
    "permissions": {
        "ask_remote_unmute": true,
        "broadcast": true,
        "end_session": true,
        "general_chat": true,
        "manage_broadcast": true,
        "manage_roles": [
            "moderator",
            "speaker",
            "attendee"
        ]
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request POST \
    "https://api.digitalsamba.com/api/v1/roles" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"participant\",
    \"display_name\": \"Basic Participant\",
    \"description\": \"Participant with basic permissions\",
    \"permissions\": {
        \"ask_remote_unmute\": true,
        \"broadcast\": true,
        \"end_session\": true,
        \"general_chat\": true,
        \"manage_broadcast\": true,
        \"manage_roles\": [
            \"moderator\",
            \"speaker\",
            \"attendee\"
        ]
    }
}"

Example response (200):


{
    "id": "5ce6fda5-d42b-4110-8796-177e571a7407",
    "name": "moderator",
    "display_name": "Moderators",
    "description": "The Digital Samba Embedded Moderator preset is conceived to have all permissions, encompassing speaker’s rights to broadcast, screenshare and present, and also management rights such as granting or removing permissions, removing participants, starting / ending a session or recording it.",
    "default": true,
    "created_at": "2023-01-31T12:45:53Z",
    "updated_at": "2023-02-15T03:22:24Z",
    "permissions": {
        "answer_qa": true,
        "ask_remote_unmute": true,
        "broadcast": true,
        "start_session": false,
        "end_session": true,
        "see_participants_panel": true,
        "general_chat": true,
        "manage_broadcast": true,
        "manage_edit_whiteboard": true,
        "manage_breakout": true,
        "manage_roles": [
            "moderator",
            "speaker",
            "attendee"
        ],
        "manage_screenshare": false,
        "moderate_qa": true,
        "present_files": true,
        "private_chat": true,
        "raise_hand": false,
        "recording": false,
        "transcribe_session": true,
        "remote_muting": false,
        "invite_participant": true,
        "control_room_entry": true,
        "control_room_components": false,
        "remove_participant": false,
        "edit_whiteboard": true,
        "screenshare": false,
        "upvote_qa": false
    }
}
 

Request      

POST api/v1/roles

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Must contain only letters, numbers, dashes and underscores. Must not be greater than 30 characters. Must be unique. Example: participant

display_name   string   

Must be at least 3 characters. Must not be greater than 100 characters. Example: Basic Participant

description   string  optional  

Example: Participant with basic permissions

permissions   object   

Must be an array of permissions.

Update the specified role.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'participant',
            'display_name' => 'Basic Participant',
            'description' => 'Participant with basic permissions',
            'permissions' => [
                'ask_remote_unmute' => true,
                'broadcast' => true,
                'end_session' => true,
                'general_chat' => true,
                'manage_broadcast' => true,
                'manage_roles' => [
                    'moderator',
                    'speaker',
                    'attendee',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "participant",
    "display_name": "Basic Participant",
    "description": "Participant with basic permissions",
    "permissions": {
        "ask_remote_unmute": true,
        "broadcast": true,
        "end_session": true,
        "general_chat": true,
        "manage_broadcast": true,
        "manage_roles": [
            "moderator",
            "speaker",
            "attendee"
        ]
    }
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request PATCH \
    "https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"participant\",
    \"display_name\": \"Basic Participant\",
    \"description\": \"Participant with basic permissions\",
    \"permissions\": {
        \"ask_remote_unmute\": true,
        \"broadcast\": true,
        \"end_session\": true,
        \"general_chat\": true,
        \"manage_broadcast\": true,
        \"manage_roles\": [
            \"moderator\",
            \"speaker\",
            \"attendee\"
        ]
    }
}"

Example response (200):


{
    "id": "5ce6fda5-d42b-4110-8796-177e571a7407",
    "name": "moderator",
    "display_name": "Moderators",
    "description": "The Digital Samba Embedded Moderator preset is conceived to have all permissions, encompassing speaker’s rights to broadcast, screenshare and present, and also management rights such as granting or removing permissions, removing participants, starting / ending a session or recording it.",
    "default": true,
    "created_at": "2023-01-31T12:45:53Z",
    "updated_at": "2023-02-15T03:22:24Z",
    "permissions": {
        "answer_qa": true,
        "ask_remote_unmute": true,
        "broadcast": true,
        "start_session": false,
        "end_session": true,
        "see_participants_panel": true,
        "general_chat": true,
        "manage_broadcast": true,
        "manage_edit_whiteboard": true,
        "manage_breakout": true,
        "manage_roles": [
            "moderator",
            "speaker",
            "attendee"
        ],
        "manage_screenshare": false,
        "moderate_qa": true,
        "present_files": true,
        "private_chat": true,
        "raise_hand": false,
        "recording": false,
        "transcribe_session": true,
        "remote_muting": false,
        "invite_participant": true,
        "control_room_entry": true,
        "control_room_components": false,
        "remove_participant": false,
        "edit_whiteboard": true,
        "screenshare": false,
        "upvote_qa": false
    }
}
 

Request      

PATCH api/v1/roles/{role}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

role   string   

The UUID of the role or role name. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Body Parameters

name   string  optional  

Must contain only letters, numbers, dashes and underscores. Must not be greater than 30 characters. Must be unique. Example: participant

display_name   string  optional  

Must be at least 3 characters. Must not be greater than 100 characters. Example: Basic Participant

description   string  optional  

Example: Participant with basic permissions

permissions   object   

Must be an array of permissions.

Delete the specified role.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/roles/{role}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

role   string   

The UUID of the role or role name. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Permissions

Get available permissions for roles

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/permissions';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/permissions"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/permissions" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


[
    "answer_qa",
    "ask_remote_unmute",
    "broadcast",
    "start_session",
    "end_session",
    "see_participants_panel",
    "general_chat",
    "manage_broadcast",
    "manage_edit_whiteboard",
    "manage_roles",
    "manage_screenshare",
    "manage_breakout",
    "moderate_qa",
    "present_files",
    "private_chat",
    "raise_hand",
    "recording",
    "transcribe_session",
    "remote_muting",
    "invite_participant",
    "remove_participant",
    "control_room_entry",
    "control_room_components",
    "edit_whiteboard",
    "screenshare",
    "upvote_qa"
]
 

Request      

GET api/v1/permissions

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Participants

Get all participants.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/participants';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/participants"
);

const params = {
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/participants?limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "data": [
        {
            "id": "17c75935-387e-499e-ab6f-8025e9bc0691",
            "external_id": "EXTID1625629384",
            "session_id": "9c725f12-705c-40e5-be1f-10dea6fa0a1f",
            "room_id": "1a3c3ace-e3ec-3363-b3cd-308c02381268",
            "room_external_id": "EXTID1375085920",
            "room_is_deleted": false,
            "name": "Ms. Cara Ferry Jr.",
            "role": "moderator",
            "friendly_url": "iagVi1oidf0k9hQhHypYLefFqpbHulUN",
            "join_time": "2024-03-03 08:01:01",
            "leave_time": "2024-03-03 09:01:01",
            "live": false
        },
        {
            "id": "9c725f12-705c-40e5-be1f-10dea6fa0a1f",
            "external_id": "EXTID1625629384",
            "session_id": "9c725f12-705c-40e5-be1f-10dea6fa0a1f",
            "room_id": "1a3c3ace-e3ec-3363-b3cd-308c02381268",
            "room_external_id": "EXTID1375085920",
            "room_is_deleted": false,
            "name": "Madisyn Howe",
            "role": "moderator",
            "friendly_url": "iagVi1oidf0k9hQhHypYLefFqpbHulUN",
            "join_time": "2024-03-03 08:01:01",
            "leave_time": "2024-03-03 09:01:01",
            "live": false
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/participants

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

date_start   string  optional  

Period start date. Must be a valid date in the format Y-m-d. .

date_end   string  optional  

Period end date. Must be a valid date in the format Y-m-d.

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the room or room friendly URL after which records will be returned.

live   boolean  optional  

Flag to filter live or archive sessions.

room_id   string  optional  

The UUID of the room to filter session by specific room.

session_id   string  optional  

The UUID of the session to filter participants by specific session.

Get participant statistics.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/participants/{participant}';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/participants/{participant}"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/participants/{participant}" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "room_id": "9af9933c-5b43-3279-a7bb-7e7809210e9e",
    "room_external_id": "308bf674-8610-35cb-a378-e2c54f2fc976",
    "room_friendly_url": "UoZhS97JdgTqxj4qVgPWyD_F8eBdW5Si",
    "room_privacy": "public",
    "room_is_deleted": false,
    "session_id": "fc355508-8064-4367-96c2-21ef571beee5",
    "live": false,
    "participant_name": "Madisyn Howe",
    "role": "moderator",
    "join_time": "2024-03-31T15:27:43Z",
    "leave_time": "2024-03-31T15:36:43Z",
    "device": "desktop",
    "system": "Mac OS X 10",
    "browser": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_3 rv:6.0) Gecko/20190126 Firefox/35.0",
    "e2ee": false,
    "participation_minutes": 9,
    "public_chat_posts": 2,
    "questions": 3,
    "answers": 2
}
 

Request      

GET api/v1/participants/{participant}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Get all room participants.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/{room}/participants';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/{room}/participants"
);

const params = {
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/{room}/participants?limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "data": [
        {
            "id": "17c75935-387e-499e-ab6f-8025e9bc0691",
            "external_id": "EXTID1625629384",
            "session_id": "9c725f12-705c-40e5-be1f-10dea6fa0a1f",
            "room_id": "1a3c3ace-e3ec-3363-b3cd-308c02381268",
            "room_external_id": "EXTID1375085920",
            "room_is_deleted": false,
            "name": "Ms. Cara Ferry Jr.",
            "role": "moderator",
            "friendly_url": "iagVi1oidf0k9hQhHypYLefFqpbHulUN",
            "join_time": "2024-03-03 08:01:01",
            "leave_time": "2024-03-03 09:01:01",
            "live": false
        },
        {
            "id": "9c725f12-705c-40e5-be1f-10dea6fa0a1f",
            "external_id": "EXTID1625629384",
            "session_id": "9c725f12-705c-40e5-be1f-10dea6fa0a1f",
            "room_id": "1a3c3ace-e3ec-3363-b3cd-308c02381268",
            "room_external_id": "EXTID1375085920",
            "room_is_deleted": false,
            "name": "Madisyn Howe",
            "role": "moderator",
            "friendly_url": "iagVi1oidf0k9hQhHypYLefFqpbHulUN",
            "join_time": "2024-03-03 08:01:01",
            "leave_time": "2024-03-03 09:01:01",
            "live": false
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/rooms/{room}/participants

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

date_start   string  optional  

Period start date. Must be a valid date in the format Y-m-d. .

date_end   string  optional  

Period end date. Must be a valid date in the format Y-m-d.

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the room or room friendly URL after which records will be returned.

live   boolean  optional  

Flag to filter live or archive sessions.

session_id   string  optional  

The UUID of the session to filter participants by specific session.

Get all session participants.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/{session}/participants';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
        'json' => [
            'date_start' => '2024-09-19',
            'date_end' => '2024-09-19',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/{session}/participants"
);

const params = {
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "date_start": "2024-09-19",
    "date_end": "2024-09-19"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/sessions/{session}/participants?limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date_start\": \"2024-09-19\",
    \"date_end\": \"2024-09-19\"
}"

Example response (200):


{
    "data": [
        {
            "id": "17c75935-387e-499e-ab6f-8025e9bc0691",
            "external_id": "EXTID1625629384",
            "session_id": "9c725f12-705c-40e5-be1f-10dea6fa0a1f",
            "room_id": "1a3c3ace-e3ec-3363-b3cd-308c02381268",
            "room_external_id": "EXTID1375085920",
            "room_is_deleted": false,
            "name": "Ms. Cara Ferry Jr.",
            "role": "moderator",
            "friendly_url": "iagVi1oidf0k9hQhHypYLefFqpbHulUN",
            "join_time": "2024-03-03 08:01:01",
            "leave_time": "2024-03-03 09:01:01",
            "live": false
        },
        {
            "id": "9c725f12-705c-40e5-be1f-10dea6fa0a1f",
            "external_id": "EXTID1625629384",
            "session_id": "9c725f12-705c-40e5-be1f-10dea6fa0a1f",
            "room_id": "1a3c3ace-e3ec-3363-b3cd-308c02381268",
            "room_external_id": "EXTID1375085920",
            "room_is_deleted": false,
            "name": "Madisyn Howe",
            "role": "moderator",
            "friendly_url": "iagVi1oidf0k9hQhHypYLefFqpbHulUN",
            "join_time": "2024-03-03 08:01:01",
            "leave_time": "2024-03-03 09:01:01",
            "live": false
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/sessions/{session}/participants

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

date_start   string  optional  

Period start date. Must be a valid date in the format Y-m-d. .

date_end   string  optional  

Period end date. Must be a valid date in the format Y-m-d.

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the room or room friendly URL after which records will be returned.

live   boolean  optional  

Flag to filter live or archive sessions.

Body Parameters

date_start   string  optional  

Must be a valid date in the format Y-m-d. Example: 2024-09-19

date_end   string  optional  

Must be a valid date in the format Y-m-d. Example: 2024-09-19

Polls

Get available polls for the room.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls"
);

const params = {
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls?limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


[
    {
        "id": "cbe49091-3b4d-4c1b-9ea6-bdf6594e799d",
        "question": "When will I go on holiday?",
        "status": "started",
        "multiple": false,
        "anonymous": false,
        "created_at": "2022-07-28T20:36:04Z"
    }
]
 

Request      

GET api/v1/rooms/{room}/polls

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Query Parameters

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the poll after which records will be returned.

Export polls.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/export';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'session_id' => '16719c1b-cc82-4dfe-9f6f-40d9093fa695',
            'format' => 'txt',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/export"
);

const params = {
    "session_id": "16719c1b-cc82-4dfe-9f6f-40d9093fa695",
    "format": "txt",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/export?session_id=16719c1b-cc82-4dfe-9f6f-40d9093fa695&format=txt" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


Text file - Polls
 

Request      

GET api/v1/rooms/{room}/polls/export

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Query Parameters

session_id   string  optional  

UUID of the Session. Example: 16719c1b-cc82-4dfe-9f6f-40d9093fa695

format   string  optional  

Export format (txt or json). Example: txt

Get the specified poll.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/16719c1b-cc82-4dfe-9f6f-40d9093fa695';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/16719c1b-cc82-4dfe-9f6f-40d9093fa695"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/16719c1b-cc82-4dfe-9f6f-40d9093fa695" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "cbe49091-3b4d-4c1b-9ea6-bdf6594e799d",
    "question": "When will I go on holiday?",
    "status": "started",
    "multiple": false,
    "anonymous": false,
    "options": [
        {
            "id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "text": "Next week"
        },
        {
            "id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "text": "Next month"
        },
        {
            "id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "text": "Next year"
        }
    ],
    "created_at": "2022-07-28T20:36:04Z"
}
 

Request      

GET api/v1/rooms/{room}/polls/{poll}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

poll   string   

The UUID of the poll. Example: 16719c1b-cc82-4dfe-9f6f-40d9093fa695

Poll results.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/results';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'session_id' => '5ce6fda5-d42b-4110-8796-177e571a7407',
            'format' => 'txt',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/results"
);

const params = {
    "session_id": "5ce6fda5-d42b-4110-8796-177e571a7407",
    "format": "txt",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/results?session_id=5ce6fda5-d42b-4110-8796-177e571a7407&format=txt" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


[
    {
        "id": "bd58f41d-924b-48ef-b025-719117c0488c",
        "session_id": "bc838074-a723-436f-964c-6e7b4327fcdc",
        "question": "When will I go on holiday?",
        "status": "eded",
        "started": "1989-11-16T10:33:33Z",
        "ended": "2020-04-13T03:15:31Z",
        "votes": 3,
        "options": [
            {
                "id": "208f8c8f-06db-4f0a-9765-b10be47cad5c",
                "text": "Next week",
                "voted": 2,
                "voters": [
                    {
                        "id": "c80f5fb8-d25c-4a3d-895e-4b3778d25a4c",
                        "name": "korbin.connelly"
                    },
                    {
                        "id": "bf226af6-0c3c-439b-bb2f-bbbd72b02286",
                        "name": "gutmann.claire"
                    }
                ]
            },
            {
                "id": "f20823cf-bc32-48aa-b728-96e5aeb5f328",
                "text": "Next month",
                "voted": 1,
                "voters": [
                    {
                        "id": "cada0614-ba03-4264-9078-df7f9689bb2c",
                        "name": "veda.graham"
                    }
                ]
            },
            {
                "id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
                "text": "Next year",
                "voted": 0
            }
        ]
    }
]
 

Request      

GET api/v1/rooms/{room}/polls/{poll}/results

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

poll   string   

The UUID of the poll. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Query Parameters

session_id   string  optional  

UUID of the Session. Example: 5ce6fda5-d42b-4110-8796-177e571a7407

format   string  optional  

Export format (txt or json). Example: txt

Create a new poll.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'question' => 'When will I go on holiday?',
            'multiple' => false,
            'anonymous' => false,
            'options' => [
                [
                    'text' => 'Next week',
                ],
                [
                    'text' => 'Next month',
                ],
                [
                    'text' => 'Next year',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "question": "When will I go on holiday?",
    "multiple": false,
    "anonymous": false,
    "options": [
        {
            "text": "Next week"
        },
        {
            "text": "Next month"
        },
        {
            "text": "Next year"
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request POST \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"question\": \"When will I go on holiday?\",
    \"multiple\": false,
    \"anonymous\": false,
    \"options\": [
        {
            \"text\": \"Next week\"
        },
        {
            \"text\": \"Next month\"
        },
        {
            \"text\": \"Next year\"
        }
    ]
}"

Example response (200):


{
    "id": "cbe49091-3b4d-4c1b-9ea6-bdf6594e799d",
    "question": "When will I go on holiday?",
    "status": "started",
    "multiple": false,
    "anonymous": false,
    "options": [
        {
            "id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "text": "Next week"
        },
        {
            "id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "text": "Next month"
        },
        {
            "id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "text": "Next year"
        }
    ],
    "created_at": "2022-07-28T20:36:04Z"
}
 

Request      

POST api/v1/rooms/{room}/polls

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Body Parameters

question   string  optional  

Must be at least 5 characters. Example: When will I go on holiday?

multiple   boolean  optional  

Example: false

anonymous   boolean  optional  

Example: false

options   object   

Must be an array of poll options.

text   string   

Must be at least 1 character. Must not be greater than 128 characters. Example: unzbnuigqyvmhnrtez

Update the specified poll.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/16719c1b-cc82-4dfe-9f6f-40d9093fa695';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'question' => 'When will I go on holiday?',
            'multiple' => true,
            'anonymous' => false,
            'options' => [
                [
                    'id' => '16719c1b-cc82-4dfe-9f6f-40d9093fa695',
                    'text' => 'Next week',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/16719c1b-cc82-4dfe-9f6f-40d9093fa695"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "question": "When will I go on holiday?",
    "multiple": true,
    "anonymous": false,
    "options": [
        {
            "id": "16719c1b-cc82-4dfe-9f6f-40d9093fa695",
            "text": "Next week"
        }
    ]
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request PATCH \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls/16719c1b-cc82-4dfe-9f6f-40d9093fa695" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"question\": \"When will I go on holiday?\",
    \"multiple\": true,
    \"anonymous\": false,
    \"options\": [
        {
            \"id\": \"16719c1b-cc82-4dfe-9f6f-40d9093fa695\",
            \"text\": \"Next week\"
        }
    ]
}"

Example response (200):


{
    "id": "cbe49091-3b4d-4c1b-9ea6-bdf6594e799d",
    "question": "When will I go on holiday?",
    "status": "started",
    "multiple": false,
    "anonymous": false,
    "options": [
        {
            "id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "text": "Next week"
        },
        {
            "id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "text": "Next month"
        },
        {
            "id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "text": "Next year"
        }
    ],
    "created_at": "2022-07-28T20:36:04Z"
}
 

Request      

PATCH api/v1/rooms/{room}/polls/{poll}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

poll   string   

The UUID of the poll. Example: 16719c1b-cc82-4dfe-9f6f-40d9093fa695

Body Parameters

question   string  optional  

Must be at least 5 characters. Example: When will I go on holiday?

multiple   boolean  optional  

Example: true

anonymous   boolean  optional  

Example: false

options   object   

Must be an array of poll options.

text   string   

Must be at least 1 character. Must not be greater than 128 characters. Example: bkgtrtcckoxroxjyhjdl

id   string  optional  

Must be a valid UUID. Example: 256a42d4-5631-38d0-b9e2-d38b5919cb96

Sessions

Delete chats by session.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/chat';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/chat"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/chat" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/sessions/{session}/chat

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

session   string   

The UUID of the session. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Delete Q&A by session.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/questions';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/questions"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/questions" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/sessions/{session}/questions

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

session   string   

The UUID of the session. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Delete summaries by session.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/summaries';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/summaries"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/summaries" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/sessions/{session}/summaries

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

session   string   

The UUID of the session. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Delete transcripts by session.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/sessions/{session}/transcripts

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

session   string   

The UUID of the session. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Delete polls by session.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/polls" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/sessions/{session}/polls

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

session   string   

The UUID of the session. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Delete recordings by session.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/recordings';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/recordings"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/recordings" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/sessions/{session}/recordings

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

session   string   

The UUID of the session. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Hard delete all of stored resource data for specific session.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/resources';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/resources"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
curl --request DELETE \
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/resources" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/sessions/{session}/resources

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

session   string   

The UUID of the session. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Get all room sessions.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/{room}/sessions';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/{room}/sessions"
);

const params = {
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/{room}/sessions?limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "data": [
        {
            "id": "643be420-4dcc-453c-92d4-432164a4bc52",
            "start_time": "2024-03-21T05:09:31.000000Z",
            "end_time": "2024-03-21T05:29:31.000000Z",
            "room_id": "5b9ca00e-656e-43cc-ba2c-7dcaae63daa9",
            "room_external_id": "EXT-ID-123",
            "description": "My room description",
            "friendly_url": "myRoom",
            "room_is_deleted": false,
            "participants_live": 3,
            "participants_total": 8,
            "participants_max": 5,
            "live": true
        },
        {
            "id": "cbe49091-3b4d-4c1b-9ea6-bdf6594e799d",
            "start_time": "2024-03-21T05:19:31.000000Z",
            "end_time": "2024-03-21T05:29:31.000000Z",
            "room_id": "5b9ca00e-656e-43cc-ba2c-7dcaae63daa9",
            "room_external_id": "EXT-ID-123",
            "description": "My room description",
            "friendly_url": "myRoom",
            "room_is_deleted": false,
            "participants_total": 10,
            "participants_max": 5,
            "live": false
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/rooms/{room}/sessions

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

date_start   string  optional  

Period start date. Must be a valid date in the format Y-m-d. .

date_end   string  optional  

Period end date. Must be a valid date in the format Y-m-d.

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the room or room friendly URL after which records will be returned.

live   boolean  optional  

Flag to filter live or archive sessions.

Get all sessions.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions"
);

const params = {
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/sessions?limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "data": [
        {
            "id": "643be420-4dcc-453c-92d4-432164a4bc52",
            "start_time": "2024-03-21T05:09:31.000000Z",
            "end_time": "2024-03-21T05:29:31.000000Z",
            "room_id": "5b9ca00e-656e-43cc-ba2c-7dcaae63daa9",
            "room_external_id": "EXT-ID-123",
            "description": "My room description",
            "friendly_url": "myRoom",
            "room_is_deleted": false,
            "participants_live": 3,
            "participants_total": 8,
            "participants_max": 5,
            "live": true
        },
        {
            "id": "cbe49091-3b4d-4c1b-9ea6-bdf6594e799d",
            "start_time": "2024-03-21T05:19:31.000000Z",
            "end_time": "2024-03-21T05:29:31.000000Z",
            "room_id": "5b9ca00e-656e-43cc-ba2c-7dcaae63daa9",
            "room_external_id": "EXT-ID-123",
            "description": "My room description",
            "friendly_url": "myRoom",
            "room_is_deleted": false,
            "participants_total": 10,
            "participants_max": 5,
            "live": false
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/sessions

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

date_start   string  optional  

Period start date. Must be a valid date in the format Y-m-d. .

date_end   string  optional  

Period end date. Must be a valid date in the format Y-m-d.

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

after   string  optional  

The UUID of the room or room friendly URL after which records will be returned.

live   boolean  optional  

Flag to filter live or archive sessions.

room_id   string  optional  

The UUID of the room to filter session by specific room.

Get session statistics.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/{session}';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/{session}"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/sessions/{session}" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "room_id": "13a5aa53-f4da-470b-bfd0-63dd9e5dd81d",
    "room_external_id": "EXTID123",
    "room_description": "Some public room",
    "room_friendly_url": "MyPublicRoom",
    "room_privacy": "public",
    "room_source": "api",
    "room_max_participants": 100,
    "room_is_deleted": false,
    "session_id": "0c843bf8-d245-450c-94fb-31e8a861bfaf",
    "session_duration": 60,
    "session_live": false,
    "session_start_time": "2022-05-09T15:25:21Z",
    "session_end_time": "2022-05-09T15:57:25Z",
    "participation_minutes": 67,
    "desktop_participation_minutes": 50,
    "mobile_participation_minutes": 10,
    "tablet_participation_minutes": 7,
    "smarttv_participation_minutes": 0,
    "broadcasted_minutes": 15,
    "subscribed_minutes": 0,
    "screen_broadcasted_minutes": 0,
    "screen_subscribed_minutes": 0,
    "live_participants": 0,
    "active_participants": 4,
    "desktop_participants": 2,
    "mobile_participants": 1,
    "tablet_participants": 1,
    "smarttv_participants": 0,
    "max_concurrent_participants": 3,
    "transcription_minutes": 20,
    "e2ee_minutes": 0,
    "recorded_minutes": 90,
    "stored_recorded_minutes": 60,
    "whiteboard_minutes": 0,
    "captions_minutes": 10,
    "breakout_minutes": 0,
    "presentation_minutes": 0,
    "active_roles": 2,
    "public_chat_posts": 52,
    "questions": 2,
    "answers": 3,
    "polls": 1
}
 

Request      

GET api/v1/sessions/{session}

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

metrics   string  optional  

Metrics in the result dataset, set field names under comma (Ex: participation_minutes,broadcasted_minutes,subscribed_minutes).

Get session summary.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/summary';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/summary"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/summary" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200, When summary is in progress):


{
    "job_id": "ebdc6214-33c7-46df-a38d-a77f0a19c4ce",
    "status": "IN_PROGRESS",
    "summary": ""
}
 

Example response (200, When summary is ready):


{
    "job_id": "ebdc6214-33c7-46df-a38d-a77f0a19c4ce",
    "status": "READY",
    "summary": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
}
 

Request      

GET api/v1/sessions/{session}/summary

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

session   string   

The UUID of the session. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Get session transcripts.

requires authentication

Closed Captioning.

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            'offset' => '0',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts"
);

const params = {
    "limit": "20",
    "offset": "0",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts?limit=20&offset=0&order=asc" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "total_count": 3,
    "data": [
        {
            "participant_id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "participant_name": "John Smith",
            "transcript": "Morning. How are you?",
            "start_time": "2024-04-10T12:18:27Z",
            "end_time": "2024-04-10T12:33:27Z"
        },
        {
            "participant_id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "participant_name": "Jane Doe",
            "transcript": "I am fine, thanks! What about you?",
            "start_time": "2024-04-10T12:10:27Z",
            "end_time": "2024-04-10T12:31:27Z"
        },
        {
            "participant_id": "f06e6600-9424-4dc0-8e7d-a968df2c983d",
            "participant_name": "John Doe",
            "transcript": "Hi all!",
            "start_time": "2024-04-10T12:06:27Z",
            "end_time": "2024-04-10T12:33:27Z"
        }
    ]
}
 

Request      

GET api/v1/sessions/{session}/transcripts

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

session   string   

The UUID of the session. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Query Parameters

limit   integer  optional  

Limit the number of returned records. Used for pagination. Maximum and default is 100 Example: 20

offset   integer  optional  

The offset of the first item returned in the records collection. Used for pagination. Example: 0

order   string  optional  

Order of returned records. Default is desc. Example: asc

Export session transcripts.

requires authentication

Closed Captioning.

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts/export';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'format' => 'txt',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts/export"
);

const params = {
    "format": "txt",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/sessions/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcripts/export?format=txt" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


Text file - Transcripts
 

Request      

GET api/v1/sessions/{session}/transcripts/export

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

session   string   

The UUID of the session. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Query Parameters

format   string  optional  

Export format (txt or json). Example: txt

End the specified live session.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/d30e392f-7fa4-4476-a80b-9bf83fd4c012/end';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/d30e392f-7fa4-4476-a80b-9bf83fd4c012/end"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
curl --request POST \
    "https://api.digitalsamba.com/api/v1/sessions/d30e392f-7fa4-4476-a80b-9bf83fd4c012/end" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Request      

POST api/v1/sessions/{session}/end

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

session   string   

The UUID of the session. Example: d30e392f-7fa4-4476-a80b-9bf83fd4c012

Statistics

Get team global statistics by period.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/statistics';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/statistics"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/statistics" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "participation_minutes": 3500,
    "desktop_participation_minutes": 1500,
    "mobile_participation_minutes": 1000,
    "tablet_participation_minutes": 900,
    "smarttv_participation_minutes": 100,
    "broadcasted_minutes": 2500,
    "subscribed_minutes": 1000,
    "screen_broadcasted_minutes": 1000,
    "screen_subscribed_minutes": 100,
    "active_participants": 35,
    "max_concurrent_participants": 10,
    "desktop_participants": 15,
    "mobile_participants": 10,
    "tablet_participants": 10,
    "smarttv_participants": 5,
    "sessions": 10,
    "rooms": 5,
    "max_concurrent_sessions": 3,
    "max_concurrent_participants_per_session": 10,
    "live_participants": 10,
    "recorded_minutes": 590,
    "max_active_recorders": 3,
    "transcription_minutes": 520,
    "e2ee_minutes": 850,
    "stored_recorded_minutes": 960,
    "whiteboard_minutes": 59,
    "captions_minutes": 65,
    "active_roles": 2,
    "custom_roles": 3,
    "breakout_minutes": 860,
    "presentation_minutes": 52,
    "public_chat_posts": 125,
    "questions": 5,
    "answers": 10,
    "polls": 5,
    "summaries": 7,
    "date_start": "2024-03-07",
    "date_end": "2024-04-07"
}
 

Request      

GET api/v1/statistics

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

date_start   string  optional  

Period start date. Must be a valid date in the format Y-m-d.

date_end   string  optional  

Period end date. Must be a valid date in the format Y-m-d.

metrics   string  optional  

Metrics in the result dataset, set field names under comma (Ex: participation_minutes,broadcasted_minutes,subscribed_minutes).

Get team global statistics by current period.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/statistics/team/current';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/statistics/team/current"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/statistics/team/current" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "participation_minutes": 3500,
    "desktop_participation_minutes": 1500,
    "mobile_participation_minutes": 1000,
    "tablet_participation_minutes": 900,
    "smarttv_participation_minutes": 100,
    "broadcasted_minutes": 2500,
    "subscribed_minutes": 1000,
    "screen_broadcasted_minutes": 1000,
    "screen_subscribed_minutes": 100,
    "active_participants": 35,
    "max_concurrent_participants": 10,
    "desktop_participants": 15,
    "mobile_participants": 10,
    "tablet_participants": 10,
    "smarttv_participants": 5,
    "sessions": 10,
    "rooms": 5,
    "max_concurrent_sessions": 3,
    "max_concurrent_participants_per_session": 10,
    "live_participants": 10,
    "recorded_minutes": 590,
    "max_active_recorders": 3,
    "transcription_minutes": 520,
    "e2ee_minutes": 850,
    "stored_recorded_minutes": 960,
    "whiteboard_minutes": 59,
    "captions_minutes": 65,
    "active_roles": 2,
    "custom_roles": 3,
    "breakout_minutes": 860,
    "presentation_minutes": 52,
    "public_chat_posts": 125,
    "questions": 5,
    "answers": 10,
    "polls": 5,
    "summaries": 7,
    "date_start": "2024-03-07",
    "date_end": "2024-04-07"
}
 

Request      

GET api/v1/statistics/team/current

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

metrics   string  optional  

Metrics in the result dataset, set field names under comma (Ex: participation_minutes,broadcasted_minutes,subscribed_minutes).

Get team statistics for current period.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/statistics/current';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/statistics/current"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/statistics/current" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "participation_minutes": 2968,
    "live_sessions": 5,
    "live_participants": 25,
    "active_recorders": 2,
    "recorded_minutes": 181,
    "transcription_minutes": 289,
    "stored_recorded_minutes": 15,
    "max_concurrent_participants": 30,
    "max_concurrent_sessions": 10,
    "date_start": "2024-02-22",
    "date_end": "2024-03-22"
}
 

Request      

GET api/v1/statistics/current

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Get room statistics by period.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/{room}/statistics';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/{room}/statistics"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/{room}/statistics" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "room_id": "13a5aa53-f4da-470b-bfd0-63dd9e5dd81d",
    "room_external_id": "EXTID123",
    "room_description": "Some public room",
    "room_friendly_url": "MyPublicRoom",
    "room_privacy": "public",
    "room_source": "api",
    "room_max_participants": 100,
    "room_is_deleted": false,
    "participation_minutes": 422,
    "desktop_participation_minutes": 222,
    "mobile_participation_minutes": 100,
    "tablet_participation_minutes": 75,
    "smarttv_participation_minutes": 25,
    "broadcasted_minutes": 10,
    "subscribed_minutes": 10,
    "screen_broadcasted_minutes": 5,
    "screen_subscribed_minutes": 5,
    "live_participants": 0,
    "active_participants": 10,
    "desktop_participants": 5,
    "mobile_participants": 2,
    "tablet_participants": 2,
    "smarttv_participants": 1,
    "sessions": 11,
    "max_concurrent_participants": 5,
    "transcription_minutes": 52,
    "e2ee_minutes": 30,
    "recorded_minutes": 40,
    "stored_recorded_minutes": 748,
    "whiteboard_minutes": 4,
    "captions_minutes": 10,
    "active_roles": 2,
    "breakout_minutes": 4,
    "presentation_minutes": 0,
    "public_chat_posts": 2,
    "questions": 12,
    "answers": 10,
    "polls": 2,
    "summaries": 5,
    "date_start": "2024-02-27",
    "date_end": "2024-03-27"
}
 

Request      

GET api/v1/rooms/{room}/statistics

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

date_start   string  optional  

Period start date. Must be a valid date in the format Y-m-d.

date_end   string  optional  

Period end date. Must be a valid date in the format Y-m-d.

metrics   string  optional  

Metrics in the result dataset, set field names under comma (Ex: participation_minutes,broadcasted_minutes,subscribed_minutes).

Get room statistics by current period.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/{room}/statistics/current';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/{room}/statistics/current"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/rooms/{room}/statistics/current" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "room_id": "13a5aa53-f4da-470b-bfd0-63dd9e5dd81d",
    "room_external_id": "EXTID123",
    "room_description": "Some public room",
    "room_friendly_url": "MyPublicRoom",
    "room_privacy": "public",
    "room_source": "api",
    "room_max_participants": 100,
    "room_is_deleted": false,
    "participation_minutes": 422,
    "desktop_participation_minutes": 222,
    "mobile_participation_minutes": 100,
    "tablet_participation_minutes": 75,
    "smarttv_participation_minutes": 25,
    "broadcasted_minutes": 10,
    "subscribed_minutes": 10,
    "screen_broadcasted_minutes": 5,
    "screen_subscribed_minutes": 5,
    "live_participants": 0,
    "active_participants": 10,
    "desktop_participants": 5,
    "mobile_participants": 2,
    "tablet_participants": 2,
    "smarttv_participants": 1,
    "sessions": 11,
    "max_concurrent_participants": 5,
    "transcription_minutes": 52,
    "e2ee_minutes": 30,
    "recorded_minutes": 40,
    "stored_recorded_minutes": 748,
    "whiteboard_minutes": 4,
    "captions_minutes": 10,
    "active_roles": 2,
    "breakout_minutes": 4,
    "presentation_minutes": 0,
    "public_chat_posts": 2,
    "questions": 12,
    "answers": 10,
    "polls": 2,
    "summaries": 5,
    "date_start": "2024-02-27",
    "date_end": "2024-03-27"
}
 

Request      

GET api/v1/rooms/{room}/statistics/current

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

metrics   string  optional  

Metrics in the result dataset, set field names under comma (Ex: participation_minutes,broadcasted_minutes,subscribed_minutes).

Get session statistics.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/sessions/{session}/statistics';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/sessions/{session}/statistics"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/sessions/{session}/statistics" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "room_id": "13a5aa53-f4da-470b-bfd0-63dd9e5dd81d",
    "room_external_id": "EXTID123",
    "room_description": "Some public room",
    "room_friendly_url": "MyPublicRoom",
    "room_privacy": "public",
    "room_source": "api",
    "room_max_participants": 100,
    "room_is_deleted": false,
    "session_id": "0c843bf8-d245-450c-94fb-31e8a861bfaf",
    "session_duration": 60,
    "session_live": false,
    "session_start_time": "2022-05-09T15:25:21Z",
    "session_end_time": "2022-05-09T15:57:25Z",
    "participation_minutes": 67,
    "desktop_participation_minutes": 50,
    "mobile_participation_minutes": 10,
    "tablet_participation_minutes": 7,
    "smarttv_participation_minutes": 0,
    "broadcasted_minutes": 15,
    "subscribed_minutes": 0,
    "screen_broadcasted_minutes": 0,
    "screen_subscribed_minutes": 0,
    "live_participants": 0,
    "active_participants": 4,
    "desktop_participants": 2,
    "mobile_participants": 1,
    "tablet_participants": 1,
    "smarttv_participants": 0,
    "max_concurrent_participants": 3,
    "transcription_minutes": 20,
    "e2ee_minutes": 0,
    "recorded_minutes": 90,
    "stored_recorded_minutes": 60,
    "whiteboard_minutes": 0,
    "captions_minutes": 10,
    "breakout_minutes": 0,
    "presentation_minutes": 0,
    "active_roles": 2,
    "public_chat_posts": 52,
    "questions": 2,
    "answers": 3,
    "polls": 1
}
 

Request      

GET api/v1/sessions/{session}/statistics

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

metrics   string  optional  

Metrics in the result dataset, set field names under comma (Ex: participation_minutes,broadcasted_minutes,subscribed_minutes).

Get participant statistics.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/participants/{participant}/statistics';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/participants/{participant}/statistics"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/participants/{participant}/statistics" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "room_id": "9af9933c-5b43-3279-a7bb-7e7809210e9e",
    "room_external_id": "308bf674-8610-35cb-a378-e2c54f2fc976",
    "room_friendly_url": "UoZhS97JdgTqxj4qVgPWyD_F8eBdW5Si",
    "room_privacy": "public",
    "room_is_deleted": false,
    "session_id": "fc355508-8064-4367-96c2-21ef571beee5",
    "live": false,
    "participant_name": "Madisyn Howe",
    "role": "moderator",
    "join_time": "2024-03-31T15:27:43Z",
    "leave_time": "2024-03-31T15:36:43Z",
    "device": "desktop",
    "system": "Mac OS X 10",
    "browser": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_3 rv:6.0) Gecko/20190126 Firefox/35.0",
    "e2ee": false,
    "participation_minutes": 9,
    "public_chat_posts": 2,
    "questions": 3,
    "answers": 2
}
 

Request      

GET api/v1/participants/{participant}/statistics

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Transcripts

Start transcription.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcription/start';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcription/start"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
curl --request POST \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcription/start" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

POST api/v1/rooms/{room}/transcription/start

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0

Stop transcription.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcription/stop';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {DEVELOPER_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcription/stop"
);

const headers = {
    "Authorization": "Bearer {DEVELOPER_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
curl --request POST \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/transcription/stop" \
    --header "Authorization: Bearer {DEVELOPER_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

POST api/v1/rooms/{room}/transcription/stop

Headers

Authorization      

Example: Bearer {DEVELOPER_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room   string   

The UUID of the room or room friendly URL. Example: a853d608-e6cf-48eb-a3c9-7d089bbc09b0