A client once asked me to justify the extra credit their litigator filter was adding to every lookup. Fair question. So I ran the numbers, and the answer was almost embarrassing: a single suppressed litigator paid for scrubbing their entire list for years.
Every SMS campaign carries a line item nobody puts on the spreadsheet: TCPA exposure. The Telephone Consumer Protection Act allows statutory damages of $500 per message for negligent violations and $1,500 per message for willful ones. Plaintiffs’ attorneys have turned serial TCPA filing into a business. One professional litigator can manufacture dozens of claims, and a certified class action can turn a modest campaign into an eight-figure liability.
So the question isn’t whether to run a litigator filter. It’s whether you’ve ever done the arithmetic on how cheap it is.
What a litigator scrub actually costs
CheckThatPhone prices lookups in credits. The 10,000-credit plan is $30/month. Each standard lookup is one credit. Adding the litigator filter, by passing litigatorFilter: true in your request body, costs one more credit per lookup.
So a fully enriched lookup with carrier DIP data (dipCarrier, dipCarrierType, dipCarrierSubType, dipPorted), line-type classification (nanpType), deliverability signals (deliverable, blackList, reason, action, deactivationDate), and the litigator scrub (litigator, litigator_type, litigator_name) is two credits total.
At the $30 / 10K rate, one credit is $0.003. Two credits is $0.006 per number.
Sending to more than 10,000 numbers? Overage is simple. An extra 10,000 scrubs (the litigator add-on credit) runs about $30 in overage. That is the incremental cost of protecting 10,000 sends.
Cost to litigator-scrub 10,000 numbers: about $30.
What one TCPA claim actually costs
Statutory damages under the TCPA are fixed by statute, not by actual harm:
- $500 per message, per violation (negligent / standard)
- $1,500 per message, per violation (willful)
Those apply per message. If your drip sends three messages to a litigator who never opted in, you are looking at $1,500 to $4,500 before legal fees, before discovery, before any settlement premium.
Then there is class-action math. Courts have certified TCPA classes where the defendant sent the same message to thousands of recipients. At $500 per message times 50,000 class members, that is $25,000,000 in statutory exposure before anyone proves actual harm.
Even if you settle early (and most defendants do, because the per-message math makes trial irrational), a single-plaintiff TCPA settlement routinely lands between $5,000 and $50,000 once attorney fees are factored in. Defense counsel alone can run $15,000 to $30,000 for a case that never reaches trial.
Conservative floor for one resolved TCPA claim: $5,000 to $15,000.
$0.003 versus $5,000
Put it in a table.
| Scenario | Cost |
|---|---|
| Litigator-filter credit (1 add-on credit) | $0.003 |
| Litigator-filter for 10,000 sends | ~$30 |
| Single TCPA statutory claim (negligent) | $500 to $1,500 per message |
| Single resolved TCPA matter (w/ fees) | $5,000 to $15,000+ |
| Class action (50K members, 1 message) | $25,000,000 statutory exposure |
The ratio at the single-credit level is roughly 1,666:1 against even the minimum statutory floor. You would need to scrub 1,666,000 numbers at the incremental credit cost to equal the statutory damages on a single negligent violation involving one message to one person.
That is not a close call. It is a rounding error on your legal budget.
How the API integration works
For real-time sends, like a contact form submission, a lead capture, or an onboarding flow, you call the single-number endpoint:
POST https://api.checkthatphone.com/v1/lookup
Authorization: Bearer <key>
{
"phone": "+12025550142",
"litigatorFilter": true
}
The response includes litigator (boolean), litigator_type (the category of known litigious behavior), and litigator_name (the individual or entity name where available). Your send logic checks litigator === true and suppresses that number before it ever touches your SMS provider. The credits_used field in the response confirms the credit cost so you can reconcile against your plan.
You also get the full carrier and line-type envelope in the same call. dipCarrier tells you which carrier the number is currently on, dipPorted flags whether it has been ported (relevant for consent-chain hygiene), and nanpType confirms mobile vs. landline vs. not-mobile. Sending an SMS campaign to landlines is wasteful and, depending on the technology used, potentially a separate TCPA issue, so suppressing non-mobile numbers from nanpType in the same request is genuinely additive.
See the full field reference in the API docs.
Cleaning large lists before a campaign
For bulk pre-send hygiene, like a re-engagement campaign, a purchased list, or a migrated CRM, the per-request endpoint is not the right tool. CheckThatPhone’s Bulk CSV verification (Dashboard, then Bulk CSV) is built for this. You upload your list, the platform deduplicates it, runs carrier and line-type validation plus the litigator add-on against every row, and delivers a downloadable result file. Uploaded files and results are deleted within 24 hours of delivery, which matters for data handling and vendor agreements.
For a 50,000-number list, that is 50,000 litigator-filter credits, roughly $150 in add-on cost at standard rates, to validate a list before a single message goes out. Against the exposure profile of a 50,000-recipient campaign, $150 is not a line item worth debating.
Learn more about the practical workflow in our contact list hygiene use case.
What the filter actually catches
The litigator_type field distinguishes between categories of known litigious actors: serial TCPA filers, attorneys who file on their own behalf, professional plaintiffs operating through shell entities, and similar patterns. This is not a blocklist of people who filed one complaint three years ago. It is a maintained dataset of numbers associated with active litigation patterns.
litigator_name gives you the entity name where it is identifiable, which helps both for suppression decisions and for internal compliance documentation. If you are ever in discovery, having a record that you ran a litigator filter at send time and suppressed matched numbers is a meaningful part of a willfulness defense.
For a deeper look at the compliance use case, see TCPA litigator scrub.
When to run it
If your SMS send volume is above zero, the litigator filter is worth running. The unit economics are so skewed in your favor that “is it worth it” answers itself in the first line of arithmetic. The only real implementation question is when to call the API, and the answer is: before you add a number to any sendable segment, whether that is at list upload (Bulk CSV) or at point of capture (real-time /v1/lookup).
Check your current send-list size against the pricing page, confirm you are on a plan that covers your volume with the add-on credits, and build the litigatorFilter: true flag into your standard lookup payload. It is one parameter. The math handles the rest.