Skip to content

reported_unwanted_calls

Consumers reported unwanted calls from the number

The Spaw phone risk signal reported_unwanted_calls adds 20 points to risk_score when consumers filed 3 or more complaints with the FTC naming this North American number as the caller, on at least 2 different days within the last 90 days (dataset us-complaint-reports).

risk weight
+20
dataset
us-complaint-reports
reads from
complaints_90d, complaints_last_at
default SMS policy
does not block it on its own: +20 is within the default ceiling of 60, which blocks only a score above it.

What it means

Spaw installs the FTC's Do Not Call reported-calls files, published each weekday, once a day, and keeps for every North American number the count of complaints over 90 days and the date of the latest. complaints_90d answers 0 when nobody complained, and null outside the North American plan or before the first sync. The consumer's own location is dropped when the file is read, and the dataset is us-complaint-reports.

It is what consumers told the FTC about the numbers that called them, not the Do Not Call Registry. It says nothing about whether you may call or text the number. And it is not proof of wrongdoing: the reports are unverified and caller ID is often spoofed, so an innocent number can collect complaints, which is why the weight is small.

What it cannot tell you

  • It says nothing about who holds the number today, and nothing about a number outside the North American plan.
  • It is not a do-not-call scrub: checking a number against the Do Not Call Registry stays your obligation.

What to do

Read it beside the rest of the answer; do not refuse a number on it alone. On its own it scores 20 and passes the default SMS policy, which blocks a score above 60; beside other signals the score can pass that.

The SMS policy is set per account with PUT /api/v1/phone/policy or the dashboard’s SMS policy tab, and its block_signals may list any signal, this one included; the phone guide lists every rule and its default.

Example response

An excerpt of an answer carrying this signal alone, with the number and the other fields left out, because no test number answers it. The score and the decision are worked out as the lookup and the default SMS policy work them out.

{
    "valid": true,
    "country": "US",
    "line_type": "fixed_line_or_mobile",
    "line_type_source": "numbering_plan",
    "risk_score": 20,
    "risk_level": "low",
    "risk_signals": [
        {
            "signal": "reported_unwanted_calls",
            "weight": 20,
            "dataset": "us-complaint-reports"
        }
    ],
    "complaints_90d": 4,
    "complaints_last_at": "2026-09-18",
    "ok_to_send": true,
    "blocked_by": null
}

A real answer carries every field, listed in the validate-phone reference; the weights of every entry in risk_signals sum to risk_score, capped at 100.

Related

markdown version: /docs/signals/phone/reported_unwanted_calls.md