Spam phone number database
Spam phone number database for carriers and VoIP providers. One file, refreshed every minute, that the switch reads locally.
$ curl -sH "x-auth: $API_KEY" \
https://callerapi.com/api/spam-reports/csv \
-o spam_numbers.csv
$ head -4 spam_numbers.csv
+18882211161
+12099009302
+447476937994
+4930120849110
$ curl -sH "x-auth: $API_KEY" \
https://callerapi.com/api/spam-reports/daily/US \
| jq '.data.next_update_in'
41 # seconds until the next delta
One robocall blocklist, three jobs on your network
Terminating
Block before it rings
Load the robocall blocklist on the switch or SBC and block or label reported numbers there. The check reads a local file, so call setup never waits on a remote lookup.
Originating
Find the customer first
Match outbound CDRs against the list every hour. A customer who sends traffic from reported numbers shows up in your own report, so you can act before a traceback request names your network.
Existing checks
Beside DNO and STIR/SHAKEN
A reasonable DNO list covers invalid, unallocated, unused and inbound-only numbers. This list holds numbers that do call and get reported. STIR/SHAKEN tells you who signed a call, not what people report about it.
{
"data": {
"total": 4812,
"has_more": true,
"next_cursor": "KzE4ODgyMjExMTYxAD...",
"next_update_in": 41,
"complaints": [{
"PhoneNumber": "+18882211161",
"Subject": "Calls pretending to be government",
"RecordedMessageOrRobocall": "Y",
"ConsumerState": "Missouri",
"ViolationDate": "2026-09-15T14:02:00Z"
}]
}
}
Every number comes with a reason
A bare robocall blocklist is hard to defend. Each entry carries a report subject and a timestamp, across 195 countries. Consumer complaints also carry the state and a robocall flag. The rest come from scam calls our honeypot lines answer, calls that Falcon installs reject, and numbers tied to an active campaign. When a caller disputes a block, you show the record.
Falcon, our open-source robocall mitigation software, loads the same list as a hard block, and the robocall score rates them.
One flat fee, not a bill per dip
No per-dip fees. A file you host costs the same on one switch or ten, and blocking continues if our API is unreachable.
| Per-dip API | Hosted list | |
|---|---|---|
| Cost at carrier volume | Grows with every call | One flat fee |
| Call setup | Waits on a remote dip | Reads a local file |
| Outbound screening | Another dip per call | Same file |
Two endpoints, one cron job
Field details are in the API docs.
-
Full pull
Every number reported in the last 15 days.
GET /api/spam-reports/csv -
Delta sync
New reports per country, paged with a cursor.
GET /api/spam-reports/daily/{country}?cursor=... -
Come back on time
Each response says how many seconds to sleep.
"next_update_in": 41
Questions from carriers
Run it beside your DNO list
Tell us your network size and where the list will run. You get a price, a sample export and a sync plan.