Trust

Methodology

This page documents exactly how PhoneLookup turns a raw phone number into the country, carrier, line-type, timezone, spam signals and community context you see on a number page.

1. Number parsing pipeline

Every phone number entered on the site is normalised to E.164 (the international standard format prefixed with + and the country code) before anything else happens. We then hand the E.164 string to Google’s libphonenumber — the same open-source library that ships inside Android, Chromium, WhatsApp’s registration flow, and most major carrier billing systems. libphonenumber is our source of truth because it is maintained directly against the numbering-plan updates published by national regulators (TRAI, FCC, Ofcom, ACMA, CRTC and dozens of others), and its rules are versioned so we can audit exactly which release parsed any given number.

From the parsed E.164 form we derive, in a single pass:

  • Validity — whether the number is even possible under the country’s numbering plan.
  • Country and region (ISO 3166-1 alpha-2), plus the human-friendly country name.
  • National significant number and both national and international display formats.
  • Line type: mobile, fixed-line, VoIP, toll-free, premium-rate, shared-cost, pager or UAN.
  • Original carrier at the time of numbering-block allocation (where the mapping is public).
  • Primary timezone(s) served by the numbering block.
  • Geographic hint at the sub-country level for landlines where regulators publish areacode maps.

Any number that libphonenumber rejects as invalid is stored as invalid and shown with a clear “this is not a valid phone number” label — we do not fabricate metadata for numbers the regulator has not allocated. We also do notperform an HLR or live-network lookup, and do not claim to know the current subscriber, the current carrier after Mobile Number Portability, or the physical location of the handset. That limit is deliberate: HLR data is not licensable for consumer publication in India or the EU, and consumer-safe caller-ID products should not pretend to know things they cannot.

2. Spam & risk signals

A number’s risk indicator is a transparent composite — not a black-box AI score — built from the following signals, each of which is separately visible on the number page:

  1. Report volume: total community reports, log-scaled to avoid new-number bias.
  2. Report recency: reports in the last 30 / 90 / 365 days weighted higher.
  3. Report agreement: the share of reports that agree on a category (e.g. “bank fraud”).
  4. Search velocity: unique lookups over the last 7 days.
  5. Range signals: known spam density of the parent numbering block.
  6. Regulator lists: presence on public advisories from I4C, TRAI, FTC, Ofcom, ACMA where applicable.

We ignore single-reporter reports until at least one independent report agrees, and we rate-limit reports per IP + per number to reduce brigading and reputation attacks.

3. Classification & verification

Category pages (Bank Fraud, WhatsApp Scam, Delivery Scam, Loan Scam, Investment Scam, Job Scam and so on) are assigned when at least three independent reports agree on the same category and the number is not on a regulator whitelist. Categories are re-evaluated nightly; a number can move in or out of a category as new reports arrive. A number reaches a public trending list only after passing the meaningful-evidence threshold defined in src/lib/indexing.ts: 1+ fraud report, 2+ agreeing spam reports, 3+ safe confirmations, 3+ total reports, or a detailed user comment.

Verification is a manual editorial workflow, not an automated pipeline. When a report threshold is crossed, an editor cross-checks the pattern against three independent sources — typically the National Cybercrime Reporting Portal advisories, the RBI Sachet portal for banking-adjacent scams, and open-source intelligence such as regional consumer subreddits and Twitter/X reports. If the pattern is consistent, the category is confirmed and a short editorial note is added to the number page describing the specific script (e.g. “digital arrest”, “task-based earning”, “courier KYC”) so future searchers can recognise the call before it starts.

Businesses, banks and government agencies whose genuine customer-service number is mistagged can appeal through the contact page. We verify by finding the number listed on the organisation’s own official website (not a third-party directory), then add a verified-owner banner and downweight community reports against that number. The full appeals process is public on the editorial policy page.

4. What we never do

  • We never display the name, address, email, Aadhaar / PAN / SSN or any KYC data of a private individual.
  • We never sell personal data. We do not run people-search products.
  • We never accept payment to remove a legitimate report or to whitelist a number that has genuine community complaints.
  • We never fabricate reports. Reports come only from real submissions through the site.

5. Business & official numbers

A business, government agency or bank whose real customer-service number is being mistagged can request a review through the contact form. If we verify the number is genuinely operated by the claimed organisation (via a listing on the organisation’s own official website), we add a verified-owner banner to the page.

6. Transparency & changes

Any material change to this methodology — new signals, new weightings, changed thresholds — is logged on the Corrections page with the date of the change.

Frequently asked questions

Do you know who owns a phone number?

No. We do not display the name, address, email, Aadhaar, PAN or SSN of a private individual. We show the country, region, line type, carrier at allocation, timezone and any community-submitted context.

How is the spam score calculated?

It is a transparent, editorially-defined composite of six signals: report volume (log-scaled), report recency, report agreement, search velocity, parent range signals and public regulator advisories. Each signal is separately visible on the number page.

How does libphonenumber know the carrier?

libphonenumber ships with the original numbering-block allocations published by national regulators. It knows the carrier a numbering block was assigned to; it does not know the current carrier after Mobile Number Portability. We label this clearly on every page.

Do you perform live HLR lookups?

No. Every value on a number page is derived from libphonenumber, public regulator data, and anonymous community submissions. We never query the mobile network for live subscriber data.