Skip to main content
GET
Scrub with Unique Identifiers
Pass a unique identifier (such as Account ID, Record ID, or Member ID) with each phone number and have it returned in the response. This allows you to easily match scrub results back to your records.

How It Works

Append a pipe character (|) followed by your unique identifier to each phone number:
The unique identifier will be returned in the Reserved field of the response. An optional third field carries the contact’s postal code, which switches the time zone and calling-window calculation from the number’s area code to the postal code (see Postal Code Time Zones):

Request

Headers

string
required
Your API Key

Query Parameters

string
required
Phone number with identifier in format: PHONE|ID (e.g., 5039367181|ACCT-12345), optionally followed by a postal code: PHONE|ID|POSTALCODE (e.g., 5039367181|ACCT-12345|10001). For multiple numbers, comma-separate them: 5039367181|ACCT-001,7075276405|ACCT-002
string
default:"8"
required
API version. Use 8 (latest). Version 6 adds EBRExpiresOn; version 7 adds WirelessPortDate and VoIPDate; version 8 adds PostalCode, TZSource, IsCallAllowedNonATDS, IsCallAllowedATDS and IsCallAllowedAI.
string
default:"csv"
Response format: json or csv
string
Project ID
string
Campaign ID

Example Request

The Reserved field contains your unique identifier "ACCT-12345".

Response Fields

string
The phone number that was scrubbed
string
The scrub result code (see Result Codes)
string
Your unique identifier passed with the phone number
string
Explanation of why the number is flagged
string
State/region abbreviation (e.g., “CA”)
string
Country code (e.g., “US”)
string
City or locality
string
Carrier information in format: ID;TYPE;"Name"
string
Timezone code
string
UTC offset in minutes
string
1 if wireless/VoIP, 0 otherwise
string
Line type: Wireless, VoIP, or AllOther
string
Normalized postal code used for the time zone calculation (10001, M5V). Empty if none was supplied. Requires version=8 or higher
string
postalCode when the time zone and calling window were derived from the supplied postal code, otherwise areaCode. See Postal Code Time Zones. Requires version=8 or higher
string
1 if a manually dialed, live-agent marketing call may be placed to this number right now; 0 otherwise. Combines ResultCode, DoNotCallToday and the calling window. See Is the call allowed? for the rules and for when this flag applies to you. Requires version=8 or higher
string
Same checks, for calls placed by an autodialer (federal or state definition). Wireless and VoIP numbers return 0 unless a Permission (P) EBR — express written consent — is on file. Requires version=8 or higher
string
Same checks, for calls using an artificial, prerecorded or AI-generated voice. 1 only when a Permission (P) EBR is on file and still valid (EBRType is P and ResultCode is E, O, G or H) — any line type. Clean numbers without consent return 0. See Compliance for AI Voice Agents. Requires version=8 or higher
For the full field list see the Output Guide.

Multiple Numbers with Identifiers

Comma-separate multiple phone numbers with their identifiers:

Example

Use Cases

CRM Integration

Pass your CRM Record ID to update records directly after scrubbing

Batch Processing

Track which phone number belongs to which customer in large batches

Audit Trail

Include transaction IDs for compliance logging

Database Updates

Pass primary keys to enable efficient database updates

Best Practices

The unique identifier should not contain commas (,) or pipe characters (|) as these are used as delimiters. The pipe fields are positional: the second is always the identifier and the third is always the postal code, so use PHONE||POSTALCODE to pass a postal code without an identifier.
  • Keep identifiers reasonably short
  • Use URL-safe characters
  • Consider encoding special characters if needed