A private reverse phone lookup for calls you receive. Paste a number (or fire a hotkey while the phone is still ringing) and get a caller-ID style verdict:
- Free, every time: area code region, FCC unwanted-call complaint history, and one-tap web searches.
- Paid, only when you switch it on: caller name (CNAM) and current carrier / line type from Telnyx or Twilio, at a fraction of a cent per lookup, with a cache and a hard monthly cap.
It runs as one Cloudflare Worker on your own subdomain, behind a Cloudflare Access login, so only you can open it. Hosting and login fit in Cloudflare's free plans.
iPhone Shortcut / desktop hotkey
│ https://ringcheck.example.com/?n=2025550187
▼
Cloudflare Access (email one-time code)
▼
Worker ── serves the page (public/) and /api/*
├── Workers KV: settings, 30-day cache, monthly spend
└── Telnyx or Twilio, per service, switchable in settings
Page ── FCC open data (free, queried from the browser)
A paid lookup only runs when the service is enabled in settings, ticked for that lookup, and the month is under its cap. Repeat numbers are served from cache at $0.
| Per lookup (US) | Telnyx | Twilio |
|---|---|---|
| Caller name | $0.003 | $0.01 |
| Carrier / line type | $0.0025 | $0.008 |
Prices are defaults in config.example.json; check your provider's pricing
page and edit them in settings or KV. At 50 lookups a month with both services
on Telnyx, expect roughly $0.25/month.
See docs/SETUP.md. You need a Cloudflare account with a domain on Cloudflare DNS, Node.js 20+, and a Telnyx and/or Twilio account.
Nothing personal lives in this repo: your hostname, KV id and allowed email go
in a git-ignored wrangler.toml (generated by setup.ps1), and API keys are
Worker secrets.
- iPhone: a Shortcut that opens
/?n=<clipboard digits>. - Windows:
desktop\install-hotkey.ps1adds a Ctrl+Alt+R hotkey that looks up the number on the clipboard. - Any browser: a site-search keyword such as
rc 2025550187, or install the page as an app.
npm ci
cp .dev.vars.example .dev.vars # DEV_BYPASS_ACCESS=true works on localhost only
npm run dev # needs a wrangler.toml; see docs/SETUP.md
npm test
- Lookup history is kept only in your browser's local storage.
- The Worker stores settings, cached provider results (30 days for names, 7 for carriers) and a monthly spend total in your own KV namespace.
- FCC data comes from the FCC's public Consumer Complaints – Unwanted Calls dataset.
- Intended for looking up calls made to you. Don't use it to build profiles of people or for decisions covered by the FCRA (employment, housing, credit).
MIT. Area code data is generated from Google's libphonenumber (Apache 2.0).
The VT323 font is under the SIL Open Font License (public/fonts/OFL.txt).