Skip to content

reserved_block

The regulator's table marks the block reserved

The Spaw phone risk signal reserved_block adds 40 points to risk_score when the allocation table of the number's regulator marks its block as reserved or set aside for special use, as NANPA does for the 555 code (the regulator table of the number's country).

risk weight
+40
dataset
the regulator table of the number’s country: nanpa-co-codes, cnac-co-codes, ofcom-numbering, acm-nummerregister, nad-number-register, uke-numeracja, mimit-numerazione
reads from
block_status
default SMS policy
does not block it on its own: +40 is within the default ceiling of 60, which blocks only a score above it.

What it means

Where a regulator publishes its number-block allocations, Spaw reads the block a number sits in, and block_status answers allocated, unassigned or reserved. Reserved is a block the table neither gives to a holder nor lists as free: NANPA's central office codes set aside rather than assigned (the 555 code among them), the CNAC's special-use and test codes, Ofcom's designated blocks, ACM's blocked ranges, the NAD's reserved codes, UKE's technical reserve and MIMIT's reserved ranges. Seven of the ten tables Spaw reads mark such blocks; the other three never answer reserved.

A number in a reserved block is still valid, because the plan allows it and the table does not list the block as free, but no subscriber line is expected there. risk_signals names the table that answered, so a US number cites nanpa-co-codes and a UK one ofcom-numbering.

What it cannot tell you

  • It cannot tell you what the block is reserved for: the tables name a status, not a purpose.
  • Where no regulator table covers the country, block_status is null and the signal cannot fire: not evaluated, not clean. A table is only as current as its last sync, daily for NANPA and weekly for the others.

What to do

Reject it at signup unless you expect test or service numbers; on a list, check the row by hand. On its own it scores 40 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",
    "block_status": "reserved",
    "risk_score": 40,
    "risk_level": "medium",
    "risk_signals": [
        {
            "signal": "reserved_block",
            "weight": 40,
            "dataset": "nanpa-co-codes"
        }
    ],
    "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/reserved_block.md