Room
Video calls are organized in Eyeson rooms. You can control who will join a room by using a unique identifier. Every user will receive a link to the GUI containing a unique access key scoped to the room and user. This key grants access to the the Eyeson room.
Within an Eyeson room, all features like broadcast, recording, layout, data and image injection be directly controlled.
Any room can be created with a team-based API request, resulting in everything to be needed to join a Eyeson video calls. Within the response the current state of a room can be seen on the ready states for user, room and the global ready state that combines these two.
In the links section you can find a direct URL to the Eyeson GUI. By using this no further communication with the API is required and your user is ready-to-go by using this link with any WebRTC capable user-agent like webbrowser Chrome or Firefox.
The guest-token can be used to quick-join an Eyeson room. Using the Eyeson web GUI a quick-join URL can be generated using the following pattern:
https://app.eyeson.team/?guest=<guest_token>
If you want to get a sharable link before the meeting starts, head over to
Start meeting
The user to join the room has to be provided. If someone already created and joined the room session, the user provided will join this existing room session.
POST /rooms # create a new room or join an existing by id
HEADERS Authorization
RESPONSES 201 CREATED, 400 BAD REQUEST, 403 FORBIDDEN
Parameters | Type | Description |
---|---|---|
id | String (optional) | If you want to get a single user or a handful of users into a specific meeting room, you can define an arbitrary id here. If kept empty, a random id will be returned. |
name | String (optional) | If you want to give the room a readable name. |
user[id] | String (optional) | You can supply a custom user id to identify the user in further REST requests without the need of remembering the Eyeson user id e.g. your internal user id, an e-mail address, phone number, etc. If kept empty, a random id will be assigned. |
user[name] | String (required) | Display name of the user. |
user[avatar] | URL (optional) | Avatars will be displayed in the sidebar of our pre-defined user interface. |
options[show_names] | Boolean (optional) | Show display names in video. Default: true |
options[show_label] | Boolean (optional) | Show Eyeson logos in GUI. Default: true |
options[exit_url] | String (optional) | Exit destination, URL for exit button in GUI |
options[recording_available] | Boolean (optional) | Allow recordings. Default: true |
options[broadcast_available] | Boolean (optional) | Allow broadcasting. Default: true |
options[reaction_available] | Boolean (optional) | Show gif media inserts in GUI. Default: true |
options[layout_available] | Boolean (optional) | Allow layout updates. Default: true |
options[guest_token_available] | Boolean (optional) | Provide guest token. Default: true |
options[lock_available] | Boolean (optional) | Enable meeting lock. Default: false |
options[kick_available] | Boolean (optional) | Allow participant kick. Default: true |
options[sfu_mode] | String (optional) | Set a desired sfu mode. Possible values are: 'disabled', 'screencast' or 'ptp'. To either disable the feature, limit it to screencasts or enable it for meetings with only 2 participants. Default: 'ptp' |
options[widescreen] | Boolean (optional) | Run meeting in widescreen mode (16:9 aspect ratio). Default: false |
options[background_color] | String (optional) | Set meeting background color as hex RGB. Default: '#121212' |
options[audio_insert] | String (optional) | Show audio insert ('enabled', 'disabled' or 'audio_only'). Default: audio_only |
options[audio_insert_position][x] | Number (optional) | X position value of the audio insert. |
options[audio_insert_position][y] | Number (optional) | Y position value of the audio insert. |
options[custom_fields][locale] | Language Code (optional) | User preferred language code (en, de, fr). |
options[custom_fields][logo] | String (optional) | URL to custom logo. |
options[custom_fields][hide_chat] | Boolean (optional) | Hide chat in GUI. Default: false |
options[custom_fields][virtual_background] | Boolean (optional) | Enable Virtual Background selection. Default: false |
options[custom_fields][virtual_background_allow_guest] | Boolean (optional) | Enable Virtual Background selection for Guest users. Default: false |
options[custom_fields][virtual_background_image] | String (optional) | Provide a custom Virtual Background image for selection. |
Example Response
{
"access_key": "vAX29sGYPZEvZQwvg0jycrPX",
"ready": false,
"locked": false,
"room": {
"id": "63ede350b20526000f64376b",
"name": "eyeson room",
"ready": false,
"started_at": "2021-01-01T09:00:00.000Z",
"shutdown": false,
"sip": {
...
},
"guest_token": "gKsiVlrvkFyL3klk1wBHLlm3"
},
"team": {
"name": "My Company Ltd."
},
"user": {
"id": "63ede350b20526000f64376d",
"room_id": "63ede350b20526000f64376b",
"name": "Jane Doe",
"avatar": "https://myawesomeapp.com/images/avatar.png",
"guest": false,
"ready": false,
"sip": {
...
}
},
"links": {
"self": "https://api.eyeson.team/rooms/vAX29sGYPZEvZQwvg0jycrPX",
"gui": "https://app.eyeson.team/?vAX29sGYPZEvZQwvg0jycrPX",
"guest_join": "https://app.eyeson.team/?guest=gKsiVlrvkFyL3klk1wBHLlm3",
"websocket": "https://api.eyeson.team/rt?access_key=vAX29sGYPZEvZQwvg0jycrPX"
},
"options": {
"show_names": true,
"show_label": true,
"exit_url": "https://myawesomeapp.com/meeting-end",
"recording_available": true,
"broadcast_available": true,
"layout_available": true,
"layout": "auto",
"reaction_available": true,
"suggest_guest_names": true,
"lock_available": false,
"kick_available": true,
"sfu_mode": "ptp",
"layout_users": null,
"layout_map": null,
"layout_name": null,
"voice_activation": false,
"custom_fields": {},
"widescreen": false,
"background_color": "#121212"
},
"presentation": null,
"broadcasts": [],
"recording": null,
"snapshots": [],
"signaling": {
...
}
}
If recording_available
, broadcast_available
, layout_available
, or
other ...available
options are set to false, related API requests will respond
with status 405 METHOD NOT ALLOWED
. Except for kick and lock, they will
respond with status 403 FORBIDDEN
.
Receive details of a current running meeting
GET /rooms/<access_key>
RESPONSES 200 OK, 404 NOT FOUND, 410 GONE
Stop meeting
DELETE /rooms/<access_key> # end meeting for all
RESPONSES 204 NO CONTENT, 404 NOT FOUND, 410 GONE
DELETE /rooms/<room_id> # force to stop a running meeting
HEADERS Authorization
RESPONSES 204 NO CONTENT, 400 BAD REQUEST, 403 FORBIDDEN, 404 NOT FOUND
Retrieve list of current running rooms
GET /rooms
HEADERS Authorization
RESPONSES 200 OK, 403 UNAUTHORIZED
Parameters | Type | Description |
---|---|---|
page | Integer (optional) | Fetch next set of rooms (limit is 25) |