BYTETOOLS

Tor Exit Node List API

Free official Tor Project exit node list with no key: every current Tor exit IP as plain text, updated continuously. Essential for abuse filtering. Tested.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-20

What is the Tor Exit Node List API?

The Tor Project's bulk exit list is a free, key-free plain-text feed of every current Tor exit node IP address, updated continuously and published by the Tor Project itself.

This is the authoritative source — published by the Tor Project rather than inferred by a third party — which matters because commercial threat feeds often carry stale or speculative Tor data.

The response is plain text, one IP per line, and is meant to be fetched periodically and cached rather than queried per request. Loading it into a set once an hour and checking membership locally is the intended pattern.

Quick facts

Base URL
https://check.torproject.org
Authentication
No API key required.
Rate limit
Fetch periodically, not per request. The list changes over hours, not seconds.
Pricing
Free, published by the Tor Project.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Tor Exit Node List API

Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.

1. Fetch the current Tor exit node list

GET https://check.torproject.org/torbulkexitlist

curl
curl 'https://check.torproject.org/torbulkexitlist'
JavaScript (fetch)
const res = await fetch("https://check.torproject.org/torbulkexitlist");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://check.torproject.org/torbulkexitlist", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
171.25.193.25
80.67.167.81
198.98.51.189
89.58.26.216
109.70.100.4
5.45.102.93
192.42.116.99
192.42.116.44
87.118.116.103
192.42.116.12
89.58.41.156
109.70.100.1
179.43.182.232
109.70.100.2
37.187.5.192
109.70.100.8
195.176.3.23
109.70.100.6
192.42.116.42
192.42.116.92
192.42.116.14
109.70.100.11
109.70.100.7
192.42.116.50
109.70.100.9
192.42.116.43
192.42.116.95
192.42.116.94
190.120.229.98
192.4

Parameters

ParameterTypeRequiredDescription
torbulkexitlistpathOptionalPlain-text list of all exit node IPs. torbulkexitlist

Response fields

(plain text)text
One IPv4 address per line. Not JSON — split on newlines.

What you can build with the Tor Exit Node List API

  • Flag or challenge traffic arriving from Tor exit nodes
  • Enrich security logs with Tor origin data
  • Apply different rate limits to anonymised traffic
  • Research Tor network composition

Common errors and how to fix them

JSON parse error

The response is plain text.

Fix: Split on newlines and trim; there is no JSON wrapper.

List looks incomplete

Exit nodes change constantly.

Fix: Refresh hourly; a cached list from yesterday will miss current nodes.

Blocking all Tor users

Tor has many legitimate uses.

Fix: Consider challenging rather than blocking — journalists, activists and privacy-conscious users are affected by blanket blocks.

Tor Exit Node List API — frequently asked questions

Is the Tor exit list free?

Yes, it is published free by the Tor Project itself with no API key, which makes it the authoritative source rather than a third-party guess.

How often should I refresh it?

Hourly is reasonable. Exit nodes join and leave continuously, so a day-old list will be meaningfully out of date.

Should I block all Tor traffic?

Consider carefully. Tor is used by journalists, activists and ordinary privacy-conscious people as well as by abusers. Challenging with additional verification is usually better than a blanket block.

Why is it plain text rather than JSON?

It is designed to be fetched and loaded into a set for local membership checks, not queried per request. Plain text is the simplest format for that.

Tools that pair with this API

Tor Exit Node List is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.