Cisco Talos PhishTank
Cisco Talos PhishTank
PhishTank publishes verified, online phishing records as XML, CSV, JSON and serialized PHP downloads and offers a URL-status POST API. Feed records include a phish ID, URL, submission and verification times, online status, target brand and network details; a free application key is expected for automated downloads and optional for low-volume API calls.
Coverage
The community-maintained download contains only verified phishes that are online, and files update hourly. Without an application key, downloads are limited to a few per day; API request limits are returned in response headers rather than published as fixed numbers.
Verdict
This is defensive data for checking whether a URL appears in a community-verified phishing set and for tracking submission-to-verification timing. Do not visit or fetch listed URLs or hosts; download the feed or submit only URLs already present in your own records to the status API. Community voting and the online-only filter can create verification lag and omit new, disputed or deactivated campaigns. The provider permits commercial and non-commercial API use, but clients must identify themselves with a descriptive User-Agent and throttle from the returned limit headers.
Get the free weekly email
Free weekly email of newly verified free data. Unsubscribe by emailing us.
By entering your email and clicking Subscribe, you agree to receive the Signal Lab weekly email from Quantum Data Technologies Ltd., 3200-650 West Georgia Street, Vancouver, BC V6B 4P7, Canada (signal-lab@qdt.ai). You can unsubscribe at any time: reply "unsubscribe" to any email or write to signal-lab@qdt.ai. See our Privacy Policy.
Use in your agent
Load the PhishTank verified-online JSON feed into Parquet. Checked against the provider's documentation on Nov 1, 2026.
Access
- Create a free account and application key for automated file downloads.
- Set PHISHTANK_APP_KEY and use a descriptive User-Agent that identifies your application.
Request
curl -H 'User-Agent: phishtank/your-application' 'https://data.phishtank.com/data/$PHISHTANK_APP_KEY/online-valid.json.bz2' -o online-valid.json.bz2Format
Bzip2-compressed JSON array with phish ID, URL, detail URL, submission and verification timestamps, verified and online flags, target brand, and nested IP/network details.
Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
"""PhishTank verified-online JSON feed -> pandas -> Parquet. Do not request listed URLs."""
import bz2
import json
import os
import requests
import pandas as pd
APP_KEY = os.environ["PHISHTANK_APP_KEY"]
URL = f"https://data.phishtank.com/data/{APP_KEY}/online-valid.json.bz2"
HEADERS = {"User-Agent": "phishtank/signal-lab-ingestion"}
r = requests.get(URL, headers=HEADERS, timeout=120)
r.raise_for_status()
records = json.loads(bz2.decompress(r.content))
df = pd.json_normalize(records, max_level=0)
df["details"] = df["details"].map(json.dumps)
for column in ["submission_time", "verification_time"]:
df[column] = pd.to_datetime(df[column], utc=True)
df.to_parquet("phishtank_verified_online.parquet", index=False)
print(len(df), "verified online phishes", df["verification_time"].max().isoformat())Not run: it needs a free API key.
Limits
- Files update hourly.
- Keyless access is limited to a few downloads per day; exact keyed limits are returned in response headers.
- API requests over the current limit return HTTP 509.
Quirks
- The download contains only records marked verified and online, so it excludes unverified reports and entries no longer considered operational.
- details is a nested list of IP and network observations; serialize it before writing Parquet or normalize it into a second table.
- The feed contains dangerous destinations. Do not visit or fetch listed URLs or hosts; request only the feed file.
Terms and attribution
- The FAQ permits API use for commercial and non-commercial purposes.
- Automated downloads should use a free application key, and a descriptive User-Agent is required.
Sources
- https://phishtank.org/developer_info.php: “Available in multiple formats and updated hourly, these make it easy to have fast and up to date phishing detection built into your application.”
- https://phishtank.org/developer_info.php: “Without this key, you will be limited to a few downloads per day.”
- https://phishtank.org/faq.php: “Is it OK to use the API for both commercial and non-commercial uses?”
- https://phishtank.org/api_info.php: “Going over-limit will result in an HTTP 509 error.”
Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer