curl https://api.60db.ai/dialer/click2call/config \
-H "Authorization: Bearer your-api-key"
const res = await fetch('https://api.60db.ai/dialer/click2call/config', {
headers: { Authorization: `Bearer ${process.env.SIXTYDB_API_KEY}` },
});
const { data } = await res.json();
if (!data.api_configured) throw new Error('Click-to-call is not configured on this server');
if (!data.webhook_configured) console.warn('Calls will dial, but results will be dropped');
res = requests.get(
"https://api.60db.ai/dialer/click2call/config",
headers={"Authorization": f"Bearer {os.environ['SIXTYDB_API_KEY']}"},
)
cfg = res.json()["data"]
print(cfg["api_configured"], cfg["webhook_configured"], cfg["callback_host"])
{
"success": true,
"data": {
"api_configured": true,
"webhook_configured": true,
"callback_host": "api.60db.ai",
"limits": {
"RING_MIN": 5,
"RING_MAX": 60,
"DEFAULT_AGENT_RING": 30,
"DEFAULT_CUSTOMER_RING": 45,
"DURATION_MIN": 30,
"DURATION_MAX": 7200,
"DEFAULT_DURATION": 3600,
"METADATA_MAX_BYTES": 2048
}
}
}
Click-to-Call
Get Click-to-Call Config
Whether this deployment can place click-to-calls, and the limits it enforces
GET
/
dialer
/
click2call
/
config
curl https://api.60db.ai/dialer/click2call/config \
-H "Authorization: Bearer your-api-key"
const res = await fetch('https://api.60db.ai/dialer/click2call/config', {
headers: { Authorization: `Bearer ${process.env.SIXTYDB_API_KEY}` },
});
const { data } = await res.json();
if (!data.api_configured) throw new Error('Click-to-call is not configured on this server');
if (!data.webhook_configured) console.warn('Calls will dial, but results will be dropped');
res = requests.get(
"https://api.60db.ai/dialer/click2call/config",
headers={"Authorization": f"Bearer {os.environ['SIXTYDB_API_KEY']}"},
)
cfg = res.json()["data"]
print(cfg["api_configured"], cfg["webhook_configured"], cfg["callback_host"])
{
"success": true,
"data": {
"api_configured": true,
"webhook_configured": true,
"callback_host": "api.60db.ai",
"limits": {
"RING_MIN": 5,
"RING_MAX": 60,
"DEFAULT_AGENT_RING": 30,
"DEFAULT_CUSTOMER_RING": 45,
"DURATION_MIN": 30,
"DURATION_MAX": 7200,
"DEFAULT_DURATION": 3600,
"METADATA_MAX_BYTES": 2048
}
}
}
A readiness check. Click-to-call depends on two server-side secrets you cannot see or fix, and without them the feature fails in two very different ways:
- no API credential → nothing dials at all;
- no signing secret → calls dial, but every result is rejected at our own door and dead-lettered.
Never returns a secret, a credential or a full URL — only whether one is present, and the callback host so you can tell which environment you’re pointed at.
Request
Headers
string
required
Bearer token with your API key
Response
boolean
true when the server has a call-platform URL and credential. false means no call will dialboolean
true when the server can verify inbound call results. false means calls dial but outcomes are droppedstring | null
Host the server publishes for call results, e.g.
api.60db.ai. null when it isn’t configuredobject
Show properties
Show properties
integer
Minimum ring timeout in seconds (
5)integer
Maximum ring timeout in seconds (
60)integer
Default
agent_ring_timeout (30)integer
Default
customer_ring_timeout (45)integer
Minimum
max_duration in seconds (30)integer
Maximum
max_duration in seconds (7200)integer
Default
max_duration (3600)integer
Serialised
metadata ceiling (2048)Errors
| Status | Code | Meaning |
|---|---|---|
| 409 | DIALER_NOT_PROVISIONED | Trunk not set up (Gate T) |
Example
curl https://api.60db.ai/dialer/click2call/config \
-H "Authorization: Bearer your-api-key"
const res = await fetch('https://api.60db.ai/dialer/click2call/config', {
headers: { Authorization: `Bearer ${process.env.SIXTYDB_API_KEY}` },
});
const { data } = await res.json();
if (!data.api_configured) throw new Error('Click-to-call is not configured on this server');
if (!data.webhook_configured) console.warn('Calls will dial, but results will be dropped');
res = requests.get(
"https://api.60db.ai/dialer/click2call/config",
headers={"Authorization": f"Bearer {os.environ['SIXTYDB_API_KEY']}"},
)
cfg = res.json()["data"]
print(cfg["api_configured"], cfg["webhook_configured"], cfg["callback_host"])
{
"success": true,
"data": {
"api_configured": true,
"webhook_configured": true,
"callback_host": "api.60db.ai",
"limits": {
"RING_MIN": 5,
"RING_MAX": 60,
"DEFAULT_AGENT_RING": 30,
"DEFAULT_CUSTOMER_RING": 45,
"DURATION_MIN": 30,
"DURATION_MAX": 7200,
"DEFAULT_DURATION": 3600,
"METADATA_MAX_BYTES": 2048
}
}
}