mobilevalidate-com Catalog API
Service catalog (GET /v1/services is authoritative at run time). **Spam reputation (`number.spam`, alias `spam`).** Whether a phone number appears in spam and nuisance-call reports: telecom-regulator actions, government nuisance-call complaint data and community spam-report sites, plus whether the number looks unassigned — recently offered as an unassigned number, or in a range the national numbering plan has not assigned (a possible spoofed caller ID or fake lead) — and whether it is a premium-rate number. It is report-based: `no_reports` means we hold no reports for the number — it is **not** a statement that the number is safe. Countries: all, except sanctioned countries (see below). Attributes: `risk_level` (`high | medium | low | no_reports`), `risk_score` (integer 0–100, higher = more reports or risk signals), booleans `reason_regulator`, `reason_government`, `reason_community`, `reason_unassigned`, hint `voip_range` (VoIP carrier range or VoIP number type; adds no points), `top_category` (most frequent report category; `telemarketing` = in a range designated for telemarketing calls), `first_seen` / `last_seen` (YYYY-MM, when the number first/last appeared in our data), `sources` (integer, independent signal classes), `premium_rate` (premium-rate or international shared-cost number — a toll-fraud risk for OTP/verification traffic; adds 20 points but is not a signal class), hint `personal_number` (personal/call-forwarding or pager number type; adds no points). Attributes may be added over time; ignore unknown keys and enum values. Levels: `high` needs a regulator action or at least two independent signal classes. Billing: every `risk_level` including `no_reports` is a conclusive answer and is billed; `unknown` and `unsupported_country` are free. No report texts and no names are ever returned. **Live network status (`number.hlr`, alias `hlr`).** Live home-network query: `status` (`reachable | unreachable | invalid | unknown`), `ported`, `roaming` (yes/no only, no location), `network`, `mcc_mnc`, `country`. `reachable`, `unreachable` and `invalid` are conclusive and billed; `unknown` is free. **Number portability (`number.mnp`, alias `mnp`).** Whether a mobile number was ported to another network: `porting` (`ported | not_ported | unknown`), `mcc_mnc` and `country` of the current network. `ported` and `not_ported` are billed; `unknown` (including invalid numbers) is free. **Sanctioned countries.** Numbers from Cuba, Iran, North Korea, Syria, Russia, Belarus, Venezuela and sanctioned regions are never checked: every check answers `unsupported_country` and is free.