Four ways to pull the feed itself. Everything below is free, unauthenticated and CC0.
Every window and IOC type as JSON. No key, no signup, no per-caller throttling.
Windows: today · week · month · yearRefresh: 15 min
All of today's IOCs as JSON:
curl -s https://api.tweetfeed.live/v1/today | jq .
Filter by IOC type (url, domain, ip, sha256, md5):
curl -s https://api.tweetfeed.live/v1/today/url
Combine type and tag - this week's Cobalt Strike IPs:
curl -s https://api.tweetfeed.live/v1/week/ip/CobaltStrike
Response shape, one IOC per array element:
{
"date": "2026-05-03 06:07:00",
"user": "PhishStats",
"type": "domain",
"value": "evil.example.shop",
"tags": ["#phishing"],
"tweet": "https://x.com/PhishStats/status/..."
}
Full API referenceOpenAPI spec
The same four windows as CSV, straight off the data repo. Header: date,user,type,value,tags,tweet.
Windows: today · week · month · year
wget https://raw.githubusercontent.com/0xDanielLopez/TweetFeed/master/today.csv
wget https://raw.githubusercontent.com/0xDanielLopez/TweetFeed/master/week.csv
wget https://raw.githubusercontent.com/0xDanielLopez/TweetFeed/master/month.csv
Raw feeds
Plain-text blocklists
#
- Ready-to-consume exports of the last 30 days.
- One indicator per line.
- For Pi-hole, AdGuard Home, hosts files, dnsmasq and BIND RPZ.
- For firewalls and IDS/SIEM tooling.
Window: 30 daysRefresh: 15 min
# Plain-text exports, rolling 30-day window, one indicator per line
curl -sfL https://api.tweetfeed.live/v1/blocklist/domains.txt # bare domains (Pi-hole)
curl -sfL https://api.tweetfeed.live/v1/blocklist/hosts.txt # 0.0.0.0 hosts file
curl -sfL https://api.tweetfeed.live/v1/blocklist/adguard.txt # AdGuard Home
curl -sfL https://api.tweetfeed.live/v1/blocklist/dnsmasq.txt # dnsmasq address= rules
curl -sfL https://api.tweetfeed.live/v1/blocklist/rpz.txt # BIND RPZ zone
curl -sfL https://api.tweetfeed.live/v1/blocklist/ips.txt # bare IPs
curl -sfL https://api.tweetfeed.live/v1/blocklist/urls.txt # full URLs, not just hosts
urls.txt is the exception: it carries the full URL, not the host.
- It also covers IOCs on shared infrastructure.
- Host-level blocking cannot reach those without collateral damage.
- These files are a 1:1 mirror of the feed, with no extra quality gate.
- Pair them with an allowlist.
- If change control won't deploy a single-reporter list, start with a subset.
domains-corroborated.txt, ips-corroborated.txt, urls-corroborated.txt
- That subset is also listed by URLhaus, ThreatFox, MalwareBazaar, USOM or IPsum.
- Or start with
nrd-domains.txt, a higher-signal subset.
- It holds newly registered domains already reported malicious.
adguard.txt now has an AdGuard/uBlock metadata header (! comments).
- It replaces the generic
# header.
- So it drops straight into a custom filter list.
Bad domains listBad IPs list