Skip to main content

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>
info

If you want to get a sharable link before the meeting starts, head over to Permalink API.

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
ParametersTypeDescription
idString (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.
nameString (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
ParametersTypeDescription
pageInteger (optional)Fetch next set of rooms (limit is 25)