See the network behind the address.
Tor exit, VPN provider, datacenter or an ordinary connection: ProofTell tells you which, with the country, city and network of the address. $0.50 per 1,000 lookups.
Looked up in memory on our own servers. The address is never sent to a third party.
- Network
- AS64500
- Organization
- Example Hosting B.V.
- Time zone
- Europe/Amsterdam
Where a connection comes from, and what it hides behind.
One request, one JSON object, for any public address.
Anonymity flags
Tor exit node, known VPN provider, datacenter range. Three booleans, plus one that says the address is anonymous.
Location
Country, region and city, with coordinates and the radius in kilometers within which they hold.
Network
The autonomous system that announces the address and the organization behind it.
Time zone
The local time zone of the address, to compare with the hour a user claims to be in.
IPv4 and IPv6
Both families are located and checked against the Tor list; VPN and datacenter detection covers IPv4. Private and reserved addresses are answered free.
Refreshed weekly
The location database and the lists are replaced every week, and each answer names the data set it came from.
One POST. One address.
Send the address of your end user, as your server saw it. A pt_test_ key returns simulated results for documented addresses, free.
The sample is the sandbox’s answer to its documented Tor address. A live answer adds the region, the coordinates with their accuracy radius, and the time zone.
curl https://api.prooftell.com/v1/ip \ -H "Authorization: Bearer $PROOFTELL_KEY" \ -H "Content-Type: application/json" \ -d '{ "ip": "203.0.113.66" }'
const res = await fetch("https://api.prooftell.com/v1/ip", { method: "POST", headers: { "Authorization": `Bearer ${process.env.PROOFTELL_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ ip: "203.0.113.66", }), }) const address = await res.json()
import os, requests
res = requests.post(
"https://api.prooftell.com/v1/ip",
headers={"Authorization": f"Bearer {os.environ['PROOFTELL_KEY']}"},
json={
"ip": "203.0.113.66",
},
)
result = res.json()
print(result["is_tor"], result["country_code"]){
"status": "success",
"ip": "203.0.113.66",
"version": 4,
"routable": true,
"country_code": "US",
"country": "United States",
"city": "Sandbox City",
"asn": 64500,
"as_org": "SANDBOX-NET",
"is_tor": true,
"is_vpn": false,
"is_datacenter": true,
"is_anonymous": true,
"data_version": "sandbox",
"cost": "0.0000",
"currency": "USD",
"signals": {
"ip": { "status": "ok", "cost": "0.0000" }
}
}$0.50 per 1,000 lookups.
- $0.0005 per address, taken from your dollar balance. No plan, no minimum volume.
- Charged when a public address is looked up.
- Private and reserved addresses are answered and free. So are sandbox calls.
The tells a connection gives away.
Sent to /v1/assess with a phone or an email, the same lookup feeds the score. These are the reasons it can add:
- ip_torThe IP address is a Tor exit node.
- ip_vpnThe IP address belongs to a VPN provider.
- ip_datacenterThe IP address belongs to a datacenter, not a residential or mobile network.
- ip_not_routableThe IP address is private or reserved, not an internet address.
- geo_mismatchThe phone number’s country differs from the IP address’s.
About the IP lookup.
Is the IP address sent to a third party?
How accurate is the location?
Which VPNs and proxies does it detect?
How fresh is the data?
data_version, so you can tell which data set an answer came from.Where does the data come from?
This product includes GeoLite2 data created by MaxMind, available from https://www.maxmind.com.
Look up your first address in a minute.
Create an account, take a sandbox key, make your first call in minutes.