Tor Exit Nodes Geolocated API
On this page
Tor routes traffic through a network of volunteer-operated nodes, with the final node — the exit node — being the IP address that destination servers see. This API returns a current list of active Tor exit nodes, geolocated to country level, along with the carrier information for each.
It's useful for applications that need to identify or flag Tor traffic — content personalisation that requires accurate location, fraud detection, or access control policies. The list is paginated and reflects the current state of active exit nodes. For an interactive view, see the Tor Exit Nodes insights page.
Endpoint
GET
https://api-bdc.net/data/tor-exit-nodes-listParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
batchSize | integer (int32) | Optional | Requested batch size. Maximum value = 1000 |
offset | integer (int32) | Optional | Offset. Number of entries to skip |
sort | string, enum (ip, countryCode, countryName, carriers) | Optional | Sort response by a field value. Default value: ip |
order | string, enum (asc, desc) | Optional | Sort order. Default value: asc |
localityLanguage | string | Optional | Preferred language for locality names in ISO 639-1 format, such as 'en' for English, 'es' for Spanish etc. If the requested language is not available for a requested location, it will default to English. If no English variant is known, will provide the native, local names |
key | string | Optional | Your API key |
Responses
200OK
Sample Request
https://api-bdc.net/data/tor-exit-nodes-list?batchSize=10&offset=0&localityLanguage=en&key=[YOUR API KEY]Sample Response
JSON View
Response Schema
totalintegerTotal number of nodes available
offsetintegerNumber of entries skipped (pagination offset)
batchintegerNumber of entries in the current batch
▶nodesarrayArray of node entries returned
ipstringTOR node IP address
countryNamestringCountry name localised to the language as defined by 'localityLanguage' request parameter
countryCodestringCountry ISO 3166-1 Alpha-2 code
▶carriersarrayList of Autonomous Systems (AS) announcing this IP address on BGP
asnstringThe Autonomous System Number in prefixed string format (e.g. "AS13335").
asnNumericintegerThe Autonomous System Number as an unsigned integer (e.g. 13335).
organisationstringThe organisation or entity the AS is registered for, as recorded in the RIR database.
namestringThe short handle or network name assigned to the AS by the RIR (e.g. "CLOUDFLARENET").
registrystringThe Regional Internet Registry (RIR) the AS is registered with
registeredCountrystringRegistered Country ISO 3166-1 Alpha-2 code
registeredCountryNamestringRegistered Country localised name. The language is as defined by the 'localityLanguage' request parameter
registrationDatestringInitial registration date of the autonomous system in 'yyyy-MM-dd' format. This field is omitted when unavailable from the source Regional Internet Registry.
registrationLastChangestringDate of the most recent registration update or modification in 'yyyy-MM-dd' format. This field is omitted when unavailable from the source Regional Internet Registry.
totalIpv4AddressesintegerTotal number of IP addresses announced by the AS
totalIpv4PrefixesintegerTotal number of ipV4 BGP prefixes announced by the AS
totalIpv4BogonPrefixesintegerTotal number of ipV4 bogon prefixes announced by the AS
totalIpv6PrefixesintegerTotal number of ipV6 BGP prefixes announced by the AS
totalIpv6BogonPrefixesintegerTotal number of ipV6 bogon prefixes announced by the AS
rankintegerGlobal rank by total number of IP addresses announced. Omitted when the ASN is not ranked (i.e. ASNs with no active IP announcements)
rankTextstringHuman-readable global rank string including the total number of ranked ASNs (e.g. "#297 out of 79,835"). Omitted when the ASN is not ranked
400Bad request
Sample Response
JSON View
403Access denied, or your quota limit has exceeded
Sample Response
JSON View
404Found no valid entry for the request
Sample Response
JSON View
406Found too many result items. Please reduce the scope of your request
Sample Response
JSON View
500An error has occurred and did not complete your request. Please try again
Sample Response
JSON View