Reputation

The long story behind one number, rather than a decision about one call. For dashboards, support screens, and deciding what to do about a repeat offender.

Look up a number

GET/v1/reputation/{number}any key

Records nothing. It is a few queries across a lot of rows and answers a different question from a score; in the path of a ringing phone, ask for a score instead.

Path parameters

numberstringrequired
The calling number, E.164, with the plus encoded: %2B15125550142.

Response

scorenumber
0 to 1. Standing, not a decision: about the number in general, not one call to one of your numbers.
reasonsstring[]
Why it stands where it does: blocked_manual, blocked_exact, blocked_stem, seen_on_network, stem_on_network, blocked_before, blocked_on_network.
blockobject | null
Your own active block on it, if any.
networkobject
How the number is behaving across every company we protect, in the last window_min minutes. exact is the number itself; stem is the run of consecutive numbers it belongs to, with how many distinct numbers in the run have been seen. accounts is a count and nothing else.
yoursobject
The last day on your account: calls_24h and last_seen.
historyobject
Everything this caller has ever done to you: calls, how many were rejected, minutes of your money spent on it, first_seen and last_seen, past blocks and the worst_violations any of them reached, last_block_until, and network_blocks, how many other customers have ever blocked it.

Errors

invalid_number400
Not parseable as E.164. Remember to encode the plus.
unauthorized401
Missing or unknown key.

What crosses between accounts

network.exact.accounts is how many companies heard from this number in the last hour. It is a count. We never say which companies, to you or to anyone, and nothing about any call they took is in the answer. That is the deal that makes the shared signal possible.

When an account leaves, what its calls said about a number stays in the network's memory, and the link back to the account is dropped. Its numbers cannot be recovered from ours.

What it's for

This is the endpoint behind a "why was this blocked?" screen. A support agent with a customer on the line who says they could not get through can see in one call whether the number is on a run that is working the whole network, or whether somebody blocked them by hand last Tuesday, and lift it if so.