curl --request GET \
--url https://api.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue"
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.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue', 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.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue",
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.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue"
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.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue")
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{
"as_of": "2026-08-14T18:00:00Z",
"buckets": {
"Upload": {
"completion": {
"binding_source": "window",
"binding_window": "3600",
"caveats": [],
"eta_at": "2026-08-14T19:00:00Z",
"eta_seconds": 3600,
"hold_causes": [],
"paced_batches_active": 0
},
"estimated_calls": 20,
"estimated_calls_unpaused": 20,
"paused_items": 0,
"paused_records": 0,
"queued_items": 20,
"queued_records": 1000000
}
},
"tenancy_id": "ten_9f2c1a7b3d4e5f60"
}{
"detail": "Authentication required"
}{
"detail": "Domain not found"
}{
"detail": "margins['Upload'] must be between 1 and 100"
}{
"detail": "Rate limit exceeded: 100 per 1 minute"
}Read a Domain's queue depth and estimated completion
Read how much work is waiting for this Domain and when it is expected to finish — every rate bucket in one request. Depth comes in three units: queued_items (the chunk references actually queued), queued_records (rows), and estimated_calls (projected provider calls), each with the share currently held by a pause reported separately.
estimated_calls is an ESTIMATE, and is labelled one deliberately: work aimed at the same target merges into fuller provider calls when it is claimed, so the real number of calls is usually lower and can only be known at dispatch time.
The completion object NAMES what constrains the finish time. binding_window is the window whose limit binds — "60", "3600" or "86400" — so you can see whether the per-minute, hourly or daily limit is holding the work, and binding_source says whether a rate window, a deliberately slowed release policy, or a pause is the constraint. A completion that cannot be computed reads null and ALWAYS carries a machine-readable unknown_reason — an indefinite hold, a bucket backing off near exhaustion, or a bucket with no usable budget — rather than a guessed number. Estimates are computed fresh on every read, so nothing here can go stale between requests.
Readable by any organization member. Cross-tenant access returns 404, never 403.
curl --request GET \
--url https://api.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue"
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.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue', 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.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue",
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.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue"
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.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getdialed.ai/v1/platforms/five9/domains/{tenancy_id}/queue")
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{
"as_of": "2026-08-14T18:00:00Z",
"buckets": {
"Upload": {
"completion": {
"binding_source": "window",
"binding_window": "3600",
"caveats": [],
"eta_at": "2026-08-14T19:00:00Z",
"eta_seconds": 3600,
"hold_causes": [],
"paced_batches_active": 0
},
"estimated_calls": 20,
"estimated_calls_unpaused": 20,
"paused_items": 0,
"paused_records": 0,
"queued_items": 20,
"queued_records": 1000000
}
},
"tenancy_id": "ten_9f2c1a7b3d4e5f60"
}{
"detail": "Authentication required"
}{
"detail": "Domain not found"
}{
"detail": "margins['Upload'] must be between 1 and 100"
}{
"detail": "Rate limit exceeded: 100 per 1 minute"
}Authorizations
Path Parameters
Response
Successful Response
Queued work and estimated completion for one Five9 Domain, by bucket.
buckets is keyed by the provider's operation-type name (for example
Upload) and reports every bucket the Domain has, so one request covers the
whole Domain. as_of is when the underlying counts were read.