Get Call
curl --request GET \
--url https://api.telli.com/v1/get-call/{id} \
--header 'Authorization: <api-key>'import requests
url = "https://api.telli.com/v1/get-call/{id}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.telli.com/v1/get-call/{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://api.telli.com/v1/get-call/{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: <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://api.telli.com/v1/get-call/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<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://api.telli.com/v1/get-call/{id}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telli.com/v1/get-call/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"call": {
"call_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"attempt": 123,
"from_number": "<string>",
"to_number": "<string>",
"direction": "<string>",
"external_contact_id": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"contact_details": {},
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"triggered_at": 123,
"triggered_at_iso": "<string>",
"started_at": 123,
"started_at_iso": "<string>",
"ended_at": 123,
"ended_at_iso": "<string>",
"call_length_min": 123,
"call_status": "COMPLETED",
"transcript": "<string>",
"transcriptObject": [
{
"role": "user",
"content": "<string>"
}
],
"call_analysis": {},
"call_outcome": {},
"outcomes": [
{
"key": "<string>",
"dataType": "boolean",
"value": true,
"reason": "<string>"
}
],
"collected_data": {},
"booked_slot_for": "<string>",
"appointments": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"starts_at": "2023-11-07T05:31:56Z",
"timezone": "<string>",
"status": "booked",
"hosts": [
{
"name": "<string>",
"email": "<string>"
}
],
"reference": {
"provider": "calendly",
"event_type_uri": "<string>",
"event_uri": "<string>",
"invitee_uri": "<string>",
"reschedule_url": "<string>",
"cancel_url": "<string>"
}
}
],
"recording_url": "<string>",
"transfer": {
"destination": "<string>",
"completed_at": "<string>"
},
"ended_reason": "agent-ended-call",
"state": "queued",
"status": "connected",
"follow_up": {
"type": "agent_follow_up",
"scheduled_at": "2023-11-07T05:31:56Z"
}
},
"contact": {
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_contact_id": "<string>",
"external_url": "<string>",
"created_at": "<string>",
"gender": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"phone_number": "<string>",
"in_call_since": "<string>",
"reached_at": "<string>",
"contact_details": {},
"call_attempts": 123,
"next_call_at": "<string>",
"email": "<string>",
"timezone": "<string>",
"salutation": "<string>",
"status": "new"
}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Call Endpoints
Get Call
Retrieves detailed information about a specific call by its ID, including call metadata, transcript, analysis, and the associated contact.
GET
/
v1
/
get-call
/
{id}
Get Call
curl --request GET \
--url https://api.telli.com/v1/get-call/{id} \
--header 'Authorization: <api-key>'import requests
url = "https://api.telli.com/v1/get-call/{id}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.telli.com/v1/get-call/{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://api.telli.com/v1/get-call/{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: <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://api.telli.com/v1/get-call/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<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://api.telli.com/v1/get-call/{id}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telli.com/v1/get-call/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"call": {
"call_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"attempt": 123,
"from_number": "<string>",
"to_number": "<string>",
"direction": "<string>",
"external_contact_id": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"contact_details": {},
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"triggered_at": 123,
"triggered_at_iso": "<string>",
"started_at": 123,
"started_at_iso": "<string>",
"ended_at": 123,
"ended_at_iso": "<string>",
"call_length_min": 123,
"call_status": "COMPLETED",
"transcript": "<string>",
"transcriptObject": [
{
"role": "user",
"content": "<string>"
}
],
"call_analysis": {},
"call_outcome": {},
"outcomes": [
{
"key": "<string>",
"dataType": "boolean",
"value": true,
"reason": "<string>"
}
],
"collected_data": {},
"booked_slot_for": "<string>",
"appointments": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"starts_at": "2023-11-07T05:31:56Z",
"timezone": "<string>",
"status": "booked",
"hosts": [
{
"name": "<string>",
"email": "<string>"
}
],
"reference": {
"provider": "calendly",
"event_type_uri": "<string>",
"event_uri": "<string>",
"invitee_uri": "<string>",
"reschedule_url": "<string>",
"cancel_url": "<string>"
}
}
],
"recording_url": "<string>",
"transfer": {
"destination": "<string>",
"completed_at": "<string>"
},
"ended_reason": "agent-ended-call",
"state": "queued",
"status": "connected",
"follow_up": {
"type": "agent_follow_up",
"scheduled_at": "2023-11-07T05:31:56Z"
}
},
"contact": {
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_contact_id": "<string>",
"external_url": "<string>",
"created_at": "<string>",
"gender": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"phone_number": "<string>",
"in_call_since": "<string>",
"reached_at": "<string>",
"contact_details": {},
"call_attempts": 123,
"next_call_at": "<string>",
"email": "<string>",
"timezone": "<string>",
"salutation": "<string>",
"status": "new"
}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}call_analysis and call_outcome are deprecated and will be removed on 1st of February 2027. Both fields are retained for compatibility until then. Update your integrations to use outcomes before the removal date.Appointments
call.appointments contains bookings recorded during the call.
Each entry includes id, starts_at, timezone, status, hosts, and reference. These are saved booking snapshots, not current provider status. The array is empty when no bookings were recorded. Older calls can have booked_slot_for set while appointments is empty.
Call status mapping
Do not usecall_status for new integrations. It is deprecated and returned only for backward compatibility. Use state, status, and follow_up instead.
call_status | state | status | follow_up |
|---|---|---|---|
INITIATED | queued | null | null |
RINGING | ringing | null | null |
IN_PROGRESS | in_progress | null | null |
IN_PROGRESS | processing | null | null |
COMPLETED | ended | connected | null |
ANSWERED | ended | connected | set |
NOT_REACHED | ended | not_connected | null |
VOICEMAIL | ended | voicemail | null |
ERROR | ended | failed | null |
NOT_REACHED | ended | rejected | null |
Was this page helpful?