API reference
Calls
1 operations. Base URL: https://api.ringura.com/api/v1. Authenticate with a bearer token that carries the scope named on each operation.
POST /api/v1/calls
Click-to-call from a CRM: the named agent's phone rings first, then the number, presented from one of your verified numbers, through the outbound gate. A refusal (calling hours, DNC, consent, a number called in the last 10 minutes, telephony not active) answers 409 with the reason.
Parameters
| Name | In | Type | Required | Constraints |
|---|---|---|---|---|
Idempotency-Key | header | string | No | matches ^[A-Za-z0-9_.:-]{8,100}$ |
Request body
JSON (Content-Type: application/json).
| Field | Type | Required | Constraints |
|---|---|---|---|
number | string | Yes | 4-32 characters |
defaultCountry | string | No | matches ^[A-Z]{2}$ |
agentId | string (uuid) | No | |
queueId | string (uuid) | No | |
contactId | string (uuid) | No | |
callerId | string (uuid) | No | |
purpose | string | No | one of "service", "marketing" |
Response
201 JSON with these fields.
| Field | Type | Required | Constraints |
|---|---|---|---|
request | object | Yes | |
request.id | string (uuid) | Yes | |
request.source | string | Yes | |
request.e164 | string | Yes | |
request.purpose | string | Yes | |
request.status | string | Yes | one of "waiting_agent", "dialling", "refused", "failed", "expired" |
request.refusal | string or null | Yes | |
request.agentId | string (uuid) or null | Yes | |
request.queueId | string (uuid) or null | Yes | |
request.contactId | string (uuid) or null | Yes | |
request.callId | string (uuid) | Yes | |
request.createdAt | string (date-time) | Yes | |
request.dialledAt | string (date-time) or null | Yes |
Errors
400, 401, 403, 404, 409, 422, 429. What each status means
Example request
curl -X POST 'https://api.ringura.com/api/v1/calls' \
-H "Authorization: Bearer $CC_TOKEN" \
-H 'Idempotency-Key: order-2027-0001' \
-H 'Content-Type: application/json' \
-d '{
"number": "+441632960000"
}'