Create Room
curl --request POST \
--url https://api.pagecall.com/v1/rooms \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Meeting Room - 1",
"type": "public",
"record": true,
"max_meeting_seconds": 123,
"members": [
{
"user_id": "000585f36eed9e8fb6b655b4",
"type": "guest",
"name": "user-1"
}
]
}
'import requests
url = "https://api.pagecall.com/v1/rooms"
payload = {
"name": "Meeting Room - 1",
"type": "public",
"record": True,
"max_meeting_seconds": 123,
"members": [
{
"user_id": "000585f36eed9e8fb6b655b4",
"type": "guest",
"name": "user-1"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Meeting Room - 1',
type: 'public',
record: true,
max_meeting_seconds: 123,
members: [{user_id: '000585f36eed9e8fb6b655b4', type: 'guest', name: 'user-1'}]
})
};
fetch('https://api.pagecall.com/v1/rooms', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pagecall.com/v1/rooms",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Meeting Room - 1',
'type' => 'public',
'record' => true,
'max_meeting_seconds' => 123,
'members' => [
[
'user_id' => '000585f36eed9e8fb6b655b4',
'type' => 'guest',
'name' => 'user-1'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.pagecall.com/v1/rooms"
payload := strings.NewReader("{\n \"name\": \"Meeting Room - 1\",\n \"type\": \"public\",\n \"record\": true,\n \"max_meeting_seconds\": 123,\n \"members\": [\n {\n \"user_id\": \"000585f36eed9e8fb6b655b4\",\n \"type\": \"guest\",\n \"name\": \"user-1\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.pagecall.com/v1/rooms")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Meeting Room - 1\",\n \"type\": \"public\",\n \"record\": true,\n \"max_meeting_seconds\": 123,\n \"members\": [\n {\n \"user_id\": \"000585f36eed9e8fb6b655b4\",\n \"type\": \"guest\",\n \"name\": \"user-1\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pagecall.com/v1/rooms")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Meeting Room - 1\",\n \"type\": \"public\",\n \"record\": true,\n \"max_meeting_seconds\": 123,\n \"members\": [\n {\n \"user_id\": \"000585f36eed9e8fb6b655b4\",\n \"type\": \"guest\",\n \"name\": \"user-1\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"room": {
"id": "000585f36eed9e8fb6b655b4",
"type": "public",
"name": "Weekly Meet",
"application_id": "000585f36eed9e8fb6b655b4",
"created_user_id": "#DEPRECATED#",
"thumbnail_url": "https://example.url/thumbnail.png",
"last_thumbnail_updated_at": "#DEPRECATED#",
"room_template_id": "#DEPRECATED#",
"layout": "SixAll",
"record": true,
"meeting_time": 200000,
"is_terminated": "#DEPRECATED#",
"is_ephemeral": "#DEPRECATED#",
"is_recurring": "#DEPRECATED#",
"started_at": "2023-01-01T01:00:00.000Z",
"terminated_at": "2023-01-01T01:00:00.000Z",
"updated_at": "2023-01-01T01:00:00.000Z",
"created_at": "2023-01-01T01:00:00.000Z"
},
"paging": {
"limit": 30,
"offset": 0,
"total": 0
}
}Room Endpoints
Create Room
Create a new room
POST
/
rooms
Create Room
curl --request POST \
--url https://api.pagecall.com/v1/rooms \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Meeting Room - 1",
"type": "public",
"record": true,
"max_meeting_seconds": 123,
"members": [
{
"user_id": "000585f36eed9e8fb6b655b4",
"type": "guest",
"name": "user-1"
}
]
}
'import requests
url = "https://api.pagecall.com/v1/rooms"
payload = {
"name": "Meeting Room - 1",
"type": "public",
"record": True,
"max_meeting_seconds": 123,
"members": [
{
"user_id": "000585f36eed9e8fb6b655b4",
"type": "guest",
"name": "user-1"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Meeting Room - 1',
type: 'public',
record: true,
max_meeting_seconds: 123,
members: [{user_id: '000585f36eed9e8fb6b655b4', type: 'guest', name: 'user-1'}]
})
};
fetch('https://api.pagecall.com/v1/rooms', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pagecall.com/v1/rooms",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Meeting Room - 1',
'type' => 'public',
'record' => true,
'max_meeting_seconds' => 123,
'members' => [
[
'user_id' => '000585f36eed9e8fb6b655b4',
'type' => 'guest',
'name' => 'user-1'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.pagecall.com/v1/rooms"
payload := strings.NewReader("{\n \"name\": \"Meeting Room - 1\",\n \"type\": \"public\",\n \"record\": true,\n \"max_meeting_seconds\": 123,\n \"members\": [\n {\n \"user_id\": \"000585f36eed9e8fb6b655b4\",\n \"type\": \"guest\",\n \"name\": \"user-1\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.pagecall.com/v1/rooms")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Meeting Room - 1\",\n \"type\": \"public\",\n \"record\": true,\n \"max_meeting_seconds\": 123,\n \"members\": [\n {\n \"user_id\": \"000585f36eed9e8fb6b655b4\",\n \"type\": \"guest\",\n \"name\": \"user-1\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pagecall.com/v1/rooms")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Meeting Room - 1\",\n \"type\": \"public\",\n \"record\": true,\n \"max_meeting_seconds\": 123,\n \"members\": [\n {\n \"user_id\": \"000585f36eed9e8fb6b655b4\",\n \"type\": \"guest\",\n \"name\": \"user-1\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"room": {
"id": "000585f36eed9e8fb6b655b4",
"type": "public",
"name": "Weekly Meet",
"application_id": "000585f36eed9e8fb6b655b4",
"created_user_id": "#DEPRECATED#",
"thumbnail_url": "https://example.url/thumbnail.png",
"last_thumbnail_updated_at": "#DEPRECATED#",
"room_template_id": "#DEPRECATED#",
"layout": "SixAll",
"record": true,
"meeting_time": 200000,
"is_terminated": "#DEPRECATED#",
"is_ephemeral": "#DEPRECATED#",
"is_recurring": "#DEPRECATED#",
"started_at": "2023-01-01T01:00:00.000Z",
"terminated_at": "2023-01-01T01:00:00.000Z",
"updated_at": "2023-01-01T01:00:00.000Z",
"created_at": "2023-01-01T01:00:00.000Z"
},
"paging": {
"limit": 30,
"offset": 0,
"total": 0
}
}Webhook
When you create a room with webhook parameters, a webhook will be sent via a POST method for each participant’s entry and exit. The request body for this is as follows.{
action: "sessionLeft" | "sessionJoined",
payload: {
roomId: string,
userId?: string,
memberId: string,
sessionId: string,
sessionsCount: number,
membersCount: number,
timestamp: string // e.g. '2022-05-31T12:38:15.059Z'
}
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Request format to create a new room
Human-readable name of the room
Example:
"Meeting Room - 1"
Room can have three different type
open- anyone who obtain this room url can join and replay the meet.public- any member who haved joined in same worksapce can join and replay the meet.private- only invited workspace user can join and replay the meet.
Available options:
open, public, private Example:
"public"
All meeting will be recorded
Determines the maximum meeting time in seconds. Once this time has elapsed, the meeting room will be automatically terminated. The 'meeting time' refers to the duration during which two or more participants are connected. If a max_meeting_seconds is set, the timer UI will display the remaining meeting time, rather than the elapsed time.
Specify inviting user_id and type
Show child attributes
Show child attributes
Show child attributes
Show child attributes
⌘I

