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
POST /v1/dncRequest Body
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
phone_number | string | Yes | — | Phone number to blocklist in E.164 format (e.g., +15550009999) |
reason | string | No | "API request" | Human-readable reason for blocklisting |
Example Request
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
{
"status": "blocklisted",
"phone_number": "+15550009999"
}Errors
| Status | Meaning |
|---|---|
400 | Invalid or missing phone_number |
401 | Missing or invalid API key |
409 | Number is already on the DNC list |
List DNC Entries
GET /v1/dncRetrieve a paginated list of blocklisted phone numbers.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 50 | Max records to return (max 200) |
offset | integer | 0 | Records to skip |
Example Request
curl "https://api.rymi.live/v1/dnc?limit=20&offset=0" \
-H "Authorization: Bearer YOUR_API_KEY"Response 200
{
"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
| Field | Type | Description |
|---|---|---|
phone | string | Blocklisted phone number in E.164 format |
reason | string | Reason for blocklisting |
opt_out_at | string | ISO 8601 timestamp when the entry was added |
Errors
| Status | Meaning |
|---|---|
401 | Missing or invalid API key |
Remove from DNC
DELETE /v1/dnc/:phonePath Parameters
| Parameter | Type | Description |
|---|---|---|
phone | string | Phone number to remove from the DNC list (E.164 format) |
Example Request
curl -X DELETE https://api.rymi.live/v1/dnc/+15550009999 \
-H "Authorization: Bearer YOUR_API_KEY"Response 200
{
"status": "removed",
"phone": "+15550009999"
}Errors
| Status | Meaning |
|---|---|
401 | Missing or invalid API key |
404 | Phone number not found on the DNC list |
Bulk Import
POST /v1/dnc/batchAdd up to 1,000 phone numbers to the DNC list in a single request.
Request Body
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
phone_numbers | string[] | Yes | — | Array of phone numbers in E.164 format (max 1,000) |
reason | string | No | "Bulk API import" | Shared reason applied to all entries |
Example Request
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
{
"status": "blocklisted",
"count": 3
}Duplicate numbers (already on the DNC list) are silently upserted — the operation is idempotent.
Errors
| Status | Meaning |
|---|---|
400 | Empty phone_numbers array or exceeds 1,000 limit |
401 | Missing or invalid API key |
Check DNC Status
POST /v1/dnc/checkCheck 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
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
phone_numbers | string[] | Yes | — | Array of phone numbers to check (max 500) |
Example Request
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
{
"results": [
{ "phone_number": "+15550009999", "blocked": true },
{ "phone_number": "+15551234567", "blocked": false }
],
"blocked_count": 1,
"total_checked": 2
}Response Fields
| Field | Type | Description |
|---|---|---|
results | array | Per-number check results |
results[].phone_number | string | The phone number that was checked |
results[].blocked | boolean | true if the number is on the DNC list |
blocked_count | integer | Total numbers found on the DNC list |
total_checked | integer | Total numbers checked |
Errors
| Status | Meaning |
|---|---|
400 | Empty phone_numbers array or exceeds 500 limit |
401 | Missing 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.

