Skip to main content
GET
https://dataapi.dncscrub.com
/
v1.5
/
TrustCall
/
OneTimeScan
One-Time Scan Status
curl --request GET \
  --url https://dataapi.dncscrub.com/v1.5/TrustCall/OneTimeScan \
  --header 'loginId: <loginid>'
{
  "JobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "Status": "Processing",
  "PhoneCount": 3,
  "ProcessedCount": 1
}
Check the status of a one-time scan job submitted via the Submit One-Time Scan endpoint.

Request

Headers

loginId
string
required
Your API Key (LoginId from your DNCScrub account)

Query Parameters

jobId
string (UUID)
required
The job ID returned from the POST OneTimeScan endpoint

Example Request

curl --location --request GET \
  'https://dataapi.dncscrub.com/v1.5/TrustCall/OneTimeScan?jobId=a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
  --header 'loginId: YOUR_API_KEY'
{
  "JobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "Status": "Processing",
  "PhoneCount": 3,
  "ProcessedCount": 1
}
{
  "JobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "Status": "Complete",
  "PhoneCount": 3,
  "ProcessedCount": 3,
  "Results": [
    {
      "Phone": "5039367187",
      "CurrScore": "Clean",
      "VerizonScore": "Clean",
      "ATTScore": "Clean",
      "TMobileScore": "Clean",
      "RoboKillerStatus": "Clean",
      "NomoroboStatus": "Clean",
      "FTCComplaints": null
    },
    {
      "Phone": "8084565302",
      "CurrScore": "Medium",
      "VerizonScore": "Clean",
      "ATTScore": "Flagged",
      "TMobileScore": "Clean",
      "RoboKillerStatus": "Clean",
      "NomoroboStatus": "Clean",
      "FTCComplaints": null
    },
    {
      "Phone": "7867056421",
      "CurrScore": "High",
      "VerizonScore": "Flagged",
      "ATTScore": "Flagged",
      "TMobileScore": "Clean",
      "RoboKillerStatus": "Clean",
      "NomoroboStatus": "Flagged",
      "FTCComplaints": [
        {
          "FTCComplaintId": "79923e06b1c74d47e6ad5826b7554046",
          "Phone": "7867056421",
          "CreatedDate": "08/15/2022 22:22:39",
          "ViolationDate": "07/29/2022 12:04:00",
          "Subject": "Dropped call or no message"
        }
      ]
    }
  ]
}

Response Fields

JobId
string (UUID)
The scan job identifier
Status
string
Current job status:
  • Submitted - Job received, not yet started
  • Processing - Scan in progress
  • Complete - Scan finished, results available
  • Failed - Scan encountered an error
PhoneCount
integer
Total number of phone numbers in the job
ProcessedCount
integer
Number of phone numbers processed so far
Results
array
Array of scan results (only present when Status is Complete). See result fields below.

Result Fields

Phone
string
The phone number that was scanned
CurrScore
string
Current average carrier spam score: Clean, Medium, or High
VerizonScore
string
Verizon carrier status: Clean or Flagged
ATTScore
string
AT&T carrier status: Clean or Flagged
TMobileScore
string
T-Mobile carrier status: Clean or Flagged
RoboKillerStatus
string
RoboKiller app status (if carrierandapps scan type)
NomoroboStatus
string
Nomorobo app status (if carrierandapps scan type)
FTCComplaints
array | null
Array of FTC complaints (if carrierandapps scan type)

Error Responses

400 Bad Request
Invalid or missing job ID
401 Unauthorized
Invalid or missing API key
403 Forbidden
Job belongs to a different account
500 Server Error
Internal server error

Polling Example

async function waitForScanResults(jobId, apiKey, maxWaitMs = 300000) {
  const startTime = Date.now();
  const pollInterval = 5000; // 5 seconds

  while (Date.now() - startTime < maxWaitMs) {
    const response = await fetch(
      `https://dataapi.dncscrub.com/v1.5/TrustCall/OneTimeScan?jobId=${jobId}`,
      { headers: { 'loginId': apiKey } }
    );

    const data = await response.json();

    if (data.Status === 'Complete') {
      return data.Results;
    }

    if (data.Status === 'Failed') {
      throw new Error('Scan job failed');
    }

    console.log(`Processing: ${data.ProcessedCount}/${data.PhoneCount}`);
    await new Promise(resolve => setTimeout(resolve, pollInterval));
  }

  throw new Error('Scan timed out');
}