Free Privacy API
10 endpoints: IP geolocation, IP lookup, email breach checking, privacy scoring, DNS, WHOIS, reverse DNS, blacklist check, website status, and bulk lookup. No API key required. JSON response, CORS enabled.
$
curl https://hackmyip.com/api/ip
Copy
No API Key Start making requests immediately. No signup, no authentication.
JSON Response Clean JSON format. Easy to parse in any language.
CORS Enabled Access-Control-Allow-Origin: * — use from any domain.
Edge Network Served from Cloudflare's global edge. Low latency worldwide.
GET /api/ip
Returns the requesting client's IP address and geolocation data.
GET
https://hackmyip.com/api/ip
Example Request
curl https://hackmyip.com/api/ip
fetch('https://hackmyip.com/api/ip' )
.then(r => r.json())
.then(res => console.log(res.data.ip));
import requests
res = requests.get('https://hackmyip.com/api/ip' ).json()
print(res['data' ]['ip' ])
Example Response
{
"success" : true,
"data" : {
"ip" : "129.158.246.160" ,
"location" : {
"city" : "Ashburn" ,
"region" : "Virginia" ,
"country" : "US" ,
"continent" : "NA" ,
"latitude" : "39.04372" ,
"longitude" : "-77.48749" ,
"timezone" : "America/New_York" ,
"postal_code" : "20147"
},
"network" : {
"asn" : 31898,
"isp" : "Oracle Corporation" ,
"connection_type" : "HTTP/1.1" ,
"tls_version" : "TLSv1.3"
},
"is_eu" : false
}
}
Abbreviated. The full response also nests a privacy object (type, score, grade, is_vpn, is_datacenter, is_residential, hosting, proxy), location.country_name, and a top-level ipv6 boolean — all documented in the OpenAPI spec .
Response Fields
success boolean Envelope flag — every response is wrapped as { success, data }
data.ip string Public IP address (IPv4 or IPv6)
data.location.city string City based on IP geolocation
data.location.region string State or region
data.location.country string ISO 3166-1 alpha-2 country code
data.location.country_name string Full country name
data.location.continent string Continent code (NA, EU, AS, etc.)
data.location.latitude string Approximate latitude coordinate
data.location.longitude string Approximate longitude coordinate
data.location.timezone string IANA timezone identifier
data.location.postal_code string Postal or ZIP code
data.network.asn number Autonomous System Number
data.network.isp string ISP or organization name
data.network.connection_type string HTTP protocol version (HTTP/1.1, HTTP/2, HTTP/3)
data.network.tls_version string TLS version of the connection
data.privacy object type, score, grade, is_vpn, is_datacenter, is_residential, hosting, proxy
data.is_eu boolean Whether the IP is in an EU country
data.ipv6 boolean Whether the caller connected over IPv6
GET /api/lookup
Look up geolocation data for a specific IP address.
GET
https://hackmyip.com/api/lookup?ip=8.8.8.8
Parameters
ip string Required. IPv4 or IPv6 address to look up.
Example Request
curl "https://hackmyip.com/api/lookup?ip=8.8.8.8"
Usage Notes
This API is free for personal and commercial use. Please be reasonable with request volume. The API is powered by Cloudflare Workers and served from edge locations worldwide for minimal latency.
For high-volume usage or dedicated support, please reach out.
README Badge
Using the API in a project? Add the badge to your README so your users know where the IP data comes from. It renders fine through GitHub's image proxy:
Markdown
[](https://hackmyip.com/api)
HTML
<a href="https://hackmyip.com/api"><img src="https://hackmyip.com/badge.svg" alt="IP data by HackMyIP"></a>
GET /api/breach
Check if an email address has been exposed in data breaches. Scans known breach databases (XposedOrNot).
GET
https://hackmyip.com/api/breach?email=user@example.com
Parameters
email string Email address to check (required)
Example Request
curl "https://hackmyip.com/api/breach?email=user@example.com"
fetch('https://hackmyip.com/api/breach?email=user@example.com' )
.then(r => r.json())
.then(data => console.log(data.data.breaches));
Example Response
{
"success" : true,
"data" : {
"email" : "use***@example.com" ,
"breaches" : 13,
"services" : ["Adobe" , "Canva" , "LinkedIn" , ...],
"risk" : { "score" : 71, "level" : "high" },
"passwords" : {
"plain_text" : 3,
"weak_hash" : 2,
"strong_hash" : 3,
"total" : 8
}
}
}
GET /api/score
Get your IP's privacy and cleanliness score. Detects VPN, datacenter, or residential IP.
GET
https://hackmyip.com/api/score
Example Request
curl https://hackmyip.com/api/score
fetch('https://hackmyip.com/api/score' )
.then(r => r.json())
.then(data => console.log(data.data.privacy.grade));
Example Response
{
"success" : true,
"data" : {
"ip" : "203.0.113.42" ,
"location" : { "city" : "Tokyo" , "country" : "JP" },
"network" : { "isp" : "NTT" , "asn" : 2914 },
"privacy" : {
"type" : "residential" ,
"score" : 90,
"grade" : "A" ,
"is_vpn" : false,
"is_datacenter" : false
}
}
}
GET /api/dns
DNS record lookup for any domain. Supports A, AAAA, MX, NS, TXT, CNAME, CAA, SOA.
GET
https://hackmyip.com/api/dns?domain=github.com&type=MX
Example Request
curl "https://hackmyip.com/api/dns?domain=github.com&type=MX"
Example Response
{
"success" : true,
"data" : {
"domain" : "github.com" ,
"type" : "MX" ,
"records" : [
{ "name" : "github.com" , "TTL" : 3600, "data" : "1 aspmx.l.google.com." }
]
}
}
GET /api/whois
WHOIS / RDAP registration data for a domain: registrar, creation date, expiration, name servers.
GET
https://hackmyip.com/api/whois?domain=github.com
Example Request
curl "https://hackmyip.com/api/whois?domain=github.com"
Example Response
{
"success" : true,
"data" : {
"domain" : "GITHUB.COM" ,
"registrar" : "MarkMonitor Inc." ,
"creation_date" : "2007-10-09T18:20:50Z" ,
"expiration_date" : "2026-10-09T18:20:50Z" ,
"name_servers" : ["dns1.p08.nsone.net" ]
}
}
GET /api/rdns
Reverse DNS — resolves an IP address to its PTR hostname.
GET
https://hackmyip.com/api/rdns?ip=8.8.8.8
Example Request
curl "https://hackmyip.com/api/rdns?ip=8.8.8.8"
Example Response
{
"success" : true,
"data" : {
"ip" : "8.8.8.8" ,
"hostname" : "dns.google" ,
"ptr_record" : "8.8.8.8.in-addr.arpa"
}
}
GET /api/blacklist
Check an IPv4 against 12 spam / abuse DNSBLs (Spamhaus ZEN, Barracuda, SpamCop, UCEPROTECT, and more).
GET
https://hackmyip.com/api/blacklist?ip=8.8.8.8
Example Request
curl "https://hackmyip.com/api/blacklist?ip=8.8.8.8"
Example Response
{
"success" : true,
"data" : {
"ip" : "8.8.8.8" ,
"total_lists" : 12,
"total_checked" : 10,
"unavailable_count" : 2,
"listed_count" : 0,
"clean" : true,
"status" : "CLEAN" ,
"results" : [
{ "name" : "Spamhaus ZEN" , "zone" : "zen.spamhaus.org" , "listed" : false, "status" : "not_listed" }
]
}
}
GET /api/down
Is a website up or down. Returns HTTP status code and response time in ms.
GET
https://hackmyip.com/api/down?url=example.com
Example Request
curl "https://hackmyip.com/api/down?url=example.com"
Example Response
{
"success" : true,
"data" : {
"url" : "https://example.com" ,
"is_up" : true,
"status_code" : 200,
"status_text" : "OK" ,
"response_time_ms" : 142,
"server" : "cloudflare" ,
"content_type" : "text/html" ,
"powered_by" : null,
"note" : null,
"checked_at" : "2026-09-08T19:13:11.478Z"
}
}
POST /api/bulk
Batch lookup up to 50 IPs in a single POST request. Faster than sequential /api/lookup calls.
POST
https://hackmyip.com/api/bulk
Example Request
curl -X POST -H "Content-Type: application/json" \
-d '{"ips":["8.8.8.8","1.1.1.1"]}' \
https://hackmyip.com/api/bulk
Example Response
{
"success" : true,
"data" : {
"total" : 2,
"results" : [
{ "ip" : "8.8.8.8" , "country" : "US" , "city" : "Ashburn" , "isp" : "Google LLC" , "org" : "Google Public DNS" , "lat" : 39.03, "lon" : -77.5 },
{ "ip" : "1.1.1.1" , "country" : "AU" , "city" : "South Brisbane" , "isp" : "Cloudflare, Inc" , "org" : "APNIC and Cloudflare DNS Resolver project" , "lat" : -27.4766, "lon" : 153.0166 }
]
}
}
npm Package
Use our official JavaScript client for easy integration:
npm install hackmyip
const { getMyIP, checkBreach, getPrivacyScore } = require('hackmyip' );
const ip = await getMyIP();
const breach = await checkBreach('user@example.com' );
const score = await getPrivacyScore();
GitHub: github.com/Hackmyip/hackmyip-js
Using the API? Add a badge
Show off that your project runs on the free HackMyIP API with an embeddable SVG badge. Drop it in your README or site — one line of Markdown:
[](https://hackmyip.com)
Browse all badges & trust seals →