On this page
Screening inbound calls with spam reputation means looking up the caller ID when a call arrives and routing it by what others have reported about that number: to an agent, an IVR, or a verification step. It saves agent time on robocalls and slows down impersonation scams. It works best as one layer next to network caller-ID authentication and your own verification, because a clean-looking number proves nothing.
What problem does inbound screening solve?
Contact centers pay for every minute an agent spends on a call, and unwanted calls take real minutes. US consumers filed over 2.6 million Do Not Call complaints with the FTC in fiscal year 2025 (FTC, 2025). Businesses receive the same traffic: robocalls into published service lines, callers impersonating customers to reset accounts, and diallers probing IVRs.
Screening gives you a decision point before the call reaches a person. The goal isn't to block as much as possible. It is to send each call to the cheapest path that still serves a genuine caller:
- Likely genuine: straight to the queue.
- Doubtful: an IVR prompt, a callback, or extra identity checks before account changes.
- High risk with strong evidence: an automated path. A person reaches an agent only after passing verification.
Your call-center screening setup decides which path each result takes.
What does a spam reputation answer contain?
The spam reputation check (number.spam) answers from reports about the number, described by class only: telecom regulator actions, government nuisance-call complaint data, community reports, and a signal for numbers recently offered for sale as unassigned. It covers US, Canadian and German numbers and is in limited access (internal customers only) for now.
| Field | Meaning |
|---|---|
risk_level | high, medium, low or no_reports |
risk_score | 0–100; reports last seen more than 12 months ago count half |
reason_regulator / reason_government / reason_community / reason_unassigned | Which signal classes are behind the answer |
voip_range | Hint only: the range belongs to a VoIP carrier. Adds no points |
top_category | Most frequent report category, e.g. robocall, impersonation, debt_relief |
first_seen / last_seen | Months the number first and last appeared in our data |
sources | Number of independent signal classes |
high needs a score of at least 80 and either a regulator action or two or more independent signal classes. One noisy source can't produce high on its own.
Why isn't number reputation enough on its own?
Because most bad calls come from numbers nobody has reported yet. We analysed 362,116 complaints from 30 daily FTC Do Not Call files (August to September 2026). There were 297,872 distinct caller numbers, and 92.5% of them appeared in exactly one complaint. The 100 most-reported numbers accounted for only 2.9% of complaints. FCC unwanted-call complaints for January to August 2026 show the same shape: 96.6% of caller IDs appear once. The method and tables are in our analysis of US nuisance-call complaints, built from the FTC and FCC public data.
That pattern fits caller-ID rotation and spoofing: bad actors change numbers faster than reports accumulate. A reputation check catches the persistent offenders and the numbers regulators have acted on, which is valuable. It will miss fresh numbers. So no_reports is the absence of evidence, never a clean bill of health, and your other layers have to carry the rest.
How does STIR/SHAKEN fit in?
STIR/SHAKEN is caller-ID authentication inside the phone network. The originating provider signs the call to say how well it knows the caller is entitled to the number shown. The FCC adopted rules in 2020 requiring voice providers to implement it in the IP portions of their networks by June 30, 2021 (FCC). Many carriers and SIP trunks pass the result to you as an attestation level or a verification flag.
The two signals answer different questions:
| Signal | Question it answers | Blind spot |
|---|---|---|
| STIR/SHAKEN attestation | Was this caller ID asserted by a provider that knows the caller? | Doesn't say whether the caller is welcome. A fully attested number can still run a robocall campaign. Non-IP legs and some international calls arrive unsigned |
| Spam reputation | Has this number collected complaints or regulator action? | New and rotated numbers have no history. Spoofed numbers can collect reports that belong to someone else |
Use both. Weak attestation plus reports is a much stronger signal than either one alone. Full attestation plus no_reports is a reasonable default for the normal queue.
What does the workflow look like?
The check sits between "the call arrives" and "the call is routed":
- Your telephony platform receives the call and the caller ID, plus any attestation your carrier passes on.
- Convert the caller ID to E.164. Most platforms already provide it in that form.
- Call
POST /v1/lookupwithchecks: ["spam", "carrier"]and a shortwait, for example 2 seconds. - Combine
risk_level, the reasons,line_typeand attestation in your routing rules (table below). - If the answer is
pending,unknownorunsupported_country, route the call normally. - Log the level, the reasons and
checked_at, not the raw response or the full number.
curl https://api.mobilevalidate.com/v1/lookup \
-H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"numbers": ["+447700900001", "+447700900002"], "checks": ["spam", "carrier"], "wait": 2}'The test numbers above work for spam reputation in test mode, although live checks cover only US, CA and DE. The first returns high, the second no_reports.
What do the results look like?
The number.spam part of each result, from real test-mode output:
{"risk_level": "high", "risk_score": 95, "reason_regulator": true, "reason_government": false,
"reason_community": true, "reason_unassigned": false, "voip_range": false,
"top_category": "robocall", "first_seen": "2025-11", "last_seen": "2026-08", "sources": 2}{"risk_level": "no_reports", "risk_score": 0, "reason_regulator": false, "reason_government": false,
"reason_community": false, "reason_unassigned": false, "voip_range": false, "sources": 0}The reasons matter as much as the level. A high with reason_regulator: true and top_category: robocall is a strong case for the automated path. A medium driven only by community reports and last seen a year ago deserves a lighter touch. Report texts, reporter details and names are never returned.
How should you route each result?
A starting table for an inbound service line. Tune it with your own outcome data.
| Result | Suggested routing |
|---|---|
high with reason_regulator | IVR or automated path. Agent only after verification |
high without regulator action | IVR with a simple human check (press a key, state a reference) |
medium | Normal queue, but require full verification before account changes |
low | Normal queue. Watch for patterns |
no_reports | Normal queue. Not a guarantee of anything |
reason_unassigned: true | Treat the caller ID as possibly spoofed. Verify before discussing an account |
top_category: impersonation | Flag to the agent. Don't reset credentials on this call |
voip_range: true alone | No action. Many businesses and people call from VoIP |
unknown, pending, unsupported_country | Normal routing. Not charged |
Two rules keep this fair. Never refuse service outright based on a level alone. Give a path to a human. And never treat no_reports as a reason to skip your normal verification for sensitive actions.
How do you avoid hurting genuine callers?
Reputation data describes numbers, and numbers get spoofed and reassigned. A scam campaign can spoof your customer's real number, so their number collects reports they had nothing to do with. A number reported years ago may now belong to someone new. That's why reports last seen more than 12 months ago count half, and why every level carries its reasons and last_seen.
Practical safeguards:
- Route, don't block. An IVR step costs a genuine caller seconds. A block costs you the customer.
- Show the agent the reason, not a verdict. "Reported for robocalls, last seen August 2026" helps the agent. "SPAM" invites rudeness to a real customer.
- Re-check repeat callers. Scores change as reports arrive and age out, and repeat checks within 24 hours are served free from your account's cache.
- Don't use it for eligibility. Spam levels are not for decisions about credit, jobs, housing or insurance. Our acceptable use policy forbids that.
People who find their number in our data can ask for a review through the opt-out form.
What does screening cost?
Each conclusive spam answer is billed, including no_reports, because the check was carried out and answered. You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate). So calls from outside the US, Canada and Germany cost nothing to screen. The carrier lookup is billed only when it returns carrier data. See pricing for current rates.
Call centers see many repeat callers. Answers for the same number within 24 hours come from your account's cache for free, which can keep the average cost per call below the per-check price. Screen only the lines that need it, such as published service numbers and fraud-sensitive queues, and skip internal extensions.
How does this help outbound teams too?
The same data protects your own caller reputation. Run a bulk job over outbound call lists of people who asked to be contacted, with checks: ["carrier", "spam"] (plus network.carrier_us for US and Canadian lists) and remove numbers recently offered as unassigned or reported for fraud before they reach the dialler. You can also check your own outbound numbers periodically. If they start collecting complaints, you'll see it before your answer rates fall. For list mechanics, see how to clean a phone number list in bulk.
What are the key takeaways?
- Spam reputation routes inbound calls by evidence: levels with reasons, for US, CA and DE numbers (limited access today).
- In public FTC data, 92.5% of reported caller numbers appear only once, so reputation catches persistent offenders but misses fresh numbers.
- Combine it with STIR/SHAKEN attestation and your own verification. Neither signal is enough alone.
no_reportsis not safe.voip_rangealone is not risk.unknownis free and should route normally.- Route, don't block, and show agents reasons rather than verdicts.
Sources
- Combating Spoofed Robocalls with Caller ID Authentication — Federal Communications Commission, 2021
- National Do Not Call Registry Data Book for Fiscal Year 2025 — Federal Trade Commission, 2025
- Do Not Call (DNC) Reported Calls Data — Federal Trade Commission, 2026
- Consumer Complaints Data - Unwanted Calls — Federal Communications Commission, 2026
Frequently asked questions
Can I block every call with a high spam level?
You can, but routing is usually better than blocking. Send high-risk calls to an IVR or a verification step. Caller IDs can be spoofed, so a real customer may occasionally arrive from a number with reports.
Does no_reports mean the caller is safe?
No. It means we hold no reports for the number. New, rarely used and spoofed numbers often have no history. Handle the call normally and rely on your usual verification.
Which numbers does the spam reputation check cover?
Numbers from the United States, Canada and Germany. Other numbers return unsupported_country and are not charged. The service is in limited access (internal customers only) for now.
Is the check fast enough to run while the phone is ringing?
Spam answers come from our own daily-refreshed reference data, not a live call to another service, so real-time answers are fast. Set a short wait and route the call normally if the answer isn't back in time.
Related services and guides
More from the blog
All articlesResearch
US nuisance-call complaints in 2026: what the public data shows
Our analysis of 362,116 FTC Do Not Call complaints and FCC unwanted-call data: top subjects, robocall share, weekday pattern and trend.
8 min read
Fraud prevention
VoIP number detection for sign-ups: what works and what to watch out for
Why VoIP numbers matter at sign-up, fixed vs non-fixed VoIP, which signals detect them, and how to add friction without turning away real customers.
7 min read
Fraud prevention
How to reduce fake sign-ups with layered phone and e-mail checks
A layered sign-up defence: format, line type, messaging presence, spam reputation and e-mail checks, mapped to friction tiers you can measure.
8 min read


