All developer pages

API reference

Contacts

4 operations. Base URL: https://api.ringura.com/api/v1. Authenticate with a bearer token that carries the scope named on each operation.

GET /api/v1/contacts

List contacts, oldest first; filter by phone (E.164) or e-mail for screen-pop.

Scope
contacts:read
Operation id
listContacts

Parameters

Parameters of GET /api/v1/contacts
NameInTypeRequiredConstraints
limitqueryintegerNo1 to 200
cursorquerystringNoat most 400 characters
phonequerystringNomatches ^[+][1-9][0-9]{6,14}$
emailquerystringNoat most 320 characters

Response

200 JSON with these fields.

Response fields of GET /api/v1/contacts
FieldTypeRequiredConstraints
dataarray of objectYes
data[].idstring (uuid)Yes
data[].displayNamestring or nullYes
data[].languagestring or nullYes
data[].timeZonestring or nullYes
data[].identifiersarray of objectYes
data[].identifiers[].kindstringYes
data[].identifiers[].valuestringYes
data[].identifiers[].scopestringYes
data[].identifiers[].verifiedbooleanYes
data[].createdAtstring (date-time)Yes
nextCursorstring or nullYes

Errors

400, 401, 403, 404, 409, 429. What each status means

Example request

curl -X GET 'https://api.ringura.com/api/v1/contacts' \
  -H "Authorization: Bearer $CC_TOKEN"

POST /api/v1/contacts

Create a contact with at least one phone number or e-mail address.

Scope
contacts:write
Operation id
createContact
Idempotent
Send Idempotency-Key to make a retry safe

Parameters

Parameters of POST /api/v1/contacts
NameInTypeRequiredConstraints
Idempotency-KeyheaderstringNomatches ^[A-Za-z0-9_.:-]{8,100}$

Request body

JSON (Content-Type: application/json).

Request body of POST /api/v1/contacts
FieldTypeRequiredConstraints
displayNamestringNo1-200 characters
languagestringNomatches ^[a-z]{2,3}(-[A-Za-z0-9]{1,8})*$
timeZonestringNoat most 64 characters
identifiersarray of objectYesat least 1 items at most 10 items
identifiers[].kindstringYesone of "e164", "email"
identifiers[].valuestringYes3-320 characters

Response

201 JSON with these fields.

Response fields of POST /api/v1/contacts
FieldTypeRequiredConstraints
idstring (uuid)Yes
displayNamestring or nullYes
languagestring or nullYes
timeZonestring or nullYes
identifiersarray of objectYes
identifiers[].kindstringYes
identifiers[].valuestringYes
identifiers[].scopestringYes
identifiers[].verifiedbooleanYes
createdAtstring (date-time)Yes

Errors

400, 401, 403, 404, 409, 422, 429. What each status means

Example request

curl -X POST 'https://api.ringura.com/api/v1/contacts' \
  -H "Authorization: Bearer $CC_TOKEN" \
  -H 'Idempotency-Key: order-2027-0001' \
  -H 'Content-Type: application/json' \
  -d '{
  "identifiers": [
    {
      "kind": "e164",
      "value": "example"
    }
  ]
}'

GET /api/v1/contacts/{id}

One contact with its identifiers.

Scope
contacts:read
Operation id
getContact

Parameters

Parameters of GET /api/v1/contacts/{id}
NameInTypeRequiredConstraints
idpathstring (uuid)Yes

Response

200 JSON with these fields.

Response fields of GET /api/v1/contacts/{id}
FieldTypeRequiredConstraints
idstring (uuid)Yes
displayNamestring or nullYes
languagestring or nullYes
timeZonestring or nullYes
identifiersarray of objectYes
identifiers[].kindstringYes
identifiers[].valuestringYes
identifiers[].scopestringYes
identifiers[].verifiedbooleanYes
createdAtstring (date-time)Yes

Errors

400, 401, 403, 404, 409, 429. What each status means

Example request

curl -X GET 'https://api.ringura.com/api/v1/contacts/0192f5a0-7c1e-7d3a-9b2e-3f4a5b6c7d8e' \
  -H "Authorization: Bearer $CC_TOKEN"

PATCH /api/v1/contacts/{id}

Change a contact's name, language or time zone.

Scope
contacts:write
Operation id
updateContact
Idempotent
Send Idempotency-Key to make a retry safe

Parameters

Parameters of PATCH /api/v1/contacts/{id}
NameInTypeRequiredConstraints
idpathstring (uuid)Yes
Idempotency-KeyheaderstringNomatches ^[A-Za-z0-9_.:-]{8,100}$

Request body

JSON (Content-Type: application/json).

Request body of PATCH /api/v1/contacts/{id}
FieldTypeRequiredConstraints
displayNamestring or nullNo1-200 characters
languagestring or nullNomatches ^[a-z]{2,3}(-[A-Za-z0-9]{1,8})*$
timeZonestring or nullNoat most 64 characters

Response

200 JSON with these fields.

Response fields of PATCH /api/v1/contacts/{id}
FieldTypeRequiredConstraints
idstring (uuid)Yes
displayNamestring or nullYes
languagestring or nullYes
timeZonestring or nullYes
identifiersarray of objectYes
identifiers[].kindstringYes
identifiers[].valuestringYes
identifiers[].scopestringYes
identifiers[].verifiedbooleanYes
createdAtstring (date-time)Yes

Errors

400, 401, 403, 404, 409, 422, 429. What each status means

Example request

curl -X PATCH 'https://api.ringura.com/api/v1/contacts/0192f5a0-7c1e-7d3a-9b2e-3f4a5b6c7d8e' \
  -H "Authorization: Bearer $CC_TOKEN" \
  -H 'Idempotency-Key: order-2027-0001' \
  -H 'Content-Type: application/json' \
  -d '{
  "displayName": "Example"
}'