The Callaba video conferencing API implements a minimal code integration strategy for embedding real-time video communication into your infrastructure. Only one request is required to create a room and obtain a video conference or online webinar as an embedded widget. It works in standard browsers and across all platforms, including Linux, Windows, MacOS, Android, and iOS, without the need for additional downloads or applications.
1. Create an “A” DNS record to associate your domain name with the IP address of your server. You can add “A” DNS records in the DNS management interface of your domain registrar or CDN/DNS hosting provider, like CloudFlare.
2. Open Callaba > General Settings > scroll down to the Server Settings section.
Specify your Domain name and Streaming domain name, WebRTC domain name, Turn domain name.
3. Create SSL. Choose either the free auto-renewing Let’s Encrypt X.509 certificate or upload your own certificate
4. Create a room.
5. Open the Meeting URL in the browser on your computer or mobile device. Also you can embed this room in your website.
6. Done! Share the link with other people who need access to the video stream.
Creates a new room for hosting an online conference. After the request is made, the room is available for embedding in two modes:
https://my-project-domain/conferences/65380ec8a33be4cd87d03e4f
https://my-project-domain/conferences-view-mode/65380ec8a33be4cd87d03e4f
Room name. This parameter is required.
Controls the state of the room. Possible values are true or false. Disabling the room will make it drop all connections and free up resources. The default value is true.
curl -X POST https://your-project-domain/api/conferences/create \-H "x-access-token: YOUR-API-TOKEN" \-H "Content-Type: application/json" \-d '{"name": "First room","mediaType": "MEDIA_TYPE_VIDEO_AUDIO","max_participants": 50,"active": true}'
{"_id": "65380ec8a33be4cd87d03e4f","name": "First room","user_id": "652ecb03a33be4cd87cfd990","mediaType": "MEDIA_TYPE_VIDEO_AUDIO","max_participants": 50,"active": true}
Use this method to change the room settings.
This method can take the same parameters as /api/conferences/create method
Identifier of the room that needs to be changed.
curl -X POST https://your-project-domain/api/conferences/update \-H "x-access-token: YOUR-API-TOKEN" \-H "Content-Type: application/json" \-d '{"name": "First room","mediaType": "MEDIA_TYPE_VIDEO_AUDIO","max_participants": 50,"active": true}'
{"_id": "65380ec8a33be4cd87d03e4f","name": "First room","user_id": "652ecb03a33be4cd87cfd990","mediaType": "MEDIA_TYPE_VIDEO_AUDIO","max_participants": 50,"active": true}
Use this method to delete room.
Identifier of the room that needs to be removed.
curl -X DELETE https://your-project-domain/api/conferences/remove \-H "x-access-token: YOUR-API-TOKEN" \-H "Content-Type: application/json" \-d '{"id": "65380ec8a33be4cd87d03e4f"}'
{success: true}
Use this method to get a list of rooms.
curl -X 'POST' \'http://1.2.3.4/api/conferences/getAll' \-H 'accept: application/json' \-H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYyMGJlYjA2MTM3YmIzMDAyYzhmNjAwYSIsImlhdCI6MTY0Njc0Njk4MiwiZXhwIjoxNjQ5MzM4OTgyfQ.qRphsD6OD8KYnRL5fUX8XEckp1XNCmZAYldWWnZbAxE' \-d ''
[{"_id": "65380ec8a33be4cd87d03e4f","name": "First room","user_id": "652ecb03a33be4cd87cfd990","mediaType": "MEDIA_TYPE_VIDEO_AUDIO","max_participants": 50,"active": true}]
Getting the room info by ID
Room identifier.
curl -X 'POST' \'http://1.2.3.4/api/conferences/getById' \-H 'accept: application/json' \-H 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYyMGJlYjA2MTM3YmIzMDAyYzhmNjAwYSIsImlhdCI6MTY0Njc0Njk4MiwiZXhwIjoxNjQ5MzM4OTgyfQ.qRphsD6OD8KYnRL5fUX8XEckp1XNCmZAYldWWnZbAxE' \-H 'Content-Type: application/json' \-d '{"id": "622c93b366b14700326ff543"}'
{"name": "First room","mediaType": "MEDIA_TYPE_VIDEO_AUDIO","max_participants": 50,"active": true}