> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dncscrub.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Add Phone Numbers

> Add phone numbers to TrustCall monitoring for automatic spam score checks

Add phone numbers to TrustCall monitoring. Numbers will be automatically checked for carrier spam scores.

<Note>
  When first added, scores may show as `Processing` until checked with each carrier (typically within 24 hours).
</Note>

## Request

### Headers

<ParamField header="loginId" type="string" required>
  Your API Key (LoginId from your DNCScrub account)
</ParamField>

<ParamField header="Content-Type" type="string" required>
  Must be `application/json`
</ParamField>

### Request Body

The request body is a JSON array of phone number objects:

<ParamField body="Phone" type="string" required>
  10-digit North American phone number (without leading 1 or +)
</ParamField>

<ParamField body="Label" type="string">
  Optional description or label for the phone number (max 50 characters)
</ParamField>

<ParamField body="ServiceType" type="string">
  Service type for the phone number. If omitted, defaults to `Remediation` for accounts with remediation service enabled, or `Scanning` for all other accounts.

  **Valid values:**

  | Value                     | Description                     |
  | ------------------------- | ------------------------------- |
  | `Scanning`                | Standard monitoring service     |
  | `Remediation`             | Remediation service             |
  | `Remediation Daily Scans` | Remediation with daily scanning |

  If an unrecognized value is provided, the item's `Response` field returns `Invalid Service type` (HTTP status remains 200).
</ParamField>

<ParamField body="LegalEntityId" type="integer">
  Optional legal entity identifier
</ParamField>

## Example Request

<CodeGroup>
  ```bash cURL theme={null}
  curl --location --request POST \
    'https://dataapi.dncscrub.com/v1.5/TrustCall/Add' \
    --header 'loginId: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data-raw '[
      { "Phone": "5039367187", "Label": "Customer Service", "LegalEntityId": 123 },
      { "Phone": "8084565302", "Label": "Marketing", "LegalEntityId": 456 }
    ]'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://dataapi.dncscrub.com/v1.5/TrustCall/Add',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'loginId': 'YOUR_API_KEY'
      },
      body: JSON.stringify([
        { Phone: '5039367187', Label: 'Customer Service', LegalEntityId: 123 },
        { Phone: '8084565302', Label: 'Marketing', LegalEntityId: 456 }
      ])
    }
  );
  const data = await response.json();
  console.log(data);
  ```

  ```csharp C# theme={null}
  using (var client = new HttpClient())
  {
      client.DefaultRequestHeaders.Add("loginId", "YOUR_API_KEY");

      var requestData = new[]
      {
          new { Phone = "5039367187", Label = "Customer Service", LegalEntityId = 123 },
          new { Phone = "8084565302", Label = "Marketing", LegalEntityId = 456 }
      };

      var content = new StringContent(
          JsonSerializer.Serialize(requestData),
          Encoding.UTF8,
          "application/json"
      );

      var response = await client.PostAsync(
          "https://dataapi.dncscrub.com/v1.5/TrustCall/Add",
          content
      );

      var result = await response.Content.ReadAsStringAsync();
      Console.WriteLine(result);
  }
  ```
</CodeGroup>

<ResponseExample>
  ```json Response theme={null}
  [
    {
      "Response": "Phone number added to monitor",
      "Phone": "5039367187",
      "LegalEntityId": 123,
      "CurrScore": "Processing",
      "MaxScore": "Processing",
      "HistoricalScore": "0",
      "VerizonScore": "Processing",
      "ATTScore": "Processing",
      "TMobileScore": "Processing",
      "RoboKillerStatus": "Processing",
      "NomoroboStatus": "Processing",
      "FTCComplaints": null
    },
    {
      "Response": "Phone number added to monitor",
      "Phone": "8084565302",
      "LegalEntityId": 456,
      "CurrScore": "Processing",
      "MaxScore": "Processing",
      "HistoricalScore": "0",
      "VerizonScore": "Processing",
      "ATTScore": "Processing",
      "TMobileScore": "Processing",
      "RoboKillerStatus": "Processing",
      "NomoroboStatus": "Processing",
      "FTCComplaints": null
    }
  ]
  ```
</ResponseExample>

## Response Fields

<ResponseField name="Response" type="string">
  Status message indicating the result of the add operation
</ResponseField>

<ResponseField name="Phone" type="string">
  The phone number that was added
</ResponseField>

<ResponseField name="LegalEntityId" type="integer">
  The legal entity identifier associated with the phone number
</ResponseField>

<ResponseField name="CurrScore" type="string">
  Current average carrier spam score: `Clean`, `Medium`, `High`, or `Processing`
</ResponseField>

<ResponseField name="MaxScore" type="string">
  Maximum score recorded in the last 15 days
</ResponseField>

<ResponseField name="HistoricalScore" type="string">
  Historical score from 0-5 (0-1 = no issues, 5 = 50%+ high spam history)
</ResponseField>

<ResponseField name="VerizonScore" type="string">
  Verizon carrier status: `Clean`, `Flagged`, or `Processing`
</ResponseField>

<ResponseField name="ATTScore" type="string">
  AT\&T carrier status: `Clean`, `Flagged`, or `Processing`
</ResponseField>

<ResponseField name="TMobileScore" type="string">
  T-Mobile carrier status: `Clean`, `Flagged`, or `Processing`
</ResponseField>

<ResponseField name="RoboKillerStatus" type="string">
  RoboKiller app status: `Clean`, `Flagged`, or `Processing`
</ResponseField>

<ResponseField name="NomoroboStatus" type="string">
  Nomorobo app status: `Clean`, `Flagged`, or `Processing`
</ResponseField>

<ResponseField name="FTCComplaints" type="array | null">
  Array of FTC complaints associated with the number, or `null` if none
</ResponseField>

## Error Responses

| Status           | Description                                 |
| ---------------- | ------------------------------------------- |
| 400 Bad Request  | Invalid request body or phone number format |
| 401 Unauthorized | Invalid or missing API key                  |

## Limits

* Maximum **50 phone numbers** per add request
