curl --request GET \
--url https://api.cloudtalk.io/v1/dialer/exports/{jobId} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.cloudtalk.io/v1/dialer/exports/{jobId}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.cloudtalk.io/v1/dialer/exports/{jobId}', 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.cloudtalk.io/v1/dialer/exports/{jobId}",
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: Basic <encoded-value>"
],
]);
$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.cloudtalk.io/v1/dialer/exports/{jobId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
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.cloudtalk.io/v1/dialer/exports/{jobId}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudtalk.io/v1/dialer/exports/{jobId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"jobId": "0197fbd1-6d0a-7e58-8f6f-1a2b3c4d5e6f",
"status": "running",
"progress": {
"currentPartition": 3,
"totalPartitions": 8
},
"createdAt": "2026-08-04T08:00:00.000Z",
"completedAt": null
}{
"statusCode": 400,
"message": "Validation failed (uuid is expected)",
"error": "Bad Request",
"correlationId": "YevPQs"
}{
"code": "UNAUTHORIZED",
"message": "You are not authorized to access this resource."
}{
"statusCode": 404,
"message": "Not Found",
"error": "Not Found",
"correlationId": "YevPQs"
}{
"statusCode": 429,
"message": "Too Many Requests",
"error": "Too Many Requests",
"correlationId": "YevPQs"
}{
"statusCode": 500,
"message": "Internal Server Error",
"error": "Internal Server Error",
"correlationId": "YevPQs"
}Get an export job's status
Polls an export job by its id. status walks queued → running → completed | failed, and progress gives a coarse hint of how far the runner has got. A job belonging to another company reads as 404.
A completed job does not expose the file here — fetch it through the export-download call (a pre-signed link is also emailed to the requester).
A jobId that is not a UUID is rejected with 400 before the job is looked up.
curl --request GET \
--url https://api.cloudtalk.io/v1/dialer/exports/{jobId} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.cloudtalk.io/v1/dialer/exports/{jobId}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.cloudtalk.io/v1/dialer/exports/{jobId}', 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.cloudtalk.io/v1/dialer/exports/{jobId}",
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: Basic <encoded-value>"
],
]);
$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.cloudtalk.io/v1/dialer/exports/{jobId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
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.cloudtalk.io/v1/dialer/exports/{jobId}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudtalk.io/v1/dialer/exports/{jobId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"jobId": "0197fbd1-6d0a-7e58-8f6f-1a2b3c4d5e6f",
"status": "running",
"progress": {
"currentPartition": 3,
"totalPartitions": 8
},
"createdAt": "2026-08-04T08:00:00.000Z",
"completedAt": null
}{
"statusCode": 400,
"message": "Validation failed (uuid is expected)",
"error": "Bad Request",
"correlationId": "YevPQs"
}{
"code": "UNAUTHORIZED",
"message": "You are not authorized to access this resource."
}{
"statusCode": 404,
"message": "Not Found",
"error": "Not Found",
"correlationId": "YevPQs"
}{
"statusCode": 429,
"message": "Too Many Requests",
"error": "Too Many Requests",
"correlationId": "YevPQs"
}{
"statusCode": 500,
"message": "Internal Server Error",
"error": "Internal Server Error",
"correlationId": "YevPQs"
}Authorizations
HTTP Basic Authentication. Use your API Access Key ID as the username and your API Access Key Secret as the password. Generate keys in the CloudTalk Dashboard under Account -> Settings -> API Keys (https://dashboard.cloudtalk.io/menu/account/settings/API-keys).
Path Parameters
Export job ID returned by the export enqueue call.
Response
The export job's current state.
State of an export job. Once it reports completed, fetch the file through the export-download call — a pre-signed link is also emailed to the requester.
Export job ID.
"0197fbd1-6d0a-7e58-8f6f-1a2b3c4d5e6f"
Job status. queued → running → completed | failed.
queued, running, completed, failed "running"
Coarse progress hint. Both counters stay at 0 until the runner picks the job up.
Show child attributes
Show child attributes
When the job was enqueued (ISO 8601, UTC).
"2026-08-04T08:00:00.000Z"
When the job finished; null while it is still queued or running.
"2026-08-04T08:05:00.000Z"