Permalink
The Permalink enables developers to pre-define meeting rooms, generate sharable guest links, and initiate meetings on demand.
Only registered hosts have the ability to initiate meetings. Guests cannot start meetings on their own and must wait for a host to begin the meeting before they can join.
All meeting room settings remain configurable throughout the lifetime of the permalink.
Create permalink
POST /permalink
HEADERS Authorization
RESPONSES 201 Created, 400 Bad Request, 401 Unauthorized, 503 Service Unavailable, 423 LOCKED
REQUIRED user[name]
RECOMMENDED user[id], options[widescreen]
Example Req/Res: Create Permalink
- curl
- node sdk
- go sdk
- php sdk
curl -X POST \
-H "Authorization: $API_KEY" \
-d "user[id]=johndoe" \
-d "user[name]=John Doe" \
-d "options[widescreen]=true" \
"https://api.eyeson.team/permalink"
const apiKey = '...';
const eyeson = new Eyeson({ apiKey });
const permalink = await eyeson.permalink.create('John Doe', {
user: { id: 'johndoe' },
options: { widescreen: true },
});
// TBD
$apiKey = '...';
$eyeson = new Eyeson($apiKey);
$permalink = $eyeson->permalink->create('John Doe', [
'user' => ['id' => 'johndoe'],
'widescreen' => true
]);
{
"permalink": {
"id": "6643685b858f54f55edef723",
"created_at": "2024-05-14T13:34:19.468Z",
"user_token": "9clgjJXl1NzbcmF5vfXWhAVJ",
"guest_token": "R2SdUxiqKhpBoUu0oi0pZZkZ",
"expires_at": null
},
"room": {
"id": "6643685b858f54f55edef723",
"name": "Permalink Room",
"started_at": null
},
"team": {
"name": "Testers"
},
"user": {
"id": "johndoe",
"name": "John Doe",
"avatar": null,
"guest": false,
"joined_at": "2024-05-14T13:34:19.468Z"
},
"options": {
"show_names": true,
"show_label": true,
"exit_url": null,
"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_name": null,
"layout_map": null,
"voice_activation": false,
"custom_fields": {},
"widescreen": true,
"background_color": "#121212"
},
"links": {
"self": "https://api.eyeson.team/permalink/6643685b858f54f55edef723",
"gui": "https://app.eyeson.team/permalink?9clgjJXl1NzbcmF5vfXWhAVJ",
"guest_join": "https://app.eyeson.team/permalink?guest=R2SdUxiqKhpBoUu0oi0pZZkZ"
}
}
Please note that the room_id is ignored since it is created at runtime.
Find a list of useful parameters below. You can use all parameters from the start meeting action.
expires_at
Type: ISO8601 Timestamp (optional)
Optional Timestamp when permalink meetings can no longer be started. E.g. 2024-05-15T10:00:00.000Z
user[id]
Type: 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]
Type: STRING (required)
Display name of the user.
options[exit_url]
Type: URL (optional)
Exit destination, URL for exit button in Prebuilt-UI.
options[recording_available]
Type: BOOLEAN (optional)
Default: true
Allow recordings.
options[widescreen]
Type: BOOLEAN (optional)
Default: true
Run meeting in widescreen mode (16:9 aspect ratio).
options[custom_fields][locale]
Type: Language Code (optional)
User preferred language code (en, de, fr) in Prebuilt-UI.
The links[gui] is the host link and should be kept a secret as it can be used to start the meeting.
The links[guest_join] can be shared and will guide people into a waiting room until the meeting is started.
If you're using the GUI and Guest-join links, the Start meeting from permalink and Register guest user actions are handled automatically.
Get list of permalinks
GET /permalink
HEADERS Authorization
RESPONSES 200 OK, 401 Unauthorized, 423 LOCKED
Example Req/Res: Get list of permalinks
- curl
- node sdk
- go sdk
- php sdk
curl -X GET \
-H "Authorization: $API_KEY" \
"https://api.eyeson.team/permalink?expired=false"
const apiKey = '...';
const eyeson = new Eyeson({ apiKey });
const list = await eyeson.permalink.getAll({ expired: false });
// TBD
$apiKey = '...';
$eyeson = new Eyeson($apiKey);
$list = $eyeson->permalink->getAll(['expired' => false]);
{
"page": 1,
"limit": 25,
"total": 3,
"items": [
{
... // see permalink object above
},
{
...
},
{
...
}
]
}
page
Type: INTEGER (optional)
Default: 1
Specifies the results page to fetch (up to 25 permalinks per page).
This parameter uses 1-based indexing, meaning the first page is 1, second page is 2, etc. Must be greater than 0.
limit
Type: INTEGER (optional)
Default: 25
expired
Type: BOOLEAN (optional)
Omit for full list, true for only expired, false for only non-expired