graph TD
subgraph "用户接口"
A[用户发起请求]
end
A --> B[参数解析]
B --> C{"解析结果"}
C -->|"成功"| D[查询威胁数据库]
C -->|"失败"| E[返回错误提示]
D --> F[返回匹配结果]
F --> G[解析返回值]
G --> H[返回处理结果]
H --> I[与用户交互]
I --> J{"交互结果"}
J -->|"需继续检测"| K[重定向回D]
J -->|"查询结束"| L[返回结果]
CDN link above is recommended — served via jsDelivr global CDN, no rate limits.
Raw GitHub mirror (may return 429 on heavy traffic): https://raw.githubusercontent.com/phishdestroy/destroylist/main/rootlist/formats/primary_active/hosts.txt
Badge values are exact feed-entry counts. The API reports normalized unique domains, so its values can be lower after URL, www and duplicate normalization. See the machine-readable dns/metrics.json definitions.
Data Feeds
Feed
Description
Update
Download
Primary
Curated phishing domains
Real-time
Primary Live
DNS verified active
24h
Community
Aggregated from 13+ sources
2h
Community Live
Community DNS verified
24h
Primary Content
Curated + HTTP content verified
12h
Community Content
Aggregated + HTTP content verified
24h
Allowlist
False positive protection
Manual
Tip 提示
Production:list.json or active_domains.json · Max coverage:blocklist.json · Firewall/DNS: root lists
All Download Formats (TXT, Hosts, AdBlock, Dnsmasq, Unbound, RPZ)
Getting 429 errors? Use the jsDelivr CDN links below — they bypass GitHub rate limits.
All Roots — clean root domains (no infra) · Live Only — DNS-verified active · Services Only — hosting platform subdomains (Vercel, Pages.dev, Netlify, etc.)
Content-Verified Feeds
Note:Real HTTP content verification — not just DNS, but actual phishing page detection
Warning:Cloaking Alert: Scammers use cloaking to hide phishing from bots — showing blank/fake pages to scanners. Domain NOT in content list ≠ safe! Use Primary or Community full lists for complete protection.
Threat Intelligence API
Free, open, no API key.
Real-time domain risk scoring (0-100) across the Primary and Community datasets · scheduled sync
Single & bulk check (500/req) · Keyword search · Full feeds
Use the API · endpoints, scoring & integration examples
%%{init: {"themeVariables":{"background":"transparent","primaryBorderColor":"#c52237","lineColor":"#c52237","clusterBkg":"transparent","clusterBorder":"#898999","edgeLabelBackground":"transparent","fontFamily":"system-ui, sans-serif"},"flowchart":{"curve":"basis","htmlLabels":true}}}%%
flowchart LR
Request["Client Request<br/>(Single / Bulk)"] e1@--> API["Live API<br/>api.destroy.tools"]
API e2@--> Engine["Threat Engine<br/>(Risk Score 0-100)"]
Engine e3@--> DB[("Destroylist DB<br/>1M+ Threats")]
DB e4@--> Engine
Engine e5@--> Response["JSON Response<br/>(Severity & Status)"]
classDef client fill:transparent,stroke:#898999,stroke-width:2px;
classDef api fill:transparent,stroke:#c52237,stroke-width:2px;
classDef db fill:transparent,stroke:#898999,stroke-width:2px,stroke-dasharray: 5 5;
classDef animate stroke:#c52237,stroke-width:2px,stroke-dasharray:10 5,stroke-dashoffset:900,animation:dash 22s linear infinite;
classDef animateDark stroke:#898999,stroke-width:2px,stroke-dasharray:10 5,stroke-dashoffset:900,animation:dash 22s linear infinite;
class Request client;
class API,Engine,Response api;
class DB db;
class e1,e2,e3,e5 animate;
class e4 animateDark;
Per-IP quotas: 300 data units/minute; intelligence routes have 30 units/minute and 1,000/day. Request costs vary by endpoint. On HTTP 429, respect Retry-After. Current limits and response schemas.
Threat Scoring
Listed-domain results include a risk score (0–100) and the API’s severity verdict. Signals include curated and community listings, DNS/HTTP liveness, multiple sources and naming patterns. Unlisted domains can return separate heuristic signals; a missing listing is not a safety guarantee.
import requests
domain = "example.com"
r = requests.get("https://api.destroy.tools/v1/check", params={"domain": domain}, timeout=30)
r.raise_for_status()
result = r.json()
if result["threat"]:
print(f"BLOCKED: {result['severity']} (score: {result['risk_score']})")
JavaScript
const domain ="example.com";const r =awaitfetch(`https://api.destroy.tools/v1/check?domain=${encodeURIComponent(domain)}`);if(!r.ok)thrownewError(`API returned HTTP ${r.status}`);const data =await r.json();if(data.threat) console.warn("PHISHING:", data.severity, data.risk_score);
Destroylist is a real-time threat intelligence platform by PhishDestroy — protecting firewalls, DNS resolvers, browser extensions, and security teams worldwide.
Every domain is discovered, verified, reported to registrars, and published transparently.
Live feed counts above · 13+ threat sources · 50+ vendor reports · 6 output formats · Free API
Live data collection began on July 1, 2025
Data & integrations
Follow the data · sources → checks → feeds
%%{init: {"themeVariables":{"background":"transparent","primaryBorderColor":"#c52237","lineColor":"#c52237","clusterBkg":"transparent","clusterBorder":"#898999","edgeLabelBackground":"transparent","fontFamily":"system-ui, sans-serif"},"flowchart":{"curve":"basis","htmlLabels":true}}}%%
flowchart TB
subgraph Sources["Threat Sources"]
S1[30+ Parsers]
S2[Community Feeds]
S3[Telegram Bot]
S4[CT Logs / DNS]
end
subgraph Ingestion["Ingestion"]
I1[smart_aggregator.py]
I2[validate_and_clean.py]
end
subgraph Enrichment["Enrichment"]
E1[DNS Validation]
E2[HTTP Content Check]
E3[VirusTotal / GSB]
end
subgraph Distribution["Distribution"]
D1[JSON / TXT]
D2[Hosts / AdBlock]
D3[RPZ / Unbound]
D4[API Feed]
end
Sources --> Ingestion
Ingestion --> Enrichment
Enrichment --> Distribution
classDef source fill:transparent,stroke:#898999,stroke-width:2px;
classDef ingest fill:transparent,stroke:#c52237,stroke-width:2px;
classDef enrich fill:transparent,stroke:#c52237,stroke-width:2px;
classDef dist fill:transparent,stroke:#c52237,stroke-width:2px,stroke-dasharray: 5 5;
class S1,S2,S3,S4 source;
class I1,I2 ingest;
class E1,E2,E3 enrich;
class D1,D2,D3,D4 dist;
Connect your tools · subscribe URLs, curl, Python & Bash
%%{init: {"themeVariables":{"background":"transparent","primaryBorderColor":"#c52237","lineColor":"#c52237","clusterBkg":"transparent","clusterBorder":"#898999","edgeLabelBackground":"transparent","fontFamily":"system-ui, sans-serif"},"flowchart":{"curve":"basis","htmlLabels":true}}}%%
flowchart LR
Discover["DISCOVER<br/>30+ Parsers"] e1@--> Report["REPORT<br/>50+ Vendors"]
Report e2@--> Legal["LEGAL<br/>ICANN Compliance"]
Legal e3@--> Publish["PUBLISH<br/>Real-time Feed"]
classDef box fill:transparent,stroke:#898999,stroke-width:2px;
classDef animate stroke:#c52237,stroke-width:2px,stroke-dasharray:10 5,stroke-dashoffset:900,animation:dash 22s linear infinite;
class Discover,Report,Legal,Publish box;
class e1,e2,e3 animate;
DISCOVER
REPORT
LEGAL
PUBLISH
30+ parsers
50+ vendors
ICANN compliance
Real-time
CT logs, DNS
Google, Microsoft
Abuse notifications
GitHub, Telegram
Social media
VirusTotal, Cloudflare
Evidence packages
Twitter, Mastodon
Phase 1: Pre-emptive Discovery & Ingestion
We utilize a distributed network of 30+ proprietary parsers to identify malicious domains at their earliest stage:
Advanced Heuristics: Continuous monitoring of Google Ads (Malvertising), SEO-manipulated search results, and trending social media campaigns on Twitter (X), YouTube, and Telegram
Infrastructure Analysis: Leveraging dnstwist and typosquatting detection to catch look-alike domains targeting established brands
Community Intelligence: Real-time ingestion of community-reported threats via our Telegram Bot and partner intelligence feeds
Phase 2: Global Ecosystem Contribution
Once a threat is confirmed, we submit data to over 50 industry-leading vendors:
Cloudflare Google Safe Browsing Microsoft Security VirusTotal
Netcraft ESET Bitdefender Norton Safe Web
Avira PhishTank Dr.Web Yandex Safe Browsing
URLScan.io PolySwarm SiteReview Urlquery
PhishStats PhishReport IsItPhish ThreatCenter
Phase 3: Legal Notifications & Investigation Support
Abuse Notifications: Formal alerts to domain registrars and hosting providers
Forensic Evidence Disclosure: Complete evidence packages including metadata, screenshots, and PDF reports
ICANN Compliance Support: Reports aligned with ICANN standards
Conditional Re-Detection Logic: Follow-up reports only while the threat remains active, never sooner than 48 hours after the previous report (current reporting policy)
Phase 4: Public Transparency & Community Alerts
Open Database: Real-time commits to this GitHub repository
Social Broadcasting: Automated alerts on Twitter, Telegram, and Mastodon
For fraud victims · reports, evidence & provider responsibility
DestroyList aims to disable malicious domains: scams, phishing, and other illicit sites to enhance internet safety.
Before a domain is added, we:
Scan it across cybersecurity platforms for threat intelligence.
Send an official complaint to the registrar and the hosting provider (via WHOIS), including scan results, screenshots, and a request for client investigation. The complaint also notifies them about inclusion in our public database.
ICANN’s 2013 RAA §3.18.1 requires registrars to take reasonable and prompt steps to investigate and respond appropriately to abuse reports. The 24-hour review requirement in §3.18.2 applies to well-founded reports of illegal activity from law enforcement, consumer-protection and other qualifying authorities, sent to the registrar’s dedicated contact.
When reports go ignored
We work hard to eliminate threats quickly. Every malicious domain is analyzed, documented, reported, and published transparently.
However, when a domain receives 10–30+ abuse reports and a registrar still ignores them for months, the situation changes: the registrar is no longer a passive party.
It effectively provides infrastructure for illegal activity.
Some registrars behave as if their internal policies somehow override ICANN requirements and national laws — as if phishing and fraud are “allowed” as long as they personally decide not to act.
We document this publicly so that anyone can see: threats persist not because they were unnoticed, but because the responsible providers simply chose to do nothing.
Requests from private individuals:
DestroyList is an open-source, non-commercial volunteer project.
Private individuals may request the number of abuse reports we have sent for a specific domain, but only through public channels:
We do not respond to private e-mail requests from individuals about report counts.
This is a legal requirement for transparency and equal access to information.
Official government or law-enforcement requests may be answered privately.
If you were defrauded by a domain already listed here, check its addition date using the commit history or via our Telegram/Mastodon channels.
If the fraud happened after the domain was already listed, the registrar’s or host’s delay may indicate they share responsibility for the loss. Future potential victims can also see this negligence documented publicly.
Registrars and hosts that tolerate scam operations may reasonably be expected to assist victims or their legal representatives.
Research the record · use cases & historical vault
Network security · Threat research · AI/ML training · Trend analysis · Automation
Point-in-time history — every state of the list is reconstructable:
For either route, send the domain and a short explanation. No evidence or proof of ownership is required. Screenshots and links are optional; we review the listing ourselves.
评论