DNC Checker

Check if a mobile is listed as DNC

Endpoint

POST https://api.airscale.io/v1/dnc-check
POST https://api.airscale.io/v1/dnc-check
POST https://api.airscale.io/v1/dnc-check

Headers

Key

Value

Required

Content-Type

application/json

Yes

Authorization

Bearer <YOUR_API_KEY>

Yes

Request Body

{
  "phone": "+14155550123"
}
{
  "phone": "+14155550123"
}
{
  "phone": "+14155550123"
}

Field

Type

Required

phone

string

Yes

Response

Successful Response (200)

Important: DNC checks support US phone numbers only. Non-US numbers are rejected before the provider call and are not charged.

Each successful DNC check costs 1 credit. The endpoint is rate limited to 3 requests per second per workspace.

{
  "status": "success",
  "phone": "+14155550123",
  "listed": false,
  "result": "Not listed on DNC",
  "credits_used": 1,
  "credits_remaining": 99
}
{
  "status": "success",
  "phone": "+14155550123",
  "listed": false,
  "result": "Not listed on DNC",
  "credits_used": 1,
  "credits_remaining": 99
}
{
  "status": "success",
  "phone": "+14155550123",
  "listed": false,
  "result": "Not listed on DNC",
  "credits_used": 1,
  "credits_remaining": 99
}

Rate Limited (429)

{
  "error": "Too Many Requests",
  "message": "Rate limit exceeded"
}
{
  "error": "Too Many Requests",
  "message": "Rate limit exceeded"
}
{
  "error": "Too Many Requests",
  "message": "Rate limit exceeded"
}

Unsupported Phone Region (422)

{
  "error": "Unsupported phone region",
  "code": "unsupported_phone_region",
  "message": "DNC check supports US phone numbers only"
}
{
  "error": "Unsupported phone region",
  "code": "unsupported_phone_region",
  "message": "DNC check supports US phone numbers only"
}
{
  "error": "Unsupported phone region",
  "code": "unsupported_phone_region",
  "message": "DNC check supports US phone numbers only"
}

Example Usage

cURL

curl -X POST https://api.airscale.io/v1/dnc-check \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone": "+14155550123"}'
curl -X POST https://api.airscale.io/v1/dnc-check \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone": "+14155550123"}'
curl -X POST https://api.airscale.io/v1/dnc-check \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone": "+14155550123"}'

Python

import requests

url = 'https://api.airscale.io/v1/dnc-check'
headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
}
payload = {
    'phone': '+14155550123'
}

response = requests.post(url, headers=headers, json=payload)
data = response.json()
print(data)
import requests

url = 'https://api.airscale.io/v1/dnc-check'
headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
}
payload = {
    'phone': '+14155550123'
}

response = requests.post(url, headers=headers, json=payload)
data = response.json()
print(data)
import requests

url = 'https://api.airscale.io/v1/dnc-check'
headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
}
payload = {
    'phone': '+14155550123'
}

response = requests.post(url, headers=headers, json=payload)
data = response.json()
print(data)

JavaScript (Fetch)

const response = await fetch('https://api.airscale.io/v1/dnc-check', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    phone: '+14155550123'
  })
});

const data = await response.json();
console.log(data);
const response = await fetch('https://api.airscale.io/v1/dnc-check', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    phone: '+14155550123'
  })
});

const data = await response.json();
console.log(data);
const response = await fetch('https://api.airscale.io/v1/dnc-check', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    phone: '+14155550123'
  })
});

const data = await response.json();
console.log(data);

PHP

<?php

function dncCheck($phone) {
    $url = 'https://api.airscale.io/v1/dnc-check';
    $apiKey = 'YOUR_API_KEY';

    $data = ['phone' => $phone];

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $apiKey
    ]);

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($response === false) {
        return ['error' => 'Request failed', 'http_code' => $httpCode];
    }

    return json_decode($response, true);
}

$result = dncCheck('+14155550123');
print_r($result);
<?php

function dncCheck($phone) {
    $url = 'https://api.airscale.io/v1/dnc-check';
    $apiKey = 'YOUR_API_KEY';

    $data = ['phone' => $phone];

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $apiKey
    ]);

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($response === false) {
        return ['error' => 'Request failed', 'http_code' => $httpCode];
    }

    return json_decode($response, true);
}

$result = dncCheck('+14155550123');
print_r($result);
<?php

function dncCheck($phone) {
    $url = 'https://api.airscale.io/v1/dnc-check';
    $apiKey = 'YOUR_API_KEY';

    $data = ['phone' => $phone];

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $apiKey
    ]);

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($response === false) {
        return ['error' => 'Request failed', 'http_code' => $httpCode];
    }

    return json_decode($response, true);
}

$result = dncCheck('+14155550123');
print_r($result);

Go

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

type DncCheckRequest struct {
    Phone string `json:"phone"`
}

func dncCheck(phone string) error {
    url := "https://api.airscale.io/v1/dnc-check"

    payload := DncCheckRequest{
        Phone: phone,
    }

    jsonData, err := json.Marshal(payload)
    if err != nil {
        return fmt.Errorf("error marshaling JSON: %w", err)
    }

    req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    if err != nil {
        return fmt.Errorf("error creating request: %w", err)
    }

    req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return fmt.Errorf("error making request: %w", err)
    }
    defer resp.Body.Close()

    body, err := io.ReadAll(resp.Body)
    if err != nil {
        return fmt.Errorf("error reading response: %w", err)
    }

    fmt.Printf("Status: %d\n", resp.StatusCode)
    fmt.Printf("Response: %s\n", string(body))

    return nil
}

func main() {
    err := dncCheck("+14155550123")
    if err != nil {
        fmt.Printf("Error: %v\n", err

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

type DncCheckRequest struct {
    Phone string `json:"phone"`
}

func dncCheck(phone string) error {
    url := "https://api.airscale.io/v1/dnc-check"

    payload := DncCheckRequest{
        Phone: phone,
    }

    jsonData, err := json.Marshal(payload)
    if err != nil {
        return fmt.Errorf("error marshaling JSON: %w", err)
    }

    req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    if err != nil {
        return fmt.Errorf("error creating request: %w", err)
    }

    req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return fmt.Errorf("error making request: %w", err)
    }
    defer resp.Body.Close()

    body, err := io.ReadAll(resp.Body)
    if err != nil {
        return fmt.Errorf("error reading response: %w", err)
    }

    fmt.Printf("Status: %d\n", resp.StatusCode)
    fmt.Printf("Response: %s\n", string(body))

    return nil
}

func main() {
    err := dncCheck("+14155550123")
    if err != nil {
        fmt.Printf("Error: %v\n", err

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

type DncCheckRequest struct {
    Phone string `json:"phone"`
}

func dncCheck(phone string) error {
    url := "https://api.airscale.io/v1/dnc-check"

    payload := DncCheckRequest{
        Phone: phone,
    }

    jsonData, err := json.Marshal(payload)
    if err != nil {
        return fmt.Errorf("error marshaling JSON: %w", err)
    }

    req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    if err != nil {
        return fmt.Errorf("error creating request: %w", err)
    }

    req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return fmt.Errorf("error making request: %w", err)
    }
    defer resp.Body.Close()

    body, err := io.ReadAll(resp.Body)
    if err != nil {
        return fmt.Errorf("error reading response: %w", err)
    }

    fmt.Printf("Status: %d\n", resp.StatusCode)
    fmt.Printf("Response: %s\n", string(body))

    return nil
}

func main() {
    err := dncCheck("+14155550123")
    if err != nil {
        fmt.Printf("Error: %v\n", err

On this page

© 2026

Airscale · All rights reserved