Get Call
curl --request GET \
--url https://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId} \
--header 'apikey: <api-key>'import requests
url = "https://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId}"
headers = {"apikey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {apikey: '<api-key>'}};
fetch('https://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId}', 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://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"apikey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("apikey", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId}")
.header("apikey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["apikey"] = '<api-key>'
response = http.request(request)
puts response.read_body"{\n \"data\": [\n {\n \"sessionId\": \"v1.eu.2574867aa2e6e417.17158459999d7fa95b1b4faea599f11eb5ecf07611b0b335c3\",\n \"totalAudioMinutes\": 0,\n \"totalVideoMinutes\": 0,\n \"totalDuration\": \"00:00:00\",\n \"hasRecording\": false,\n \"initiatedAt\": 1715845999,\n \"initiator\": \"cometchat-uid-1\",\n \"mode\": \"call\",\n \"receiver\": \"cometchat-uid-2\",\n \"receiverType\": \"user\",\n \"status\": \"initiated\",\n \"totalDurationInMinutes\": 0,\n \"totalParticipants\": 0,\n \"type\": \"audio\",\n \"participants\": [\n {\n \"uid\": \"cometchat-uid-1\",\n \"totalAudioMinutes\": 0,\n \"totalVideoMinutes\": 0,\n \"isJoined\": false,\n \"totalDurationInMinutes\": 0,\n \"name\": \"Andrew Joseph\",\n \"avatar\": \"https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-1.webp\"\n },\n {\n \"uid\": \"cometchat-uid-2\",\n \"totalAudioMinutes\": 0,\n \"totalVideoMinutes\": 0,\n \"isJoined\": false,\n \"state\": \"unanswered\",\n \"totalDurationInMinutes\": 0,\n \"name\": \"George Alan\",\n \"avatar\": \"https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp\"\n }\n ],\n \"data\": {\n \"entities\": {\n \"initiator\": {\n \"entity\": {\n \"uid\": \"cometchat-uid-1\",\n \"name\": \"Andrew Joseph\",\n \"avatar\": \"https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-1.webp\"\n }\n },\n \"receiver\": {\n \"entity\": {\n \"uid\": \"cometchat-uid-2\",\n \"name\": \"George Alan\",\n \"avatar\": \"https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp\"\n }\n }\n }\n }\n }\n ]\n}""{}"Calls
Get Call
Get CometChat call details by sessionId with REST API, including participants, metrics, duration, and recording information.
GET
/
calls
/
{sessionId}
Get Call
curl --request GET \
--url https://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId} \
--header 'apikey: <api-key>'import requests
url = "https://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId}"
headers = {"apikey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {apikey: '<api-key>'}};
fetch('https://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId}', 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://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"apikey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("apikey", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId}")
.header("apikey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{appId}.call-{region}.cometchat.io/v3/calls/{sessionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["apikey"] = '<api-key>'
response = http.request(request)
puts response.read_body"{\n \"data\": [\n {\n \"sessionId\": \"v1.eu.2574867aa2e6e417.17158459999d7fa95b1b4faea599f11eb5ecf07611b0b335c3\",\n \"totalAudioMinutes\": 0,\n \"totalVideoMinutes\": 0,\n \"totalDuration\": \"00:00:00\",\n \"hasRecording\": false,\n \"initiatedAt\": 1715845999,\n \"initiator\": \"cometchat-uid-1\",\n \"mode\": \"call\",\n \"receiver\": \"cometchat-uid-2\",\n \"receiverType\": \"user\",\n \"status\": \"initiated\",\n \"totalDurationInMinutes\": 0,\n \"totalParticipants\": 0,\n \"type\": \"audio\",\n \"participants\": [\n {\n \"uid\": \"cometchat-uid-1\",\n \"totalAudioMinutes\": 0,\n \"totalVideoMinutes\": 0,\n \"isJoined\": false,\n \"totalDurationInMinutes\": 0,\n \"name\": \"Andrew Joseph\",\n \"avatar\": \"https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-1.webp\"\n },\n {\n \"uid\": \"cometchat-uid-2\",\n \"totalAudioMinutes\": 0,\n \"totalVideoMinutes\": 0,\n \"isJoined\": false,\n \"state\": \"unanswered\",\n \"totalDurationInMinutes\": 0,\n \"name\": \"George Alan\",\n \"avatar\": \"https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp\"\n }\n ],\n \"data\": {\n \"entities\": {\n \"initiator\": {\n \"entity\": {\n \"uid\": \"cometchat-uid-1\",\n \"name\": \"Andrew Joseph\",\n \"avatar\": \"https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-1.webp\"\n }\n },\n \"receiver\": {\n \"entity\": {\n \"uid\": \"cometchat-uid-2\",\n \"name\": \"George Alan\",\n \"avatar\": \"https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp\"\n }\n }\n }\n }\n }\n ]\n}""{}"Retrieve detailed information about a specific call using its session ID. This endpoint returns complete call data including all participants, their individual metrics, and recording information.
When to Use
| Scenario | Description |
|---|---|
| Call details page | Display comprehensive information about a completed call |
| Recording access | Get the recording URL for playback or download |
| Participant analytics | View individual participant metrics (join time, duration, etc.) |
| Debugging | Investigate issues with a specific call session |
Example Request
curl -X GET "https://{appId}.call-{region}.cometchat.io/v3/calls/v1.us.31780434a95d45.16923681138d75114d60d1345a22e4cc612263fb26c0b5cf92" \
-H "apikey: YOUR_REST_API_KEY"
Response Details
The response includes:- Call metadata: Type, mode, status, duration, timestamps
- Participants array: Each participant’s UID, device ID, join/leave times, and individual audio/video minutes
- Recordings array: Recording IDs, URLs, duration, and timestamps (if
hasRecordingis true)
The
sessionId is returned when a call is initiated via the SDK or can be found in the List Calls response.Participant States
Each participant in the response has astate field:
| State | Description |
|---|---|
ongoing | Participant is currently in the call |
ended | Participant left the call normally |
unanswered | Participant didn’t answer the call |
rejected | Participant rejected the call |
Was this page helpful?
⌘I