
Free threat intelligence feeds for your firewall
Carpathian runs its own hardware in its own racks, so every request that hits our edge is logged and every address that scans us is recorded. We publish what that turns up: the addresses we block and the paths they probe, formatted so you can load them straight into the firewall or CDN you already run.
The data is free to download, use commercially, and redistribute. There is no account, no API key, and no rate card.
What is in the data
Everything here comes from traffic aimed at Carpathian infrastructure. We do not buy, scrape, or resell anyone else's data, and nothing in these files describes our customers or their traffic.
Because the hardware is ours, keeping a record of every probe costs us nothing beyond the disk it sits on, which is why the dataset goes back as far as it does.

Blocked addresses
Addresses that earned a block on our own infrastructure, merged from three places: hosts that generated a burst of error responses across our web edge, hosts banned by our intrusion detection rules, and hosts permanently banned by the SSH gateway after repeated authentication failures.
Each row carries the country, the network operator, when we first and last saw it, how many events it generated, and which subsystem banned it. Entries are ordered worst offender first, so truncating the file to fit a platform limit keeps the addresses that matter most.
Probed paths
The URLs scanners ask for when they are looking for something to exploit. Environment files, exposed git directories, forgotten admin panels, backup archives, and credentials left in config files.
This dataset is the more useful of the two for prevention, because it does not depend on recognizing the sender. A host you have never seen before still asks for the same handful of files, and you can drop that request on the first try.
Downloads
Every file is rebuilt hourly at the same URL, so you can point a firewall at it once and let it refresh on its own schedule rather than downloading anything by hand.
Loading the feed into your edge
Most platforms can pull the list on a schedule from its URL, which is the setup we recommend. The alternative is a manual upload, and a blocklist you refresh by hand is a blocklist that goes stale.
Palo Alto Networks
Create an External Dynamic List of type IP, point it at the plain list URL, set the repeat interval to hourly, then reference the list in a security policy that denies the traffic.
Objects > External Dynamic Lists > Add Type: IP List Source: https://api.carpathian.ai/public/threat-intel/blocklist.txt Repeat: Hourly
Cloudflare
Upload the Cloudflare CSV as a custom IP list, then write a WAF custom rule that blocks when the source address is in that list. Free plans cap lists at 10,000 entries, and the file is ordered worst offenders first so a truncated import still covers the heaviest scanners.
Manage Account > Configurations > Lists > Create new list Type: IP Address Upload CSV: carpathian-blocklist-cloudflare.csv WAF rule: (ip.src in $carpathian_threat) -> Block
FortiGate
Add the plain list as an external threat feed of type IP Address, set the refresh rate to 60 minutes, then use the feed as a source address in a deny policy.
Security Fabric > External Connectors > Threat Feeds > IP Address URI: https://api.carpathian.ai/public/threat-intel/blocklist.txt Refresh Rate: 60
AWS WAF
Import the IPSet JSON for each address family, then add a rule to your web ACL that blocks requests originating from either set.
aws wafv2 create-ip-set \ --name CarpathianThreatIntelIPv4 \ --scope REGIONAL \ --ip-address-version IPV4 \ --addresses file://addresses.json
nftables
Drop the include file on the host and load it from your ruleset. The file defines both address families and an input chain that discards matching traffic.
curl -o /etc/nftables.d/carpathian.conf \ https://api.carpathian.ai/public/threat-intel/blocklist-nftables.conf nft -f /etc/nftables.d/carpathian.conf
MikroTik RouterOS
Fetch the script to the router and import it. Every entry lands in a single address list you can reference from a firewall filter rule.
/tool fetch url="https://api.carpathian.ai/public/threat-intel/blocklist-mikrotik.rsc" /import file=blocklist-mikrotik.rsc
nginx
Include the map file in your http block and return 444 on a match, which closes the connection without sending a response. This one uses the path dataset rather than the IP list, so it catches scanners you have never seen before.
http {
include /etc/nginx/carpathian-paths.conf;
}
server {
if ($carpathian_threat_path) { return 444; }
}
License and attribution
Published under Creative Commons Attribution 4.0. You can use these files commercially, build products on them, and redistribute them, including in modified form. The one condition is credit: name Carpathian and link back to this page. Every file carries the license and source URL in its header, so a copy that has traveled a few hops still says where it came from.
The data is published as is. Verify it against your own environment before you block anything in production, because an address that scanned us may belong to a network you depend on.
Request a removal or a category change
Addresses get compromised, and shared or reassigned addresses can end up on a list because of what a previous tenant did. If an entry is wrong, or is filed under the wrong category, tell us and a person will look at it. We ask for contact details so we can follow up when a case needs more information, and we use them for nothing else.