How the scam database is built.
A hybrid of trusted public feeds, commercial APIs, and first-party community reports — unified into a single searchable graph.
Ingestion pipeline
Data flows left to right: raw feeds get normalized, de-duplicated, enriched, then written to the live search index and served through the public API.
Data sources, at a glance
Green = free with attribution. Amber = commercial / licensed. Red = requires scraping or ToS review.
PhishTank
Community-verified phishing URLs, updated hourly. XML/JSON feed.
URLhaus (abuse.ch)
Malicious URL database. Plain text + API. Updated continuously.
OpenPhish (Community)
Live phishing feed. Free tier with 12-hour delay.
Google Safe Browsing
Real-time URL reputation lookups. Free API key required.
Cryptoscamdb
Open-source GitHub database of scam crypto addresses and domains.
Chainabuse (TRM Labs)
Community crypto scam reports. Public API with registration.
FTC Sentinel Data
Aggregated US complaint data, downloadable CSV. Great for stats.
FBI IC3 Reports
Annual PDFs + category definitions. Seed data for the taxonomy.
ScamAdviser API
Domain trust scores. Commercial licensing per lookup volume.
Truecaller / Hiya
Phone reputation data. Commercial partnership needed.
Reddit r/Scams
Rich anecdotal data — requires Reddit API compliance + attribution.
Trustpilot 1-stars
Signal-rich but ToS-restricted. Manual-only recommended.
Core database schema
Everything revolves around three tables: entities (what was reported), reports (who said so), and evidence (screenshots, transcripts). A category table holds the 28-item taxonomy.
scam-taxonomy.json
Search flow
What happens when a user pastes something into the homepage search box.
Detect & normalize
Classify input as URL / phone / email / wallet. Normalize: lowercase domains, strip protocols, E.164 phone format, checksum wallet addresses.
Multi-source lookup (parallel)
Query OpenSearch (community), Redis (cached feeds), Google Safe Browsing, and Chainabuse — all at once. ~250ms budget.
Aggregate & score
Merge hits, weight by source confidence, compute a unified risk score 0–100.
Render result page
Show risk badge, category, linked community reports, related entities, and a "report this scam" CTA — even if clean, so users can contribute.