Skip to content

Compliance

Manage your Do-Not-Call (DNC) registry. Numbers on this list are automatically rejected when PSTN participants are queued through the Calls or Batch API.

Add to DNC List

http
POST /v1/dnc

Request Body

FieldTypeRequiredDefaultDescription
phone_numberstringYesPhone number to blocklist in E.164 format (e.g., +15550009999)
reasonstringNo"API request"Human-readable reason for blocklisting

Example Request

bash
curl -X POST https://api.rymi.live/v1/dnc \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "+15550009999",
    "reason": "Customer opted out via email"
  }'

Response 201

json
{
  "status": "blocklisted",
  "phone_number": "+15550009999"
}

Errors

StatusMeaning
400Invalid or missing phone_number
401Missing or invalid API key
409Number is already on the DNC list

List DNC Entries

http
GET /v1/dnc

Retrieve a paginated list of blocklisted phone numbers.

Query Parameters

ParameterTypeDefaultDescription
limitinteger50Max records to return (max 200)
offsetinteger0Records to skip

Example Request

bash
curl "https://api.rymi.live/v1/dnc?limit=20&offset=0" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response 200

json
{
  "dnc_entries": [
    {
      "phone": "+15550009999",
      "reason": "Customer opted out via email",
      "opt_out_at": "2026-03-01T10:00:00Z"
    }
  ],
  "total": 1,
  "offset": 0,
  "limit": 20
}

Response Fields

FieldTypeDescription
phonestringBlocklisted phone number in E.164 format
reasonstringReason for blocklisting
opt_out_atstringISO 8601 timestamp when the entry was added

Errors

StatusMeaning
401Missing or invalid API key

Remove from DNC

http
DELETE /v1/dnc/:phone

Path Parameters

ParameterTypeDescription
phonestringPhone number to remove from the DNC list (E.164 format)

Example Request

bash
curl -X DELETE https://api.rymi.live/v1/dnc/+15550009999 \
  -H "Authorization: Bearer YOUR_API_KEY"

Response 200

json
{
  "status": "removed",
  "phone": "+15550009999"
}

Errors

StatusMeaning
401Missing or invalid API key
404Phone number not found on the DNC list

Bulk Import

http
POST /v1/dnc/batch

Add up to 1,000 phone numbers to the DNC list in a single request.

Request Body

FieldTypeRequiredDefaultDescription
phone_numbersstring[]YesArray of phone numbers in E.164 format (max 1,000)
reasonstringNo"Bulk API import"Shared reason applied to all entries

Example Request

bash
curl -X POST https://api.rymi.live/v1/dnc/batch \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_numbers": ["+15550009999", "+15550008888", "+15550007777"],
    "reason": "Customer opt-out list from CRM export"
  }'

Response 201

json
{
  "status": "blocklisted",
  "count": 3
}

Duplicate numbers (already on the DNC list) are silently upserted — the operation is idempotent.

Errors

StatusMeaning
400Empty phone_numbers array or exceeds 1,000 limit
401Missing or invalid API key

Check DNC Status

http
POST /v1/dnc/check

Check whether one or more phone numbers are on the DNC list without adding them. Useful for pre-flight validation before queuing outbound calls.

Request Body

FieldTypeRequiredDefaultDescription
phone_numbersstring[]YesArray of phone numbers to check (max 500)

Example Request

bash
curl -X POST https://api.rymi.live/v1/dnc/check \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_numbers": ["+15550009999", "+15551234567"]
  }'

Response 200

json
{
  "results": [
    { "phone_number": "+15550009999", "blocked": true },
    { "phone_number": "+15551234567", "blocked": false }
  ],
  "blocked_count": 1,
  "total_checked": 2
}

Response Fields

FieldTypeDescription
resultsarrayPer-number check results
results[].phone_numberstringThe phone number that was checked
results[].blockedbooleantrue if the number is on the DNC list
blocked_countintegerTotal numbers found on the DNC list
total_checkedintegerTotal numbers checked

Errors

StatusMeaning
400Empty phone_numbers array or exceeds 500 limit
401Missing or invalid API key

How DNC Filtering Works

When you call POST /v1/calls or POST /v1/calls/batch with PSTN participants, Rymi cross-references the requested numbers against the DNC registry for the authenticated tenant. Matching numbers are rejected before queueing and return a 409 error with details about which numbers were blocked.

Bulk Operations

Use POST /v1/dnc/batch to blocklist up to 1,000 numbers at once, and POST /v1/dnc/check to verify numbers before queuing calls.