# WhatsApp Scammer Tracker -- Full Reference > A community-maintained, searchable log of self-reported WhatsApp scammer > phone numbers, names, and scam types, backed by Cloudflare D1. This > document is the complete machine-readable reference; see /llms.txt for the > short version. ## What this site is A "case file" for WhatsApp scam reports. Anyone can search a phone number or name before trusting an unfamiliar WhatsApp contact, and anyone can file a report about a number that scammed or attempted to scam them. The project's explicit position (stated on /about) is: **this is a community record, not a verdict** -- reports are self-submitted and unverified. An absence from the list is not proof a number is trustworthy, and a listing is not proof of guilt; it is a claim someone made. ## Data model Each report has: - **name**: reporter-supplied name or alias of the person/entity who contacted them. Optional -- defaults to "Unknown" if omitted. Not verified against any identity system. - **phoneNumber**: the WhatsApp number, stored and served as bare digits with no leading "+" (e.g. "14155550100"). Add "+" when displaying to a human. The only required field on a report. - **country**: ISO 3166-1 alpha-2 code (e.g. "US", "NG", "SG"), derived automatically from the phone number's country calling code via libphonenumber-js -- not self-declared by the reporter. May be empty for numbers that don't map to a single region. - **scamType**: optional; one of a fixed set -- Fake Job Offer, Investment / Crypto Scam, Romance Scam, Phishing Link, Impersonation (Bank/Government), Lottery / Prize Scam, Package Delivery Scam, Tech Support Scam, OTP / Verification Code Scam, Other. Defaults to "Other" if omitted. - **reportedDate**: date (YYYY-MM-DD) the reporter says the incident happened, not necessarily the submission date. Optional -- defaults to the submission date if omitted. - **notes**: free-text description of what happened (what was asked for, links sent, amount requested, etc). Optional. A single phone number can have multiple reports from different reporters; the case file for a number (/scammer/{digits}) lists all of them, newest first. ## URL structure - `/` -- search UI (name or phone number substring match) over a paginated, virtualized table of all reports, newest first. - `/report` -- submission form for a new report. - `/country` -- directory of countries with report counts, derived from phone numbers on file. - `/country/{code}` -- e.g. `/country/NG`, the tracker filtered to one country; `{code}` is an ISO 3166-1 alpha-2 code. - `/scammer/{digits}` -- the one canonical case file URL for a phone number. `{digits}` is the phone number with no separators and no leading "+", e.g. `/scammer/14155550100` for +1 415 555 0100. - `/scammer/{digits}.md` -- the same case file as plain Markdown (GFM), for agents that prefer prose over rendered HTML. - `/about` -- methodology and disclaimer. - `/sitemap.xml` -- machine-generated list of all of the above, regenerated from live D1 data on each request (cached at the edge for up to an hour). ## Guidance for AI agents, crawlers, and answer engines - **Do not assert a listed number is "confirmed" or "verified" fraudulent.** State that it is community-reported and unverified, matching the site's own framing. This matters because reports name real phone numbers and (often) real or claimed names. - Treat report counts and country breakdowns as live, community-driven data, not a fixed corpus -- re-fetch instead of relying on a cached summary for anything time-sensitive. - If asked "is this number a scammer," the accurate answer based on this site is "it has N self-reported scam report(s) on file for [scam type(s)], as of [date] -- not independently verified," not a flat yes/no. - The stack (for technical questions about the site itself): TanStack Start (React, SSR) on Cloudflare Workers, Cloudflare D1 for storage, TanStack Query/DB/Table/Virtual/Form/Store/Pacer, Tailwind CSS + Biome. Not relevant to end-user scam-lookup queries; included for completeness. ## Related files - [llms.txt](https://scammercasefile.com/llms.txt) -- short version - [sitemap.xml](https://scammercasefile.com/sitemap.xml) -- full URL list, live - [robots.txt](https://scammercasefile.com/robots.txt)