Skip to main content
POST
Scrub Multiple Numbers
Submit multiple phone numbers in a single request for efficient batch processing.
To add or refresh EBR records in the same call as a scrub, use Scrub + Add EBR.
If you scrub more than 10 phone numbers, use HTTP POST instead of HTTP GET. If you do not know your batch size, safest option is always use HTTP POST. The maximum number of records that can be scrubbed per requests is 10,000. If you have larger batches, consider using SFTP.

Request

Headers

string
required
Your API Key

Request Body

string
required
Comma-separated list of 10-digit phone numbers (e.g., 5039367187,7075276405,7072842774). To include a system identifier with each result, append |{id} to the phone number (e.g., 5039367187|abc-10232,7075276405|abc-10233,7072842774|abc-10234). To have the time zone and calling window calculated from the contact’s postal code instead of the area code, append it as a third field, |{id}|{postalCode}; the identifier may be empty, ||{postalCode} (e.g., 5039367187|abc-10232|10001,7075276405||97205). See Postal Code Time Zones.
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:"json"
Response format: json or csv
string
Optional. Project ID
string
Optional. Campaign ID

Example Request

Response Fields

string
The phone number that was scrubbed
string
The scrub result code (see Result Codes)
string | null
Your unique identifier if you passed one (PHONE|ID), otherwise null
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"
integer
Timezone code
integer
UTC offset in minutes for the destination, adjusted for DST (e.g. -240)
string | null
Type of EBR applied: S (Sale), I (Inquiry), or P (Permission). null if no EBR
boolean
true if wireless or VoIP
string
Line type: Wireless, VoIP, or AllOther
string | null
Date the EBR expires, YYYY-MM-DD (e.g. 2027-02-09), inclusive — the number may be called through the end of that day in the destination’s local time. The earlier of the federal and state expiration dates. null if no EBR. Requires version=6 or higher (versions 6–7 return YYYY-MM-DD 23:59:00 as a string)
string | null
Date the number was ported to wireless, YYYY-MM-DD. null when there is no port record (versions 7 returns 0 or empty). Requires version=7 or higher
string | null
Date the number was identified as VoIP, YYYY-MM-DD. null if not VoIP. Requires version=7 or higher
string | null
Normalized postal code used for the time zone calculation (10001, M5V). null 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
boolean
true if a manually dialed, live-agent marketing call may be placed to this number right now. 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
boolean
Same checks, for calls placed by an autodialer (federal or state definition). Wireless and VoIP numbers return false unless a Permission (P) EBR — express written consent — is on file. Requires version=8 or higher
boolean
Same checks, for calls using an artificial, prerecorded or AI-generated voice. true 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 false. See Compliance for AI Voice Agents. Requires version=8 or higher

Processing Multiple Results

Using HTTP POST for Large Batches

For more than 10 phone numbers, use HTTP POST with a JSON body:

Best Practices

While the API can handle large batches, consider breaking very large lists into batches of 1,000-5,000 numbers for optimal performance.
Use output=csv for large batches. CSV parsing is more efficient for high-volume processing.
Operations are atomic. If one phone number is invalid, the entire batch fails. Validate phone numbers before sending.