Skip to content

fictional

The number sits in a range reserved for fiction

The Spaw phone risk signal fictional adds 80 points to risk_score when the number sits in a range set aside for films, television and other works of fiction: the North American 555-0100 to 555-0199 lines, or a range or number Ofcom, ARCEP, ACMA or ComReg sets aside for drama (dataset fictional-ranges).

risk weight
+80
dataset
fictional-ranges
reads from
is_fictional
default SMS policy
blocks it: fictional is one of the default block_signals (fictional, disposable, reported_abuse, reported_abuse_widely, premium_rate).

What it means

Numbering administrators keep a few ranges out of service so that a number printed in a story rings nobody: in North America the 555-01XX lines of every area code, in the United Kingdom the drama ranges Ofcom lists for each kind of number, in France ARCEP's six audiovisual blocks, in Australia ACMA's creative-works numbers and in Ireland ComReg's drama ranges. Spaw bundles those ranges as fictional-ranges and versions the file, so every answer names the copy it used.

A fictional number is still valid: it has the plan's shape, is formatted and is charged like any other valid number. It never answers unassigned_block either. Ofcom stores some drama ranges as protected blocks, so such a number answers valid true, is_fictional true, block_status unassigned and this signal. In North America the 555 code itself is held back, so a live lookup of a 555-01XX number usually carries reserved_block beside it: +80 and +40, capped at 100.

What it cannot tell you

  • It cannot tell you who typed the number or why: test data, a placeholder in a form and a quote from a film look the same.
  • It covers the ranges in the bundled file: the North American 555-01XX lines and the drama ranges and numbers of Ofcom, ARCEP, ACMA and ComReg. is_fictional false means the number is outside those ranges, not that anyone can be reached on it.

What to do

Reject it at signup and drop it from lists: nobody can receive a code there. The default SMS policy blocks on it: an answer carrying it is ok_to_send false whatever the score.

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

The sandbox answer for the test number +1 202-555-0105, cut to the fields that matter here. Test numbers are free on every key and name the dataset test-numbers; a live lookup names fictional-ranges.

{
    "valid": true,
    "e164": "+12025550105",
    "country": "US",
    "line_type": "mobile",
    "is_fictional": true,
    "risk_score": 80,
    "risk_level": "high",
    "risk_signals": [
        {
            "signal": "fictional",
            "weight": 80,
            "dataset": "test-numbers"
        }
    ],
    "ok_to_send": false,
    "blocked_by": "fictional"
}

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/fictional.md