Skip to main content
flag
Mon - Fri   10:00 – 18:00

Click to Call Status

API Documentation / Voice Click to Call / Click to Call Status

Base URL for your account: https://cpaas.studio

GET POST /api/voice/v1/click2call/status

Look up one Click to Call by uid, event_id, or reference. Requires a key scoped to voice.click2call or all.

Parameters

Param Type Required Notes
uid string one of uid/event_id/reference The uid from the send response.
event_id string one of uid/event_id/reference The event_id from the send response.
reference string one of uid/event_id/reference Your own label — resolves to the most recent match.

Request example

curl "https://cpaas.studio/api/voice/v1/click2call/status?uid=CC7Q2M4X8A1B" \
  -H "X-API-KEY: cpk_xxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
<?php
$query = http_build_query(['uid' => 'CC7Q2M4X8A1B']);
$ch = curl_init("https://cpaas.studio/api/voice/v1/click2call/status?{$query}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['X-API-KEY: cpk_xxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

Success response (data)

{
    "uid": "CC7Q2M4X8A1B",
    "event_id": "c2c-AB12CD34EF",
    "reference": "lead-4471",
    "status": "answered",
    "disposition": "ANSWERED",
    "agent_number": "9526071065",
    "customer_number": "9812345678",
    "ring_time": 20,
    "duration_seconds": 52,
    "billsec": 47,
    "billing_status": "billed",
    "billable_units": 2,
    "recording_available": true,
    "submitted_at": "2026-09-11T10:20:30+00:00",
    "answered_at": "2026-09-11T10:20:41+00:00",
    "completed_at": "2026-09-11T10:21:33+00:00",
    "created_at": "2026-09-11T10:20:30+00:00"
}

Errors

Code Status When
C2C_NOT_FOUND 404 uid/event_id/reference doesn't match any Click to Call on your account.
REQ_VALIDATION_FAILED 422 None of uid, event_id, reference were supplied.

Notes

  • status becomes answered / no_answer / busy / failed once the operator CDR lands; billing_status becomes billed / unlimited / not_billable. A call refused for concurrency is status rejected, billing_status not_applicable.
  • A billed row also carries billable_units — the pulses charged against your plan's quota (1 on a per-call plan).
  • The recording, when recording_available is true, is downloadable from the panel — the API does not stream it.

Need more context? See Getting started for authentication, the response envelope, and the full error-code reference.