Get Call
curl --request GET \
--url https://allomia.com/api/calls/{id} \
--header 'Authorization: <authorization>'import requests
url = "https://allomia.com/api/calls/{id}"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://allomia.com/api/calls/{id}', 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://allomia.com/api/calls/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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://allomia.com/api/calls/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://allomia.com/api/calls/{id}")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://allomia.com/api/calls/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"organizationId": "<string>",
"callType": "<string>",
"agentId": "<string>",
"agentName": "<string>",
"teamId": "<string>",
"teamName": "<string>",
"phoneNumber": "<string>",
"callStartedAt": "<string>",
"callEndedAt": "<string>",
"callDurationSeconds": "<string>",
"callEndedReason": "<string>",
"userName": "<string>",
"userPhoneNumber": "<string>",
"userPrimaryIntent": "<string>",
"userSentiment": "<string>",
"callOutcome": "<string>",
"callSummary": "<string>",
"callSummaryFr": "<string>",
"transcriptUrl": "<string>",
"recordingUrl": "<string>",
"createdAt": "<string>"
}Calls
Get Call
Retrieves details for a specific call by ID
GET
/
api
/
calls
/
{id}
Get Call
curl --request GET \
--url https://allomia.com/api/calls/{id} \
--header 'Authorization: <authorization>'import requests
url = "https://allomia.com/api/calls/{id}"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://allomia.com/api/calls/{id}', 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://allomia.com/api/calls/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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://allomia.com/api/calls/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://allomia.com/api/calls/{id}")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://allomia.com/api/calls/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"organizationId": "<string>",
"callType": "<string>",
"agentId": "<string>",
"agentName": "<string>",
"teamId": "<string>",
"teamName": "<string>",
"phoneNumber": "<string>",
"callStartedAt": "<string>",
"callEndedAt": "<string>",
"callDurationSeconds": "<string>",
"callEndedReason": "<string>",
"userName": "<string>",
"userPhoneNumber": "<string>",
"userPrimaryIntent": "<string>",
"userSentiment": "<string>",
"callOutcome": "<string>",
"callSummary": "<string>",
"callSummaryFr": "<string>",
"transcriptUrl": "<string>",
"recordingUrl": "<string>",
"createdAt": "<string>"
}Get Call
Retrieves detailed information for a specific call by ID. This endpoint can be accessed using either a tenant API key or an organization API key. When using an organization API key, you can only access calls that belong to that specific organization.Headers
string
required
API key is required. Enter either your tenant-specific or
organization-specific API key in the format ‘Bearer YOUR-API-KEY’
Path Parameters
string
required
The unique identifier of the call to retrieve
Response
string
Unique identifier for the call
string
Organization ID the call belongs to
string
Type of call: “Inbound”, “Outbound”, or “Web”
string
ID of the agent/assistant that handled the call
string
Name of the agent/assistant
string
ID of the team that owns the assistant.
null for organizations that don’t use teams.string
Name of the team that owns the assistant.
null for organizations that don’t use teams.string
Phone number associated with the call
string
Timestamp when the call started (ISO 8601 format: “2025-05-28T14:20:15Z”)
string
Timestamp when the call ended (ISO 8601 format: “2025-05-28T14:23:15Z”)
string
Duration of the call in seconds
string
Reason the call ended
string
Name of the user/patient (if available)
string
Phone number of the user (if available)
string
Primary intent detected from the call
string
Detected sentiment of the user during the call
string
AI-extracted high-level outcome of the call (e.g.
appointment_confirmed, voicemail_left, transferred_to_human).string
AI-generated English summary of the call (if available)
string
AI-generated French (
fr-CA) summary of the call. Returned alongside callSummary.string
A secure, time-limited URL to the plain-text transcript (
.txt). The URL is pre-signed and expires after 1 hour. Re-fetch the call to obtain a fresh URL.string
A secure, time-limited URL to the call recording (audio file from the voice provider). The URL is pre-signed and expires after 1 hour. Re-fetch the call to obtain a fresh URL.
string
When the call record was created (ISO 8601 format: “2025-05-28T14:23:45Z”)
Security Features
- Pre-signed URLs: The
transcriptUrlandrecordingUrlare automatically generated as secure, signed URLs - Time-limited Access: URLs expire after 1 hour for security
- Authentication Required: API key required to get the URLs
- Organization Isolation: Users can only access calls from their authorized organizations
Example Request
curl -X GET https://allomia.com/api/calls/f6a7b8c9-d0e1-2345-fabc-678901234567 \
-H "Authorization: Bearer YOUR-API-KEY"
Example Response
{
"id": "f6a7b8c9-d0e1-2345-fabc-678901234567",
"organizationId": "a1b2c3d4-e5f6-7890-abcd-123456789012",
"callType": "Inbound",
"agentId": "g7b8c9d0-e1f2-3456-abcd-789012345678",
"agentName": "Dr. Smith Assistant",
"teamId": "t1e2a3m4-5678-9012-abcd-ef1234567890",
"teamName": "Front Desk",
"phoneNumber": "+15559876543",
"callStartedAt": "2025-05-28T14:20:15Z",
"callEndedAt": "2025-05-28T14:23:15Z",
"callDurationSeconds": "180",
"callEndedReason": "customer-ended-call",
"userName": "Jane Smith",
"userPhoneNumber": "+15551234567",
"userPrimaryIntent": "schedule_appointment",
"userSentiment": "positive",
"callOutcome": "appointment_confirmed",
"callSummary": "Patient called to schedule a follow-up appointment for next week. Appointment was scheduled for Tuesday at 2:00 PM.",
"callSummaryFr": "La patiente a appelé pour planifier un rendez-vous de suivi la semaine prochaine. Le rendez-vous a été fixé au mardi à 14h00.",
"transcriptUrl": "https://allomiastorageprd.blob.core.windows.net/allomia-web-app/a1b2c3d4/transcripts/transcript.txt?sv=2023-01-03&se=2025-01-01T15%3A30%3A00Z&sr=b&sp=r&sig=SECURE_SIGNATURE",
"recordingUrl": "https://allomiastorageprd.blob.core.windows.net/allomia-web-app/a1b2c3d4/recordings/recording.wav?sv=2023-01-03&se=2025-01-01T15%3A30%3A00Z&sr=b&sp=r&sig=SECURE_SIGNATURE",
"createdAt": "2025-05-28T14:23:45Z"
}
Error Responses
401: Unauthorized
401: Unauthorized
{
"error": "Invalid or missing API key"
}
404: Call not found
404: Call not found
{
"error": "Call not found for the provided ID"
}
500: Error
500: Error
{
"error": "Internal server error occurred"
}