MENU navbar-image

Introduction

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

Pagination

Base URL

https://api.digitalsamba.com

Authenticating requests

This API is authenticated by sending 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',
            'after'=> 'a853d608-e6cf-48eb-a3c9-7d089bbc09b0',
        ],
    ]
);
$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",
    "after": "a853d608-e6cf-48eb-a3c9-7d089bbc09b0",
};
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&after=a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "data": [
        {
            "id": "ad43deba-a8a3-3412-9f00-faf417eda4f3",
            "topic": "Numquam quisquam.",
            "friendly_url": "WXFku_hiIeA404nZw8LNyZlilpjRYwIM",
            "privacy": "public",
            "max_participants": 100,
            "toolbar_position": "bottom",
            "toolbar_color": "#000000",
            "primary_color": "#3771E0",
            "language": "en",
            "language_selection_enabled": true,
            "audio_on_join_enabled": true,
            "video_on_join_enabled": true,
            "screenshare_enabled": true,
            "simple_notifications_enabled": true,
            "join_screen_enabled": true,
            "external_id": "EXTID44631453",
            "created_at": "2022-09-19T16:01:11Z",
            "updated_at": "2022-09-19T16:01:11Z"
        },
        {
            "id": "5c129359-2ed5-36e5-9aed-d3280f56bd62",
            "topic": "Ea minus.",
            "friendly_url": "WFFoITxU4nmAM0fPgtjFb7mTlFK01kmY",
            "privacy": "public",
            "max_participants": 100,
            "toolbar_position": "bottom",
            "toolbar_color": "#000000",
            "primary_color": "#3771E0",
            "language": "en",
            "language_selection_enabled": true,
            "audio_on_join_enabled": true,
            "video_on_join_enabled": true,
            "screenshare_enabled": true,
            "simple_notifications_enabled": true,
            "join_screen_enabled": true,
            "external_id": "EXTID677874027",
            "created_at": "2022-09-19T16:01:11Z",
            "updated_at": "2022-09-19T16:01:11Z"
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/rooms

Query Parameters

limit  integer optional  

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

order  string optional  

Order of returned records. Default is desc.

after  string optional  

The UUID of the room 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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0',
    [
        '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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "df72cb4b-3ea1-3239-ac5f-203526612b48",
    "topic": "Qui sint odit.",
    "friendly_url": "6gToP33jE8F0hjwJXoDDCq8SCbAIccIK",
    "privacy": "public",
    "max_participants": 100,
    "toolbar_position": "bottom",
    "toolbar_color": "#000000",
    "primary_color": "#3771E0",
    "language": "en",
    "language_selection_enabled": true,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "screenshare_enabled": true,
    "pin_enabled": false,
    "full_screen_enabled": false,
    "minimize_own_tile_enabled": false,
    "end_session_enabled": false,
    "e2ee_enabled": false,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "external_id": "EXTID1823286840",
    "created_at": "2022-09-19T16:01:11Z",
    "updated_at": "2022-09-19T16:01:11Z"
}
 

Request      

GET api/v1/rooms/{room}

URL Parameters

room  string  

The UUID of the room.

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' => [
            'topic' => 'standup',
            'friendly_url' => 'my-standup',
            'privacy' => 'public',
            'external_id' => 'myExtID123',
            'default_role' => 'participant',
            'roles' => [
                'participant',
            ],
            'toolbar_position' => 'right',
            'toolbar_color' => '#FF0000',
            'primary_color' => '#008000',
            '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,
            'end_session_enabled' => false,
            'e2ee_enabled' => true,
            'simple_notifications_enabled' => true,
            'join_screen_enabled' => false,
            'screenshare_enabled' => false,
            'max_participants' => 50,
        ],
    ]
);
$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 = {
    "topic": "standup",
    "friendly_url": "my-standup",
    "privacy": "public",
    "external_id": "myExtID123",
    "default_role": "participant",
    "roles": [
        "participant"
    ],
    "toolbar_position": "right",
    "toolbar_color": "#FF0000",
    "primary_color": "#008000",
    "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,
    "end_session_enabled": false,
    "e2ee_enabled": true,
    "simple_notifications_enabled": true,
    "join_screen_enabled": false,
    "screenshare_enabled": false,
    "max_participants": 50
};

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 "{
    \"topic\": \"standup\",
    \"friendly_url\": \"my-standup\",
    \"privacy\": \"public\",
    \"external_id\": \"myExtID123\",
    \"default_role\": \"participant\",
    \"roles\": [
        \"participant\"
    ],
    \"toolbar_position\": \"right\",
    \"toolbar_color\": \"#FF0000\",
    \"primary_color\": \"#008000\",
    \"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,
    \"end_session_enabled\": false,
    \"e2ee_enabled\": true,
    \"simple_notifications_enabled\": true,
    \"join_screen_enabled\": false,
    \"screenshare_enabled\": false,
    \"max_participants\": 50
}"

Example response (200):


{
    "id": "7c391e7f-eb11-36c5-854f-e6e84e050e35",
    "topic": "Numquam adipisci.",
    "friendly_url": "xJM35cc7xJ7ziLH1dWvO3diE4TLrOkG0",
    "privacy": "public",
    "max_participants": 100,
    "toolbar_position": "bottom",
    "toolbar_color": "#000000",
    "primary_color": "#3771E0",
    "language": "en",
    "language_selection_enabled": true,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "screenshare_enabled": true,
    "pin_enabled": false,
    "full_screen_enabled": false,
    "minimize_own_tile_enabled": false,
    "end_session_enabled": false,
    "e2ee_enabled": false,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "external_id": "EXTID1636851666",
    "created_at": "2022-09-19T16:01:11Z",
    "updated_at": "2022-09-19T16:01:11Z"
}
 

Request      

POST api/v1/rooms

Body Parameters

topic  string optional  

Must be at least 3 characters. Must not be greater than 100 characters.

friendly_url  string optional  

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

privacy  string  

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

external_id  string optional  

Room external id.

default_role  string optional  

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

roles  string[]  

Must be an array of role IDs or names.

toolbar_position  string optional  

Must be one of left, right, or bottom.

toolbar_color  string optional  

Must be color hex code.

primary_color  string optional  

Must be color hex code.

language  string optional  

Must be one of de or en.

language_selection_enabled  boolean optional  

audio_on_join_enabled  boolean optional  

video_on_join_enabled  boolean optional  

pin_enabled  boolean optional  

full_screen_enabled  boolean optional  

minimize_own_tile_enabled  boolean optional  

end_session_enabled  boolean optional  

e2ee_enabled  boolean optional  

simple_notifications_enabled  boolean optional  

join_screen_enabled  boolean optional  

screenshare_enabled  boolean optional  

max_participants  integer optional  

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

Update room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'topic' => 'standup',
            'friendly_url' => 'my-standup',
            'privacy' => 'public',
            'external_id' => 'myExtID123',
            'default_role' => 'participant',
            'roles' => [
                'participant',
            ],
            'toolbar_position' => 'right',
            'toolbar_color' => '#FF0000',
            'primary_color' => '#008000',
            'language' => 'en',
            'language_selection_enabled' => false,
            'audio_on_join_enabled' => false,
            'video_on_join_enabled' => true,
            'pin_enabled' => true,
            'full_screen_enabled' => false,
            'minimize_own_tile_enabled' => false,
            'end_session_enabled' => false,
            'e2ee_enabled' => false,
            'simple_notifications_enabled' => false,
            'join_screen_enabled' => false,
            'screenshare_enabled' => true,
            'max_participants' => 50,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

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

let body = {
    "topic": "standup",
    "friendly_url": "my-standup",
    "privacy": "public",
    "external_id": "myExtID123",
    "default_role": "participant",
    "roles": [
        "participant"
    ],
    "toolbar_position": "right",
    "toolbar_color": "#FF0000",
    "primary_color": "#008000",
    "language": "en",
    "language_selection_enabled": false,
    "audio_on_join_enabled": false,
    "video_on_join_enabled": true,
    "pin_enabled": true,
    "full_screen_enabled": false,
    "minimize_own_tile_enabled": false,
    "end_session_enabled": false,
    "e2ee_enabled": false,
    "simple_notifications_enabled": false,
    "join_screen_enabled": false,
    "screenshare_enabled": true,
    "max_participants": 50
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request PATCH \
    "https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"topic\": \"standup\",
    \"friendly_url\": \"my-standup\",
    \"privacy\": \"public\",
    \"external_id\": \"myExtID123\",
    \"default_role\": \"participant\",
    \"roles\": [
        \"participant\"
    ],
    \"toolbar_position\": \"right\",
    \"toolbar_color\": \"#FF0000\",
    \"primary_color\": \"#008000\",
    \"language\": \"en\",
    \"language_selection_enabled\": false,
    \"audio_on_join_enabled\": false,
    \"video_on_join_enabled\": true,
    \"pin_enabled\": true,
    \"full_screen_enabled\": false,
    \"minimize_own_tile_enabled\": false,
    \"end_session_enabled\": false,
    \"e2ee_enabled\": false,
    \"simple_notifications_enabled\": false,
    \"join_screen_enabled\": false,
    \"screenshare_enabled\": true,
    \"max_participants\": 50
}"

Example response (200):


{
    "id": "4ad9739d-b5fd-3ebe-b1e9-a5ef1a235f10",
    "topic": "Tempore qui quis.",
    "friendly_url": "rRFcXabKtMDKRnAFTm8i-TFZCIbQtm_8",
    "privacy": "public",
    "max_participants": 100,
    "toolbar_position": "bottom",
    "toolbar_color": "#000000",
    "primary_color": "#3771E0",
    "language": "en",
    "language_selection_enabled": true,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "screenshare_enabled": true,
    "pin_enabled": false,
    "full_screen_enabled": false,
    "minimize_own_tile_enabled": false,
    "end_session_enabled": false,
    "e2ee_enabled": false,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "external_id": "EXTID91924258",
    "created_at": "2022-09-19T16:01:11Z",
    "updated_at": "2022-09-19T16:01:11Z"
}
 

Request      

PATCH api/v1/rooms/{room}

URL Parameters

room  string  

The UUID of the room.

Body Parameters

topic  string optional  

Must be at least 3 characters. Must not be greater than 100 characters.

friendly_url  string optional  

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

privacy  string optional  

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

external_id  string optional  

Room external id.

default_role  string optional  

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

roles  string[] optional  

Must be an array of role IDs or names.

toolbar_position  string optional  

Must be one of left, right, or bottom.

toolbar_color  string optional  

Must be color hex code.

primary_color  string optional  

Must be color hex code.

language  string optional  

Must be one of de or en.

language_selection_enabled  boolean optional  

audio_on_join_enabled  boolean optional  

video_on_join_enabled  boolean optional  

pin_enabled  boolean optional  

full_screen_enabled  boolean optional  

minimize_own_tile_enabled  boolean optional  

end_session_enabled  boolean optional  

e2ee_enabled  boolean optional  

simple_notifications_enabled  boolean optional  

join_screen_enabled  boolean optional  

screenshare_enabled  boolean optional  

max_participants  integer optional  

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

Delete room.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://api.digitalsamba.com/api/v1/rooms/a853d608-e6cf-48eb-a3c9-7d089bbc09b0',
    [
        '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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --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}

URL Parameters

room  string  

The UUID of the room.

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',
            'after'=> 'a853d608-e6cf-48eb-a3c9-7d089bbc09b0',
        ],
    ]
);
$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",
    "after": "a853d608-e6cf-48eb-a3c9-7d089bbc09b0",
};
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&after=a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --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

Query Parameters

limit  integer optional  

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

order  string optional  

Order of returned records. Default is desc.

after  string optional  

The UUID of the room 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',
            'after'=> 'a853d608-e6cf-48eb-a3c9-7d089bbc09b0',
        ],
    ]
);
$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",
    "after": "a853d608-e6cf-48eb-a3c9-7d089bbc09b0",
};
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&after=a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --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

Query Parameters

limit  integer optional  

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

order  string optional  

Order of returned records. Default is desc.

after  string optional  

The UUID of the room 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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/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}/live

URL Parameters

room  string  

The UUID of the room.

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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0/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}/live/participants

URL Parameters

room  string  

The UUID of the room.

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',
            'after'=> 'a853d608-e6cf-48eb-a3c9-7d089bbc09b0',
        ],
    ]
);
$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",
    "after": "a853d608-e6cf-48eb-a3c9-7d089bbc09b0",
};
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&after=a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "data": [
        {
            "id": "ae411a7a-0774-4ca1-a43b-a524ea3c9997",
            "endpoint": "http://mills.info/",
            "authorization_header": "eb433f2c145f7509b1cb7344c554afa2",
            "name": "My webhook 5",
            "created_at": "2022-09-19T16:01:11Z",
            "updated_at": "2022-09-19T16:01:11Z"
        },
        {
            "id": "393c3266-ba4a-4fa0-ae76-5bda752d2d89",
            "endpoint": "https://jerde.com/quia-tenetur-nihil-commodi-reiciendis-dignissimos.html",
            "authorization_header": "163b8b27d477065b30ef9a3e97c846ea",
            "name": "My webhook 6",
            "created_at": "2022-09-19T16:01:11Z",
            "updated_at": "2022-09-19T16:01:11Z"
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/webhooks

Query Parameters

limit  integer optional  

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

order  string optional  

Order of returned records. Default is desc.

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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0',
    [
        '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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "98943514-8afe-48d6-95b1-634cd4660af2",
    "endpoint": "https://wyman.com/corrupti-ipsa-reprehenderit-aliquam-sequi.html",
    "authorization_header": "6cb19c5f4a5945b4a6465170622d2251",
    "name": "My webhook 5",
    "events": [
        "participant_dolor"
    ],
    "created_at": "2022-09-19T16:01:11Z",
    "updated_at": "2022-09-19T16:01:11Z"
}
 

Request      

GET api/v1/webhooks/{webhook}

URL Parameters

webhook  string  

The UUID of the webhook.

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": "ea720856-f43d-44c4-af92-d2bd3cb616e8",
    "endpoint": "https://www.brown.com/aliquam-sed-ducimus-voluptatem-sit-optio-quo",
    "authorization_header": "2a6fcaffb1ae8d2f2880a970547b947d",
    "name": "My webhook 9",
    "events": [
        "participant_voluptates"
    ],
    "created_at": "2022-09-19T16:01:11Z",
    "updated_at": "2022-09-19T16:01:11Z"
}
 

Request      

POST api/v1/webhooks

Body Parameters

endpoint  string  

Must be a valid URL. Must be at least 3 characters. Must not be greater than 100 characters.

name  string optional  

Must be at least 3 characters. Must not be greater than 100 characters.

authorization_header  string optional  

A bearer token that will be sent as β€œAuthorization” header.

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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0',
    [
        '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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --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": "bd760805-d797-4f4e-b652-23663b6c2f61",
    "endpoint": "http://www.gusikowski.biz/soluta-reiciendis-facilis-iusto-placeat-cum",
    "authorization_header": "11f6638433321f6d80696f940135c8a7",
    "name": "My webhook 8",
    "events": [
        "participant_quaerat"
    ],
    "created_at": "2022-09-19T16:01:11Z",
    "updated_at": "2022-09-19T16:01:11Z"
}
 

Request      

PATCH api/v1/webhooks/{webhook}

URL Parameters

webhook  string  

The UUID of the webhook.

Body Parameters

endpoint  string optional  

Must be a valid URL. Must be at least 3 characters. Must not be greater than 100 characters.

name  string optional  

Must be at least 3 characters. Must not be greater than 100 characters.

authorization_header  string optional  

A bearer token that will be sent as β€œAuthorization” header.

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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0',
    [
        '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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --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}

URL Parameters

webhook  string  

The UUID of the webhook.

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_ut",
    "participant_praesentium"
]
 

Request      

GET api/v1/events

Team Settings

Get team settings.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1',
    [
        '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"
);

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

Example response (200):


{
    "id": "ce085643-ca85-40b3-a9b6-86d1f29deec5",
    "domain": "c07c481b4f24bee9b61289791ba79865",
    "toolbar_position": "bottom",
    "toolbar_color": "#000000",
    "primary_color": "#3771E0",
    "language": "en",
    "language_selection_enabled": true,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "screenshare_enabled": true,
    "pin_enabled": false,
    "full_screen_enabled": false,
    "minimize_own_tile_enabled": false,
    "end_session_enabled": false,
    "e2ee_enabled": false,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "logo_enabled": true
}
 

Request      

GET api/v1

Update team settings.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'https://api.digitalsamba.com/api/v1',
    [
        'headers' => [
            'Authorization' => 'Bearer base64(teamId:teamDeveloperKey)',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'domain' => 'ipsam',
            'toolbar_position' => 'right',
            'toolbar_color' => '#FF0000',
            'primary_color' => '#008000',
            'language' => 'en',
            'join_screen_enabled' => false,
            'language_selection_enabled' => false,
            'audio_on_join_enabled' => true,
            'video_on_join_enabled' => true,
            'pin_enabled' => false,
            'full_screen_enabled' => true,
            'minimize_own_tile_enabled' => false,
            'end_session_enabled' => true,
            'e2ee_enabled' => false,
            'simple_notifications_enabled' => true,
            'screenshare_enabled' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1"
);

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

let body = {
    "domain": "ipsam",
    "toolbar_position": "right",
    "toolbar_color": "#FF0000",
    "primary_color": "#008000",
    "language": "en",
    "join_screen_enabled": false,
    "language_selection_enabled": false,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "pin_enabled": false,
    "full_screen_enabled": true,
    "minimize_own_tile_enabled": false,
    "end_session_enabled": true,
    "e2ee_enabled": false,
    "simple_notifications_enabled": true,
    "screenshare_enabled": true
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request PATCH \
    "https://api.digitalsamba.com/api/v1" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"domain\": \"ipsam\",
    \"toolbar_position\": \"right\",
    \"toolbar_color\": \"#FF0000\",
    \"primary_color\": \"#008000\",
    \"language\": \"en\",
    \"join_screen_enabled\": false,
    \"language_selection_enabled\": false,
    \"audio_on_join_enabled\": true,
    \"video_on_join_enabled\": true,
    \"pin_enabled\": false,
    \"full_screen_enabled\": true,
    \"minimize_own_tile_enabled\": false,
    \"end_session_enabled\": true,
    \"e2ee_enabled\": false,
    \"simple_notifications_enabled\": true,
    \"screenshare_enabled\": true
}"

Example response (200):


{
    "id": "ae3e81e1-10a1-4fc9-bcad-7e5dc430e22c",
    "domain": "8885b56f34358f4af3f59b6ee984c604",
    "toolbar_position": "bottom",
    "toolbar_color": "#000000",
    "primary_color": "#3771E0",
    "language": "en",
    "language_selection_enabled": true,
    "audio_on_join_enabled": true,
    "video_on_join_enabled": true,
    "screenshare_enabled": true,
    "pin_enabled": false,
    "full_screen_enabled": false,
    "minimize_own_tile_enabled": false,
    "end_session_enabled": false,
    "e2ee_enabled": false,
    "simple_notifications_enabled": true,
    "join_screen_enabled": true,
    "logo_enabled": true
}
 

Request      

PATCH api/v1

Body Parameters

domain  string optional  

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

toolbar_position  string optional  

Must be one of left, right, or bottom.

toolbar_color  string optional  

Must be color hex code.

primary_color  string optional  

Must be color hex code.

language  string optional  

Must be one of de or en.

join_screen_enabled  boolean optional  

language_selection_enabled  boolean optional  

audio_on_join_enabled  boolean optional  

video_on_join_enabled  boolean optional  

pin_enabled  boolean optional  

full_screen_enabled  boolean optional  

minimize_own_tile_enabled  boolean optional  

end_session_enabled  boolean optional  

e2ee_enabled  boolean optional  

simple_notifications_enabled  boolean optional  

screenshare_enabled  boolean optional  

Roles

Get available roles for the team.

requires authentication

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',
        ],
    ]
);
$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",
};

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

Example response (200):


{
    "data": [
        {
            "id": "a1a43eb3-4442-415a-83f4-b17edb7c7e16",
            "name": "role_356837808",
            "display_name": "Est.",
            "description": null,
            "created_at": "2022-09-19T16:01:11Z",
            "updated_at": "2022-09-19T16:01:11Z"
        },
        {
            "id": "682475c9-8e3f-4e9d-85a0-15ecaea11efa",
            "name": "role_579036428",
            "display_name": "Officia.",
            "description": null,
            "created_at": "2022-09-19T16:01:11Z",
            "updated_at": "2022-09-19T16:01:11Z"
        }
    ],
    "total_count": "2"
}
 

Request      

GET api/v1/roles

Get the specified role.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0',
    [
        '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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer base64(teamId:teamDeveloperKey)" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "id": "8bc5858e-3f7f-4724-9394-e65094658b59",
    "name": "role_1221485155",
    "display_name": "Sapiente.",
    "description": null,
    "created_at": "2022-09-19T16:01:11Z",
    "updated_at": "2022-09-19T16:01:11Z",
    "permissions": [
        "allow_dolores"
    ]
}
 

Request      

GET api/v1/roles/{role}

URL Parameters

role  string  

The UUID of the role.

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' => [
                'allow_public_chat',
                'allow_invite_user',
            ],
        ],
    ]
);
$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": [
        "allow_public_chat",
        "allow_invite_user"
    ]
};

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\": [
        \"allow_public_chat\",
        \"allow_invite_user\"
    ]
}"

Example response (200):


{
    "id": "372d197a-1dfb-434f-ae7e-861e6794d639",
    "name": "role_1473551012",
    "display_name": "Illum.",
    "description": null,
    "created_at": "2022-09-19T16:01:11Z",
    "updated_at": "2022-09-19T16:01:11Z",
    "permissions": [
        "allow_sunt"
    ]
}
 

Request      

POST api/v1/roles

Body Parameters

name  string  

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

display_name  string  

Must be at least 3 characters. Must not be greater than 100 characters.

description  string optional  

permissions  string[]  

Must be an array of permissions names.

Update the specified role.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0',
    [
        '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' => [
                'allow_public_chat',
                'allow_invite_user',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

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

let body = {
    "name": "participant",
    "display_name": "Basic Participant",
    "description": "Participant with basic permissions",
    "permissions": [
        "allow_public_chat",
        "allow_invite_user"
    ]
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
curl --request PATCH \
    "https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --header "Authorization: Bearer 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\": [
        \"allow_public_chat\",
        \"allow_invite_user\"
    ]
}"

Example response (200):


{
    "id": "3ae66ed5-ff47-404e-a4ac-2ec9e5d3e4f3",
    "name": "role_1466806683",
    "display_name": "Sit autem.",
    "description": null,
    "created_at": "2022-09-19T16:01:11Z",
    "updated_at": "2022-09-19T16:01:11Z",
    "permissions": [
        "allow_fuga"
    ]
}
 

Request      

PATCH api/v1/roles/{role}

URL Parameters

role  string  

The UUID of the role.

Body Parameters

name  string optional  

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

display_name  string optional  

Must be at least 3 characters. Must not be greater than 100 characters.

description  string optional  

permissions  string[] optional  

Must be an array of permissions names.

Delete the specified role.

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://api.digitalsamba.com/api/v1/roles/a853d608-e6cf-48eb-a3c9-7d089bbc09b0',
    [
        '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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0"
);

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/a853d608-e6cf-48eb-a3c9-7d089bbc09b0" \
    --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}

URL Parameters

role  string  

The UUID of the role.

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


[
    "allow_accusamus",
    "allow_aut"
]
 

Request      

GET api/v1/permissions