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
- The weights table in the phone guide
- Glossary: unassigned block
- What an unassigned block means
- Glossary: SMS policy
- All phone risk signals
markdown version: /docs/signals/phone/fictional.md