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 base64(teamId:teamDeveloperKey)".

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

Rooms

Get all team rooms.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/rooms',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            '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",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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&order=asc" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "data": [
        {
            "id": "b27f97b1-edde-392f-ad48-82181d23a508",
            "description": "Voluptas ullam.",
            "topic": "Voluptas ullam.",
            "friendly_url": "-2D5Ng339wUSJMSadS2tvgnYvv0UnYXp",
            "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",
            "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,
            "pin_enabled": true,
            "full_screen_enabled": true,
            "minimize_own_tile_enabled": true,
            "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,
            "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://57be4f8eb90d48c434cce928450fb2ba.digitalsamba.com/-2D5Ng339wUSJMSadS2tvgnYvv0UnYXp",
            "external_id": "EXTID240874277",
            "captions_mode": "live_speech",
            "captions_language": "en",
            "created_at": "2023-11-30T19:57:57Z",
            "updated_at": "2023-11-30T19:57:57Z"
        },
        {
            "id": "e7230328-f6a7-3b95-bce7-d35b1c83b9ee",
            "description": "Cumque nihil fugiat.",
            "topic": "Cumque nihil fugiat.",
            "friendly_url": "MzpBW90EGZbiXFBnZeJ8zbLTFu5uKvsA",
            "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",
            "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,
            "pin_enabled": true,
            "full_screen_enabled": true,
            "minimize_own_tile_enabled": true,
            "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,
            "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://3f68a5c593e69d45aef3633aba24026b.digitalsamba.com/MzpBW90EGZbiXFBnZeJ8zbLTFu5uKvsA",
            "external_id": "EXTID1170244803",
            "captions_mode": "live_speech",
            "captions_language": "en",
            "created_at": "2023-11-30T19:57:57Z",
            "updated_at": "2023-11-30T19:57:57Z"
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/rooms

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

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

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();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/rooms/natus',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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/natus"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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/natus" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "5bf2fa9d-45cb-38a4-8ac0-e34c189594dc",
    "description": "Rerum quia.",
    "topic": "Rerum quia.",
    "friendly_url": "CE4VRwJtDYCaPBXbVsFFlxQUKRwF3IFV",
    "privacy": "public",
    "max_participants": 100,
    "max_broadcasters": 100,
    "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,
    "recordings_enabled": false,
    "logo_enabled": true,
    "custom_logo": null,
    "recording_logo_enabled": false,
    "virtual_backgrounds_enabled": true,
    "raise_hand_enabled": true,
    "chat_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,
    "e2ee_enabled": false,
    "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,
    "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://9cb5fb36426e560f2597beb15c056007.digitalsamba.com/CE4VRwJtDYCaPBXbVsFFlxQUKRwF3IFV",
    "external_id": "EXTID454499494",
    "html_title": null,
    "captions_enabled": false,
    "captions_mode": "live_speech",
    "captions_in_recordings_enabled": false,
    "captions_language": "en",
    "created_at": "2023-11-30T19:57:57Z",
    "updated_at": "2023-11-30T19:57:57Z"
}
 

Request      

GET api/v1/rooms/{room_public_id}

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room_public_id   string   

The ID of the room public. Example: natus

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();
$response = $client->post(
    'https://api.digitalsamba.com/api/v1/rooms',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'description' => 'standup',
            'friendly_url' => 'my-standup',
            'privacy' => 'public',
            'external_id' => 'myExtID123',
            'default_role' => 'moderator',
            'roles' => [
                'moderator',
            ],
            'webhooks' => [
                'c83c7b87-b9b8-444d-a749-7076fe58fdb8',
            ],
            'is_locked' => false,
            'topbar_enabled' => true,
            'toolbar_enabled' => false,
            'toolbar_position' => 'right',
            'toolbar_color' => '#FF0000',
            'primary_color' => '#008000',
            'background_color' => '#000000',
            'palette_mode' => 'light',
            'language' => 'en',
            'language_selection_enabled' => true,
            'audio_on_join_enabled' => false,
            'video_on_join_enabled' => false,
            'pin_enabled' => true,
            'full_screen_enabled' => true,
            'minimize_own_tile_enabled' => true,
            'minimize_own_tile_on_join_enabled' => true,
            'end_session_enabled' => false,
            'chat_enabled' => true,
            'e2ee_enabled' => true,
            'layout_mode_switch_enabled' => true,
            'simple_notifications_enabled' => true,
            'join_screen_enabled' => true,
            'screenshare_enabled' => false,
            'recordings_enabled' => false,
            'logo_enabled' => false,
            'custom_logo' => 'totam',
            'recording_logo_enabled' => true,
            'virtual_backgrounds_enabled' => false,
            'raise_hand_enabled' => false,
            'participant_names_in_recordings_enabled' => true,
            'invite_participants_enabled' => true,
            'whiteboard_enabled' => true,
            'consent_message_enabled' => false,
            'consent_message_type' => 'generic',
            'consent_message' => 'atque',
            'checkbox_message' => 'corporis',
            'recordings_layout_mode' => 'tiled',
            'layout_mode_on_join' => 'tiled',
            'max_participants' => 50,
            'max_broadcasters' => 5,
            'html_title' => 'My room',
            '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/rooms"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "description": "standup",
    "friendly_url": "my-standup",
    "privacy": "public",
    "external_id": "myExtID123",
    "default_role": "moderator",
    "roles": [
        "moderator"
    ],
    "webhooks": [
        "c83c7b87-b9b8-444d-a749-7076fe58fdb8"
    ],
    "is_locked": false,
    "topbar_enabled": true,
    "toolbar_enabled": false,
    "toolbar_position": "right",
    "toolbar_color": "#FF0000",
    "primary_color": "#008000",
    "background_color": "#000000",
    "palette_mode": "light",
    "language": "en",
    "language_selection_enabled": true,
    "audio_on_join_enabled": false,
    "video_on_join_enabled": false,
    "pin_enabled": true,
    "full_screen_enabled": true,
    "minimize_own_tile_enabled": true,
    "minimize_own_tile_on_join_enabled": true,
    "end_session_enabled": false,
    "chat_enabled": true,
    "e2ee_enabled": true,
    "layout_mode_switch_enabled": true,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "screenshare_enabled": false,
    "recordings_enabled": false,
    "logo_enabled": false,
    "custom_logo": "totam",
    "recording_logo_enabled": true,
    "virtual_backgrounds_enabled": false,
    "raise_hand_enabled": false,
    "participant_names_in_recordings_enabled": true,
    "invite_participants_enabled": true,
    "whiteboard_enabled": true,
    "consent_message_enabled": false,
    "consent_message_type": "generic",
    "consent_message": "atque",
    "checkbox_message": "corporis",
    "recordings_layout_mode": "tiled",
    "layout_mode_on_join": "tiled",
    "max_participants": 50,
    "max_broadcasters": 5,
    "html_title": "My room",
    "captions_enabled": false,
    "captions_language": "en",
    "captions_in_recordings_enabled": false
};

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 base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"description\": \"standup\",
    \"friendly_url\": \"my-standup\",
    \"privacy\": \"public\",
    \"external_id\": \"myExtID123\",
    \"default_role\": \"moderator\",
    \"roles\": [
        \"moderator\"
    ],
    \"webhooks\": [
        \"c83c7b87-b9b8-444d-a749-7076fe58fdb8\"
    ],
    \"is_locked\": false,
    \"topbar_enabled\": true,
    \"toolbar_enabled\": false,
    \"toolbar_position\": \"right\",
    \"toolbar_color\": \"#FF0000\",
    \"primary_color\": \"#008000\",
    \"background_color\": \"#000000\",
    \"palette_mode\": \"light\",
    \"language\": \"en\",
    \"language_selection_enabled\": true,
    \"audio_on_join_enabled\": false,
    \"video_on_join_enabled\": false,
    \"pin_enabled\": true,
    \"full_screen_enabled\": true,
    \"minimize_own_tile_enabled\": true,
    \"minimize_own_tile_on_join_enabled\": true,
    \"end_session_enabled\": false,
    \"chat_enabled\": true,
    \"e2ee_enabled\": true,
    \"layout_mode_switch_enabled\": true,
    \"simple_notifications_enabled\": true,
    \"join_screen_enabled\": true,
    \"screenshare_enabled\": false,
    \"recordings_enabled\": false,
    \"logo_enabled\": false,
    \"custom_logo\": \"totam\",
    \"recording_logo_enabled\": true,
    \"virtual_backgrounds_enabled\": false,
    \"raise_hand_enabled\": false,
    \"participant_names_in_recordings_enabled\": true,
    \"invite_participants_enabled\": true,
    \"whiteboard_enabled\": true,
    \"consent_message_enabled\": false,
    \"consent_message_type\": \"generic\",
    \"consent_message\": \"atque\",
    \"checkbox_message\": \"corporis\",
    \"recordings_layout_mode\": \"tiled\",
    \"layout_mode_on_join\": \"tiled\",
    \"max_participants\": 50,
    \"max_broadcasters\": 5,
    \"html_title\": \"My room\",
    \"captions_enabled\": false,
    \"captions_language\": \"en\",
    \"captions_in_recordings_enabled\": false
}"

Example response (200):


{
    "id": "dd26c556-f9c0-35f1-b7df-f7e29ed68efa",
    "description": "Fuga ut quam sit.",
    "topic": "Fuga ut quam sit.",
    "friendly_url": "tB63rXekrDTyPbkcdrBHSYs5SnupBJ6X",
    "privacy": "public",
    "max_participants": 100,
    "max_broadcasters": 100,
    "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,
    "recordings_enabled": false,
    "logo_enabled": true,
    "custom_logo": null,
    "recording_logo_enabled": false,
    "virtual_backgrounds_enabled": true,
    "raise_hand_enabled": true,
    "chat_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,
    "e2ee_enabled": false,
    "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,
    "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://a8fc81a276eaa0c58bd79483334a788d.digitalsamba.com/tB63rXekrDTyPbkcdrBHSYs5SnupBJ6X",
    "external_id": "EXTID2032608470",
    "html_title": null,
    "captions_enabled": false,
    "captions_mode": "live_speech",
    "captions_in_recordings_enabled": false,
    "captions_language": "en",
    "created_at": "2023-11-30T19:57:58Z",
    "updated_at": "2023-11-30T19:57:58Z"
}
 

Request      

POST api/v1/rooms

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

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: standup

friendly_url   string  optional  

Must be unique. Must be at least 3 characters. Must not be greater than 32 characters. Example: my-standup

privacy   string   

Must be in ['public', 'private']. Example: public

external_id   string  optional  

Room external id. Example: myExtID123

default_role   string  optional  

Required when there is more than one role. Role ID or name. Example: moderator

roles   string[]   

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  

Example: false

topbar_enabled   boolean  optional  

Example: true

toolbar_enabled   boolean  optional  

Example: false

toolbar_position   string  optional  

Must be one of left, right or bottom. Example: right

toolbar_color   string  optional  

Must be color hex code. Example: #FF0000

primary_color   string  optional  

Must be color hex code. Example: #008000

background_color   string  optional  

Must be color hex code. Example: #000000

palette_mode   string  optional  

Must be one of light or dark. Example: light

language   string  optional  

Must be one of de, en or es. Example: en

language_selection_enabled   boolean  optional  

Example: true

audio_on_join_enabled   boolean  optional  

Example: false

video_on_join_enabled   boolean  optional  

Example: false

pin_enabled   boolean  optional  

Example: true

full_screen_enabled   boolean  optional  

Example: true

minimize_own_tile_enabled   boolean  optional  

Example: true

minimize_own_tile_on_join_enabled   boolean  optional  

Example: true

end_session_enabled   boolean  optional  

Example: false

chat_enabled   boolean  optional  

Example: true

e2ee_enabled   boolean  optional  

Example: true

layout_mode_switch_enabled   boolean  optional  

Example: true

simple_notifications_enabled   boolean  optional  

Example: true

join_screen_enabled   boolean  optional  

Example: true

screenshare_enabled   boolean  optional  

Example: false

recordings_enabled   boolean  optional  

Example: false

logo_enabled   boolean  optional  

Example: false

custom_logo   string  optional  

Image URL or base64 encoded file source. Example: totam

recording_logo_enabled   boolean  optional  

Example: true

virtual_backgrounds_enabled   boolean  optional  

Example: false

raise_hand_enabled   boolean  optional  

Example: false

participant_names_in_recordings_enabled   boolean  optional  

Example: true

invite_participants_enabled   boolean  optional  

Example: true

whiteboard_enabled   boolean  optional  

Example: true

consent_message_enabled   boolean  optional  

Example: false

consent_message_type   string  optional  

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

consent_message   string  optional  

Example: atque

checkbox_message   string  optional  

Example: corporis

recordings_layout_mode   string  optional  

Must be in ['auto', 'tiled']. Example: tiled

layout_mode_on_join   string  optional  

Must be in ['auto', 'tiled']. Example: tiled

max_participants   integer  optional  

Maximum allowed number of live participants. Must be at least 2. Must not be greater than 100. Example: 50

max_broadcasters   integer  optional  

Maximum allowed number of broadcasters. Must be at least 1. Must not be greater than max_participants. Example: 5

html_title   string  optional  

Must be at least 5 characters. Must not be greater than 255 characters. Example: My room

captions_enabled   boolean  optional  

Example: false

captions_language   string  optional  

Must be en or de. Example: en

captions_in_recordings_enabled   boolean  optional  

Example: false

Update room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'https://api.digitalsamba.com/api/v1/rooms/ipsum',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'description' => 'standup',
            'friendly_url' => 'my-standup',
            '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' => 'right',
            'toolbar_color' => '#FF0000',
            'primary_color' => '#008000',
            'background_color' => '#000000',
            'palette_mode' => 'light',
            'language' => 'en',
            'language_selection_enabled' => true,
            'audio_on_join_enabled' => false,
            'video_on_join_enabled' => true,
            'pin_enabled' => true,
            'full_screen_enabled' => false,
            'minimize_own_tile_enabled' => false,
            'minimize_own_tile_on_join_enabled' => true,
            'end_session_enabled' => false,
            'chat_enabled' => true,
            'e2ee_enabled' => false,
            'layout_mode_switch_enabled' => false,
            'simple_notifications_enabled' => false,
            'join_screen_enabled' => false,
            'screenshare_enabled' => true,
            'recordings_enabled' => true,
            'logo_enabled' => true,
            'recording_logo_enabled' => false,
            'virtual_backgrounds_enabled' => true,
            'raise_hand_enabled' => false,
            'participant_names_in_recordings_enabled' => false,
            'invite_participants_enabled' => false,
            'whiteboard_enabled' => false,
            'consent_message_enabled' => true,
            'consent_message_type' => 'generic',
            'consent_message' => 'rerum',
            'checkbox_message' => 'beatae',
            'recordings_layout_mode' => 'tiled',
            'layout_mode_on_join' => 'tiled',
            'max_participants' => 50,
            'max_broadcasters' => 5,
            'html_title' => 'My room',
            '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/rooms/ipsum"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "description": "standup",
    "friendly_url": "my-standup",
    "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": "right",
    "toolbar_color": "#FF0000",
    "primary_color": "#008000",
    "background_color": "#000000",
    "palette_mode": "light",
    "language": "en",
    "language_selection_enabled": true,
    "audio_on_join_enabled": false,
    "video_on_join_enabled": true,
    "pin_enabled": true,
    "full_screen_enabled": false,
    "minimize_own_tile_enabled": false,
    "minimize_own_tile_on_join_enabled": true,
    "end_session_enabled": false,
    "chat_enabled": true,
    "e2ee_enabled": false,
    "layout_mode_switch_enabled": false,
    "simple_notifications_enabled": false,
    "join_screen_enabled": false,
    "screenshare_enabled": true,
    "recordings_enabled": true,
    "logo_enabled": true,
    "recording_logo_enabled": false,
    "virtual_backgrounds_enabled": true,
    "raise_hand_enabled": false,
    "participant_names_in_recordings_enabled": false,
    "invite_participants_enabled": false,
    "whiteboard_enabled": false,
    "consent_message_enabled": true,
    "consent_message_type": "generic",
    "consent_message": "rerum",
    "checkbox_message": "beatae",
    "recordings_layout_mode": "tiled",
    "layout_mode_on_join": "tiled",
    "max_participants": 50,
    "max_broadcasters": 5,
    "html_title": "My room",
    "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/rooms/ipsum" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"description\": \"standup\",
    \"friendly_url\": \"my-standup\",
    \"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\": \"right\",
    \"toolbar_color\": \"#FF0000\",
    \"primary_color\": \"#008000\",
    \"background_color\": \"#000000\",
    \"palette_mode\": \"light\",
    \"language\": \"en\",
    \"language_selection_enabled\": true,
    \"audio_on_join_enabled\": false,
    \"video_on_join_enabled\": true,
    \"pin_enabled\": true,
    \"full_screen_enabled\": false,
    \"minimize_own_tile_enabled\": false,
    \"minimize_own_tile_on_join_enabled\": true,
    \"end_session_enabled\": false,
    \"chat_enabled\": true,
    \"e2ee_enabled\": false,
    \"layout_mode_switch_enabled\": false,
    \"simple_notifications_enabled\": false,
    \"join_screen_enabled\": false,
    \"screenshare_enabled\": true,
    \"recordings_enabled\": true,
    \"logo_enabled\": true,
    \"recording_logo_enabled\": false,
    \"virtual_backgrounds_enabled\": true,
    \"raise_hand_enabled\": false,
    \"participant_names_in_recordings_enabled\": false,
    \"invite_participants_enabled\": false,
    \"whiteboard_enabled\": false,
    \"consent_message_enabled\": true,
    \"consent_message_type\": \"generic\",
    \"consent_message\": \"rerum\",
    \"checkbox_message\": \"beatae\",
    \"recordings_layout_mode\": \"tiled\",
    \"layout_mode_on_join\": \"tiled\",
    \"max_participants\": 50,
    \"max_broadcasters\": 5,
    \"html_title\": \"My room\",
    \"captions_enabled\": false,
    \"captions_language\": \"en\",
    \"captions_in_recordings_enabled\": false
}"

Example response (200):


{
    "id": "e4e1faeb-59fa-3f9f-b6ec-84425be1039d",
    "description": "Iure enim fugiat.",
    "topic": "Iure enim fugiat.",
    "friendly_url": "B-bN8yG3FephkqzazCu_Du0ZZ3OyMlB7",
    "privacy": "public",
    "max_participants": 100,
    "max_broadcasters": 100,
    "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,
    "recordings_enabled": false,
    "logo_enabled": true,
    "custom_logo": null,
    "recording_logo_enabled": false,
    "virtual_backgrounds_enabled": true,
    "raise_hand_enabled": true,
    "chat_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,
    "e2ee_enabled": false,
    "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,
    "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://abe19550d453763dcd39616e5321aca1.digitalsamba.com/B-bN8yG3FephkqzazCu_Du0ZZ3OyMlB7",
    "external_id": "EXTID1134436898",
    "html_title": null,
    "captions_enabled": false,
    "captions_mode": "live_speech",
    "captions_in_recordings_enabled": false,
    "captions_language": "en",
    "created_at": "2023-11-30T19:57:58Z",
    "updated_at": "2023-11-30T19:57:58Z"
}
 

Request      

PATCH api/v1/rooms/{room_public_id}

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room_public_id   string   

The ID of the room public. Example: ipsum

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: standup

friendly_url   string  optional  

Must be unique. Must be at least 3 characters. Must not be greater than 32 characters. Example: my-standup

privacy   string  optional  

Must be in ['public', 'private']. Example: public

external_id   string  optional  

Room external id. Example: myExtID123

default_role   string  optional  

when there is more than one role. Role ID or name. Example: moderator

roles   string[]  optional  

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  

Example: false

topbar_enabled   boolean  optional  

Example: true

toolbar_enabled   boolean  optional  

Example: true

toolbar_position   string  optional  

Must be one of left, right or bottom. Example: right

toolbar_color   string  optional  

Must be color hex code. Example: #FF0000

primary_color   string  optional  

Must be color hex code. Example: #008000

background_color   string  optional  

Must be color hex code. Example: #000000

palette_mode   string  optional  

Must be one of light or dark. Example: light

language   string  optional  

Must be one of de, en or es. Example: en

language_selection_enabled   boolean  optional  

Example: true

audio_on_join_enabled   boolean  optional  

Example: false

video_on_join_enabled   boolean  optional  

Example: true

pin_enabled   boolean  optional  

Example: true

full_screen_enabled   boolean  optional  

Example: false

minimize_own_tile_enabled   boolean  optional  

Example: false

minimize_own_tile_on_join_enabled   boolean  optional  

Example: true

end_session_enabled   boolean  optional  

Example: false

chat_enabled   boolean  optional  

Example: true

e2ee_enabled   boolean  optional  

Example: false

layout_mode_switch_enabled   boolean  optional  

Example: false

simple_notifications_enabled   boolean  optional  

Example: false

join_screen_enabled   boolean  optional  

Example: false

screenshare_enabled   boolean  optional  

Example: true

recordings_enabled   boolean  optional  

Example: true

logo_enabled   boolean  optional  

Example: true

recording_logo_enabled   boolean  optional  

Example: false

virtual_backgrounds_enabled   boolean  optional  

Example: true

raise_hand_enabled   boolean  optional  

Example: false

participant_names_in_recordings_enabled   boolean  optional  

Example: false

invite_participants_enabled   boolean  optional  

Example: false

whiteboard_enabled   boolean  optional  

Example: false

consent_message_enabled   boolean  optional  

Example: true

consent_message_type   string  optional  

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

consent_message   string  optional  

Example: rerum

checkbox_message   string  optional  

Example: beatae

recordings_layout_mode   string  optional  

Must be in ['auto', 'tiled']. Example: tiled

layout_mode_on_join   string  optional  

Must be in ['auto', 'tiled']. Example: tiled

max_participants   integer  optional  

Maximum allowed number of live participants. Must be at least 2. Must not be greater than 100. Example: 50

max_broadcasters   integer  optional  

Maximum allowed number of broadcasters. Must be at least 1. Must not be greater than max_participants. Example: 5

html_title   string  optional  

Must be at least 5 characters. Must not be greater than 255 characters. Example: My room

captions_enabled   boolean  optional  

Example: false

captions_language   string  optional  

Must be en or de. Example: en

captions_in_recordings_enabled   boolean  optional  

Example: false

Delete room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://api.digitalsamba.com/api/v1/rooms/est',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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/est"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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/est" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/rooms/{room_public_id}

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room_public_id   string   

The ID of the room public. Example: est

room   string   

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

Live

Get rooms with live participants count.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/rooms/live',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            '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",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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&order=asc" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --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 base64(teamId:teamDeveloperKey)

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

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();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/rooms/live/participants',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            '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",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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&order=asc" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --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 base64(teamId:teamDeveloperKey)

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

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();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/rooms/ratione/live',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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/ratione/live"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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/ratione/live" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --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_public_id}/live

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room_public_id   string   

The ID of the room public. Example: ratione

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();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/rooms/odit/live/participants',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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/odit/live/participants"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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/odit/live/participants" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --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_public_id}/live/participants

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

room_public_id   string   

The ID of the room public. Example: odit

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();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/recordings',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            'order' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/recordings"
);

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

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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?limit=20&order=asc" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "data": [
        {
            "id": "2ee1edfd-5f7c-31fb-85cc-daf138814c4b",
            "name": "Nesciunt est eaque.",
            "room_id": "8ca0cf37-5009-3a90-948e-b698a6554527",
            "friendly_url": "xzwu8rj9XSfPd5KVKC2n9T2Cwf3NFtgR",
            "privacy": "public",
            "participant_id": "44669d00-d1ac-42fd-b712-fb747c745260",
            "participant_name": "Ryder Nikolaus I",
            "created_at": "2023-11-30T19:57:58Z",
            "updated_at": "2023-11-30T19:57:58Z"
        },
        {
            "id": "ad5cd60c-c0c4-30d1-9ad3-e6963229a5b3",
            "name": "Consequatur ratione.",
            "room_id": "832fb6da-82da-3fa7-a047-d7b719e6fc29",
            "friendly_url": "NtrvV5hphb2DfG45g1NpDvBYBZb5jPg6",
            "privacy": "public",
            "participant_id": "ec9d9259-424d-4be2-a09c-7e0ef2ce3520",
            "participant_name": "Zion Dare",
            "created_at": "2023-11-30T19:57:58Z",
            "updated_at": "2023-11-30T19:57:58Z"
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/recordings

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

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

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();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/recordings/ab',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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/ab"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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/ab" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "86da9c9e-9a0f-3814-a623-c71424805bf5",
    "name": "Iusto voluptatum ea.",
    "duration": 0,
    "status": null,
    "room_id": "52dfd83f-ac57-3df7-8b17-7b5a1f25c0a2",
    "friendly_url": "IDb3Tu5pelqCF3LJ02NuK5iMSQrip532",
    "room_is_deleted": false,
    "privacy": "public",
    "session_id": null,
    "participant_id": "0e6f1473-6950-4e4d-b36c-fe0b23125291",
    "participant_name": "Maxime Nicolas",
    "created_at": "2023-11-30T19:57:59Z",
    "updated_at": "2023-11-30T19:57:59Z"
}
 

Request      

GET api/v1/recordings/{recording_public_id}

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

recording_public_id   string   

The ID of the recording public. Example: ab

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();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/recordings/dolore/download',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'valid_for_minutes' => 25,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/recordings/dolore/download"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "valid_for_minutes": 25
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request GET \
    --get "https://api.digitalsamba.com/api/v1/recordings/dolore/download" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"valid_for_minutes\": 25
}"

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_public_id}/download

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

recording_public_id   string   

The ID of the recording public. Example: dolore

recording   string   

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

Body Parameters

valid_for_minutes   integer  optional  

Must be at least 1. Example: 25

Delete recording.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://api.digitalsamba.com/api/v1/recordings/ratione',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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/ratione"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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/ratione" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/recordings/{recording_public_id}

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

recording_public_id   string   

The ID of the recording public. Example: ratione

recording   string   

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

Webhooks

Get webhooks for the team.

requires authentication

Paginated

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/webhooks',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            '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",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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&order=asc" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "data": [
        {
            "id": "ba3a3823-1f92-4fec-9dbb-8ef0907d09de",
            "endpoint": "http://bayer.com/enim-soluta-culpa-perspiciatis-numquam-aut-neque",
            "authorization_header": "da0335fd571e5bc76131980e3522f87e",
            "name": "My webhook 6",
            "created_at": "2023-11-30T19:57:59Z",
            "updated_at": "2023-11-30T19:57:59Z"
        },
        {
            "id": "53965d40-1037-44b9-acdb-ac8283fa5f56",
            "endpoint": "https://marquardt.net/non-maxime-molestiae-animi-et-ipsum.html",
            "authorization_header": "9aaf6ef843aaf2fdda4ff572a2d2aa5c",
            "name": "My webhook 0",
            "created_at": "2023-11-30T19:57:59Z",
            "updated_at": "2023-11-30T19:57:59Z"
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/webhooks

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

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

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();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/webhooks/illo',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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/illo"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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/illo" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "8bc2ead0-f8eb-4334-b333-9bfcec6f702f",
    "endpoint": "https://brakus.biz/saepe-magnam-consequatur-consequatur-eligendi.html",
    "authorization_header": "e020dface4c35e15c1935338d678e9d0",
    "name": "My webhook 3",
    "events": [
        "participant_sequi"
    ],
    "created_at": "2023-11-30T19:57:59Z",
    "updated_at": "2023-11-30T19:57:59Z"
}
 

Request      

GET api/v1/webhooks/{webhook_public_id}

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

webhook_public_id   string   

The ID of the webhook public. Example: illo

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();
$response = $client->post(
    'https://api.digitalsamba.com/api/v1/webhooks',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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 base64(teamId:teamDeveloperKey)",
    "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 base64(teamId:teamDeveloperKey)" \
    --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": "ef3ebf81-f14c-43c5-a663-be5e345875c5",
    "endpoint": "http://fay.net/optio-quia-enim-aut-consequatur",
    "authorization_header": "07b58d15a5bcddbda3ba4bd994a40c0a",
    "name": "My webhook 2",
    "events": [
        "participant_sunt"
    ],
    "created_at": "2023-11-30T19:57:59Z",
    "updated_at": "2023-11-30T19:57:59Z"
}
 

Request      

POST api/v1/webhooks

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

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();
$response = $client->patch(
    'https://api.digitalsamba.com/api/v1/webhooks/est',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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/est"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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/est" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --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": "0d15608f-6df4-495e-b720-de6326ba5350",
    "endpoint": "http://volkman.info/officia-et-voluptatem-neque-illo-possimus.html",
    "authorization_header": "7774ec4c48f76b6885e3becc9628187e",
    "name": "My webhook 4",
    "events": [
        "participant_quibusdam"
    ],
    "created_at": "2023-11-30T19:58:00Z",
    "updated_at": "2023-11-30T19:58:00Z"
}
 

Request      

PATCH api/v1/webhooks/{webhook_public_id}

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

webhook_public_id   string   

The ID of the webhook public. Example: est

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();
$response = $client->delete(
    'https://api.digitalsamba.com/api/v1/webhooks/eos',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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/eos"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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/eos" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/webhooks/{webhook_public_id}

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

webhook_public_id   string   

The ID of the webhook public. Example: eos

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();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/events',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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 base64(teamId:teamDeveloperKey)",
    "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 base64(teamId:teamDeveloperKey)" \
    --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 base64(teamId:teamDeveloperKey)

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();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/roles',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '20',
            '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",
    "order": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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&order=asc" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --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 base64(teamId:teamDeveloperKey)

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

order   string  optional  

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

Get the specified role.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/roles/212da0f4-8918-4318-a101-116d9b9eb60d',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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/212da0f4-8918-4318-a101-116d9b9eb60d"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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/212da0f4-8918-4318-a101-116d9b9eb60d" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --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": {
        "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_roles": [
            "moderator",
            "speaker",
            "attendee"
        ],
        "manage_screenshare": false,
        "raise_hand": false,
        "recording": false,
        "remote_muting": false,
        "invite_participant": true,
        "control_room_entry": true,
        "remove_participant": false,
        "edit_whiteboard": true,
        "screenshare": false
    }
}
 

Request      

GET api/v1/roles/{role_public_id}

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

role_public_id   string   

The ID of the role public. Example: 212da0f4-8918-4318-a101-116d9b9eb60d

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();
$response = $client->post(
    'https://api.digitalsamba.com/api/v1/roles',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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 base64(teamId:teamDeveloperKey)",
    "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 base64(teamId:teamDeveloperKey)" \
    --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": {
        "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_roles": [
            "moderator",
            "speaker",
            "attendee"
        ],
        "manage_screenshare": false,
        "raise_hand": false,
        "recording": false,
        "remote_muting": false,
        "invite_participant": true,
        "control_room_entry": true,
        "remove_participant": false,
        "edit_whiteboard": true,
        "screenshare": false
    }
}
 

Request      

POST api/v1/roles

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

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();
$response = $client->patch(
    'https://api.digitalsamba.com/api/v1/roles/212da0f4-8918-4318-a101-116d9b9eb60d',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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/212da0f4-8918-4318-a101-116d9b9eb60d"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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/212da0f4-8918-4318-a101-116d9b9eb60d" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --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": {
        "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_roles": [
            "moderator",
            "speaker",
            "attendee"
        ],
        "manage_screenshare": false,
        "raise_hand": false,
        "recording": false,
        "remote_muting": false,
        "invite_participant": true,
        "control_room_entry": true,
        "remove_participant": false,
        "edit_whiteboard": true,
        "screenshare": false
    }
}
 

Request      

PATCH api/v1/roles/{role_public_id}

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

role_public_id   string   

The ID of the role public. Example: 212da0f4-8918-4318-a101-116d9b9eb60d

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();
$response = $client->delete(
    'https://api.digitalsamba.com/api/v1/roles/212da0f4-8918-4318-a101-116d9b9eb60d',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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/212da0f4-8918-4318-a101-116d9b9eb60d"
);

const headers = {
    "Authorization": "Bearer base64(teamId:teamDeveloperKey)",
    "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/212da0f4-8918-4318-a101-116d9b9eb60d" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (204):

Empty response
 

Request      

DELETE api/v1/roles/{role_public_id}

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

role_public_id   string   

The ID of the role public. Example: 212da0f4-8918-4318-a101-116d9b9eb60d

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();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/permissions',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            '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 base64(teamId:teamDeveloperKey)",
    "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 base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


[
    "ask_remote_unmute",
    "broadcast",
    "start_session",
    "end_session",
    "see_participants_panel",
    "general_chat",
    "manage_broadcast",
    "manage_edit_whiteboard",
    "manage_roles",
    "manage_screenshare",
    "raise_hand",
    "recording",
    "remote_muting",
    "invite_participant",
    "remove_participant",
    "control_room_entry",
    "edit_whiteboard",
    "screenshare"
]
 

Request      

GET api/v1/permissions

Headers

Authorization      

Example: Bearer base64(teamId:teamDeveloperKey)

Content-Type      

Example: application/json

Accept      

Example: application/json