Your IP Address
IPv4
216.73.216.73
IPv6
Checking...
Location
Columbus, Ohio
Country
πΊπΈ United States
ISP
Amazon.com, Inc.
ASN
AS16509
VPN
No
Proxy
No
Tor
No
Hosting
No
Timezone
America/New_York
Coordinates
39.9612, -82.9988
Precise IP geolocation for modern applications
Get accurate location data from any IP address. City-level precision, real-time updates, and all lookups processed in-house for maximum privacy.
100%
In-house processing
193
Countries covered
>10M
External API calls
>15K
Active users
REST API
Simple, private API
All lookups are processed locally using our own geolocation database. No data is sent to third parties.
GET
/api/lookup/my
Get your own IP info
cURL
curl "https://ipaddress.to/api/lookup/my"
JavaScript
const res = await fetch('https://ipaddress.to/api/lookup/my'); const data = await res.json(); console.log(data);
Python
import requests data = requests.get('https://ipaddress.to/api/lookup/my').json() print(data)
PHP
$data = json_decode(
file_get_contents('https://ipaddress.to/api/lookup/my'),
true
);
print_r($data);C#
using var client = new HttpClient(); var json = await client.GetStringAsync("https://ipaddress.to/api/lookup/my"); Console.WriteLine(json);
Go
resp, _ := http.Get("https://ipaddress.to/api/lookup/my") body, _ := io.ReadAll(resp.Body) fmt.Println(string(body))
Ruby
require 'net/http' require 'json' data = JSON.parse(Net::HTTP.get(URI('https://ipaddress.to/api/lookup/my'))) puts data
Java
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://ipaddress.to/api/lookup/my")).build();
String body = client.send(req, BodyHandlers.ofString()).body();
System.out.println(body);Perl
use LWP::Simple; use JSON; my $data = decode_json(get('https://ipaddress.to/api/lookup/my')); print $data->{ip};
Rust
let body = reqwest::get("https://ipaddress.to/api/lookup/my") .await?.text().await?; println!("{}", body);
Response
{
"success": true,
"ip": "203.45.167.89",
"type": "IPv4",
"country": "United States",
"country_code": "US",
"region": "California",
"city": "San Francisco",
"latitude": 37.7749,
"longitude": -122.4194,
"timezone": "America/Los_Angeles",
"isp": "Cloudflare, Inc.",
"asn": "AS13335"
}
GET
/api/lookup/{ip_or_hostname}
Lookup an IP address or hostname
ip_or_hostname optional
string
IPv4/IPv6 address or hostname. Omit to get your own IP info.
Example
curl "https://ipaddress.to/api/lookup/8.8.8.8"
Response
{
"success": true,
"ip": "8.8.8.8",
"type": "IPv4",
"rdns": "dns.google",
"location": {
"continent": "NA",
"continent_name": "North America",
"country": "United States",
"country_code": "US",
"state": "California",
"city": "Mountain View",
"latitude": 37.422,
"longitude": -122.085,
"timezone": "America/Los_Angeles",
"is_eu_member": false,
"calling_code": "1",
"capital": "Washington, D.C.",
"languages": "English",
"country_tld": ".us",
"currency": { "code": "USD", "name": "US Dollar" }
},
"asn": {
"asn": 15169,
"descr": "Google LLC",
"country": "US",
"org": "Google LLC"
},
"company": { "name": "Google LLC" },
"is_vpn": false,
"is_proxy": false,
"is_tor": false,
"is_hosting": false,
"vpn_provider": null
}
GET
/api/whois/{ip_or_domain}
WHOIS/RDAP lookup (subdomains auto-stripped to root domain)
query required
string
IP address (v4/v6) or domain name to query
cURL
curl "https://ipaddress.to/api/whois/google.com"
JavaScript
const res = await fetch('https://ipaddress.to/api/whois/google.com'); const data = await res.json(); console.log(data.parsed.registrar); // "MarkMonitor Inc."
Python
import requests data = requests.get('https://ipaddress.to/api/whois/google.com').json() print(data['parsed']['registrar'])
PHP
$data = json_decode(
file_get_contents('https://ipaddress.to/api/whois/google.com'),
true
);
echo $data['parsed']['registrar'];C#
using var client = new HttpClient(); var json = await client.GetStringAsync( "https://ipaddress.to/api/whois/google.com"); Console.WriteLine(json);
Go
resp, _ := http.Get("https://ipaddress.to/api/whois/google.com") body, _ := io.ReadAll(resp.Body) fmt.Println(string(body))
Perl
use LWP::Simple; use JSON; my $data = decode_json(get('https://ipaddress.to/api/whois/google.com')); print $data->{parsed}{registrar};
Response (domain)
{
"success": true,
"query": "google.com",
"type": "domain",
"found": true,
"parsed": {
"domain_name": "GOOGLE.COM",
"registrar": "MarkMonitor Inc.",
"registrar_url": "https://rdap.markmonitor.com/rdap/domain/GOOGLE.COM",
"registrar_iana_id": "292",
"creation_date": "1997-09-15T04:00:00Z",
"expiry_date": "2028-09-14T04:00:00Z",
"updated_date": "2026-05-11T18:51:14Z",
"status": ["client delete prohibited", "client transfer prohibited"],
"nameservers": ["ns1.google.com", "ns2.google.com"],
"dnssec": "unsigned",
"abuse_email": "[email protected]",
"abuse_phone": "tel:+1.2086851750"
},
"source": "rdap",
"duration_ms": 342
}
GET
/api/dns/{type}/{domain}
DNS propagation checker across 40 global servers
type required
string
DNS record type: A, AAAA, CNAME, MX, NS, TXT, SOA, PTR, SRV, CAA
domain required
string
Domain to query (e.g., google.com)
server optional
string
Query a single DNS server IP instead of all 40. Pass as query param: ?server=8.8.8.8
cURL
curl "https://ipaddress.to/api/dns/a/google.com"
JavaScript
const res = await fetch('https://ipaddress.to/api/dns/mx/google.com'); const reader = res.body.getReader(); // Streams NDJSON β one result per line per server
Python
import requests, json r = requests.get('https://ipaddress.to/api/dns/ns/google.com', stream=True) for line in r.iter_lines(): print(json.loads(line))
Response is NDJSON (streaming). Each line is a JSON object: start, result (Γ40 servers), then done with propagation summary.
GET
/api/resolve/{hostname}
Resolve hostname to IP addresses
hostname required
string
Hostname to resolve (e.g., github.com)
cURL
curl "https://ipaddress.to/api/resolve/github.com"
JavaScript
const res = await fetch('https://ipaddress.to/api/resolve/github.com'); const data = await res.json(); console.log(data.a); // ["140.82.121.3"]
Python
import requests data = requests.get('https://ipaddress.to/api/resolve/github.com').json() for ip in data['a']: print(ip)
PHP
$data = json_decode(
file_get_contents('https://ipaddress.to/api/resolve/github.com'),
true
);
print_r($data['a']); // IPv4 addressesC#
using var client = new HttpClient(); var json = await client.GetStringAsync( "https://ipaddress.to/api/resolve/github.com"); Console.WriteLine(json);
Go
resp, _ := http.Get("https://ipaddress.to/api/resolve/github.com") body, _ := io.ReadAll(resp.Body) fmt.Println(string(body))
Perl
use LWP::Simple; use JSON; my $data = decode_json(get('https://ipaddress.to/api/resolve/github.com')); print join("\n", @{$data->{a}});
Response
{
"success": true,
"hostname": "github.com",
"a": ["140.82.121.3"],
"aaaa": [],
"cname": [],
"reverse": {
"140.82.121.3": "lb-140-82-121-3-iad.github.com"
},
"total_ips": 1,
"has_ipv4": true,
"has_ipv6": false,
"duration_ms": 87
}
GET
/api/score/{ip_or_hostname}
IP fraud risk score with threat indicators
ip_or_hostname optional
string
IP address or hostname to score. Use "my" or omit for your own IP.
cURL
curl "https://ipaddress.to/api/score/91.246.179.201"
JavaScript
const res = await fetch('https://ipaddress.to/api/score/91.246.179.201'); const data = await res.json(); console.log(data.score, data.risk, data.vpn_provider); // 74 "critical" "ExpressVPN"
Python
import requests data = requests.get('https://ipaddress.to/api/score/91.246.179.201').json() print(f"Score: {data['score']}/100 ({data['risk']})") print(f"VPN: {data['vpn_provider']}")
PHP
$data = json_decode(
file_get_contents('https://ipaddress.to/api/score/91.246.179.201'),
true
);
echo $data['score'] . ' β ' . $data['risk'];Response
{
"success": true,
"ip": "91.246.179.201",
"score": 74,
"risk": "critical",
"vpn_provider": "ExpressVPN",
"rdns": null,
"location": {
"country": "United States",
"country_code": "US",
"city": "Fargo",
"currency": { "code": "USD", "name": "US Dollar" }
},
"asn": { "asn": 137409, "org": "GSL Networks Pty LTD" },
"company": { "name": "GSL Networks Pty LTD", "type": "hosting" },
"checks": {
"vpn_detected": true,
"vpn_asn": true,
"hosting_asn": true,
"tor_exit": false,
"blocklist_listed": true,
"blocklist_count": 4,
"has_rdns": false
},
"factors": [
{ "name": "VPN Provider ASN", "impact": "high", "detail": "Identified as ExpressVPN" },
{ "name": "Threat Intelligence", "impact": "high", "detail": "IP found on 4 critical-severity threat intelligence feed(s)" }
],
"duration_ms": 45
}Try it live
API Playground
Test all APIs directly in your browser.
Live Testing
Ready
β
// Click "Run Test" or a preset to make a request