Developer API
IP intelligence, one REST call away
Geolocation, DNS records and proxy/VPN/Tor detection over a clean JSON API. Authenticate with a Bearer key and ship.
Bearer auth
Pass your key in the Authorization header.
Generous limits
100/day free, 10,000/day on Pro.
Clean JSON
Predictable { ok, data } envelope and error codes.
Authentication
Create a key on your API keys page and send it as a Bearer token. Keys are shown once — store them securely.
Authorization: Bearer mip_your_api_keyRate limits
Every response includes X-RateLimit-Limit and X-RateLimit-Remaining. Exceeding your daily quota returns 429 with a rate_limited error.
Endpoints
GET
/api/v1/ip/{ip}Geolocation + proxy/VPN/Tor detection for an IP.
Request
curl https://myiplocation.org/api/v1/ip/8.8.8.8 \
-H "Authorization: Bearer mip_your_api_key"Response
{
"ok": true,
"data": {
"ip": "8.8.8.8",
"geo": {
"city": "Mountain View",
"region": "California",
"country_code": "us",
"country_name": "United States",
"latitude": 37.4056,
"longitude": -122.0775,
"timezone": "America/Los_Angeles"
},
"privacy": {
"is_proxy": false,
"is_vpn": false,
"is_tor": false,
"is_datacenter": true,
"risk_score": 20,
"data_ready": true
}
}
}GET
/api/v1/dns?host={host}A, AAAA, CNAME, MX, NS, TXT and SOA records.
Request
curl "https://myiplocation.org/api/v1/dns?host=example.com" \
-H "Authorization: Bearer mip_your_api_key"Response
{
"ok": true,
"data": {
"host": "example.com",
"records": {
"A": ["93.184.216.34"],
"AAAA": [],
"MX": [],
"NS": ["a.iana-servers.net", "b.iana-servers.net"],
"TXT": ["v=spf1 -all"]
}
}
}GET
/api/v1/proxy-check?ip={ip}Proxy / VPN / Tor / datacenter verdict with a risk score.
Request
curl "https://myiplocation.org/api/v1/proxy-check?ip=1.2.3.4" \
-H "Authorization: Bearer mip_your_api_key"Response
{
"ok": true,
"data": {
"ip": "1.2.3.4",
"is_proxy": false,
"is_vpn": false,
"is_tor": false,
"is_datacenter": true,
"risk_score": 25,
"signals": ["datacenter"],
"data_ready": true
}
}POST
/api/v1/bulkBatch geolocation + proxy detection for up to 50 IPs (Pro only).
Request
curl -X POST https://myiplocation.org/api/v1/bulk \
-H "Authorization: Bearer mip_your_api_key" \
-H "Content-Type: application/json" \
-d '{"ips":["8.8.8.8","1.1.1.1"]}'Response
{
"ok": true,
"data": {
"count": 2,
"results": [
{ "ip": "8.8.8.8", "geo": { "country_code": "us" }, "privacy": { "is_datacenter": true } }
]
}
}Error codes
| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_input | The path/query parameter failed validation. |
| 401 | missing_key | No Authorization header was provided. |
| 401 | invalid_key | The key is unknown or revoked. |
| 429 | rate_limited | Daily quota exceeded. |
| 502 | resolve_failed | Upstream lookup failed; retry later. |