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_key

Rate 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/bulk

Batch 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

StatusCodeMeaning
400invalid_inputThe path/query parameter failed validation.
401missing_keyNo Authorization header was provided.
401invalid_keyThe key is unknown or revoked.
429rate_limitedDaily quota exceeded.
502resolve_failedUpstream lookup failed; retry later.