cURL
curl --request GET \
--url https://api.puretalk.ai/api/calls \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.puretalk.ai/api/calls"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.puretalk.ai/api/calls', 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.puretalk.ai/api/calls",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <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.puretalk.ai/api/calls"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<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.puretalk.ai/api/calls")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.puretalk.ai/api/calls")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 192,
"next": "https://api.puretalk.ai/api/calls?page=2",
"previous": "https://api.puretalk.ai/api/calls?page=1",
"results": [
{
"call_analysis": {
"summary": "This is a summary of the call",
"call_completion_summary": "This is a summary of the call completion",
"call_completion": "This is a summary of the call completion",
"task_completion_summary": "This is a summary of the task completion",
"task_completion": "This is a summary of the task completion",
"post_analysis_data": [
{
"name": "This is the name of the post analysis data",
"value": "This is the value of the post analysis data"
}
]
},
"protocol": "web",
"call_id": "be8b84ed-16d8-459e-b71c-b0f54fce5ec1",
"from_number": "+1234567890",
"to_number": "+1234567890",
"assistant_id": "217b769d-befe-47a2-83bc-b014c2e19ea5",
"assistant_name": "Appointment Setter",
"voice_id": "Puretalktts-e0c5f2f95332",
"voice_name": "Gabrielle",
"start_time": "2025-05-19T10:15:22.230876-04:00",
"end_time": "2025-05-19T10:15:22.230876-04:00",
"call_duration_seconds": 123,
"call_type": "outgoing",
"transcript": "This is the transcript of the call",
"transcript_object": [
{
"role": "user",
"content": "This is the content of the transcript",
"function_name": "get_weather",
"interrupted": false,
"function_args": "{\"location\": \"New York\"}",
"tool_calls": [],
"turn_latency": {
"latency": 1.5,
"eou_delay": 0.2,
"llm_latency": 0.8,
"tts_latency": 0.5
}
}
],
"status": "completed",
"provider_call_id": "CA96878fe2501423e1f018a7ab6db5498b",
"metadata": "This is the metadata of the call",
"variables": [
"<string>"
],
"answered_by": "human",
"call_recording_enabled": true,
"call_recording_url": "https://api.puretalk.ai/api/calls/1234567890/recording",
"campaign_id": "<string>",
"sentiment": "positive",
"is_billed": true
}
]
}{
"err": true,
"msg": "An error occurred."
}Calls
Get Call List
Returns all calls from the system that the user has access to
GET
/
calls
cURL
curl --request GET \
--url https://api.puretalk.ai/api/calls \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.puretalk.ai/api/calls"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.puretalk.ai/api/calls', 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.puretalk.ai/api/calls",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <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.puretalk.ai/api/calls"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<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.puretalk.ai/api/calls")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.puretalk.ai/api/calls")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 192,
"next": "https://api.puretalk.ai/api/calls?page=2",
"previous": "https://api.puretalk.ai/api/calls?page=1",
"results": [
{
"call_analysis": {
"summary": "This is a summary of the call",
"call_completion_summary": "This is a summary of the call completion",
"call_completion": "This is a summary of the call completion",
"task_completion_summary": "This is a summary of the task completion",
"task_completion": "This is a summary of the task completion",
"post_analysis_data": [
{
"name": "This is the name of the post analysis data",
"value": "This is the value of the post analysis data"
}
]
},
"protocol": "web",
"call_id": "be8b84ed-16d8-459e-b71c-b0f54fce5ec1",
"from_number": "+1234567890",
"to_number": "+1234567890",
"assistant_id": "217b769d-befe-47a2-83bc-b014c2e19ea5",
"assistant_name": "Appointment Setter",
"voice_id": "Puretalktts-e0c5f2f95332",
"voice_name": "Gabrielle",
"start_time": "2025-05-19T10:15:22.230876-04:00",
"end_time": "2025-05-19T10:15:22.230876-04:00",
"call_duration_seconds": 123,
"call_type": "outgoing",
"transcript": "This is the transcript of the call",
"transcript_object": [
{
"role": "user",
"content": "This is the content of the transcript",
"function_name": "get_weather",
"interrupted": false,
"function_args": "{\"location\": \"New York\"}",
"tool_calls": [],
"turn_latency": {
"latency": 1.5,
"eou_delay": 0.2,
"llm_latency": 0.8,
"tts_latency": 0.5
}
}
],
"status": "completed",
"provider_call_id": "CA96878fe2501423e1f018a7ab6db5498b",
"metadata": "This is the metadata of the call",
"variables": [
"<string>"
],
"answered_by": "human",
"call_recording_enabled": true,
"call_recording_url": "https://api.puretalk.ai/api/calls/1234567890/recording",
"campaign_id": "<string>",
"sentiment": "positive",
"is_billed": true
}
]
}{
"err": true,
"msg": "An error occurred."
}Authorizations
Authorization header containing API key. You can find your API key in the dashboard under 'API Keys'.
Query Parameters
The page number to return
The maximum number of results to return
The type of call (e.g., incoming, outgoing)
Available options:
incoming, outgoing The status of the call (e.g., completed, in-progress)
Available options:
completed, in-progress, failed The ID of the voice used
The ID of the assistant
The originating phone number
The destination phone number
The ID of the call
The protocol of the call
Available options:
web, voip The sentiment of the call
Available options:
positive, negative, neutral Response
Calls response
The total number of calls
Example:
192
The next page of calls
Example:
"https://api.puretalk.ai/api/calls?page=2"
The previous page of calls
Example:
"https://api.puretalk.ai/api/calls?page=1"
The list of calls
Show child attributes
Show child attributes
Was this page helpful?
⌘I