API Documentation
Base URL: https://api.ip.utilo.kr
All responses are JSON. Success: { data: {...} }, Error: { error: { code, message } }.
GET /ip
Returns the caller’s IP address and GeoIP information.
curl https://api.ip.utilo.kr/ip
Response example:
{
"data": {
"ip": "203.0.113.1",
"country": "US",
"city": "San Francisco",
"region": "California",
"timezone": "America/Los_Angeles",
"latitude": 37.7749,
"longitude": -122.4194,
"isp": "Comcast",
"asn": "AS7922",
"org": "Comcast Cable Communications"
}
}
GET /ip/:ip
Look up GeoIP information for a specific IP address.
curl https://api.ip.utilo.kr/ip/8.8.8.8
GET /ip/:ip/vpn
Detect whether an IP belongs to a VPN, proxy, or hosting provider.
curl https://api.ip.utilo.kr/ip/1.1.1.1/vpn
Response example:
{
"data": {
"ip": "1.1.1.1",
"isVpn": false,
"isProxy": false,
"isHosting": true,
"isMobile": false,
"confidence": "high"
}
}
GET /whois/:ip
Look up RDAP/Whois information for an IP address.
curl https://api.ip.utilo.kr/whois/8.8.8.8
Response example:
{
"data": {
"ip": "8.8.8.8",
"name": "GOGL",
"handle": "NET-8-8-8-0-2",
"startAddress": "8.8.8.0",
"endAddress": "8.8.8.255",
"country": "US",
"registrant": "Google LLC",
"events": [
{ "action": "registration", "date": "2014-03-14T16:52:05-04:00" }
]
}
}
GET /dns/:domain
Look up DNS records for a domain.
| Parameter | Description | Default |
|---|---|---|
type | Record type: A, AAAA, MX, TXT, NS, CNAME | A |
curl "https://api.ip.utilo.kr/dns/example.com?type=MX"
Response example:
{
"data": {
"records": [
{ "name": "example.com", "type": "MX", "ttl": 3600, "data": "10 mail.example.com." }
]
}
}
GET /dns/:ip/reverse
Perform a reverse DNS (PTR) lookup for an IP address.
curl https://api.ip.utilo.kr/dns/8.8.8.8/reverse
GET /blacklist/:ip
Check if an IP address is listed on blacklists. IPv4 only.
curl https://api.ip.utilo.kr/blacklist/8.8.8.8
Response example:
{
"data": {
"ip": "8.8.8.8",
"isListed": false,
"sources": [
{ "name": "AbuseIPDB", "listed": false, "confidence": 0 }
]
}
}
GET /cidr
Calculate CIDR notation details.
| Parameter | Description | Example |
|---|---|---|
range | CIDR range | 192.168.1.0/24 |
curl "https://api.ip.utilo.kr/cidr?range=10.0.0.0/16"
Response example:
{
"data": {
"network": "10.0.0.0",
"broadcast": "10.0.255.255",
"subnetMask": "255.255.0.0",
"totalHosts": 65536,
"usableHosts": 65534,
"firstHost": "10.0.0.1",
"lastHost": "10.0.255.254"
}
}
MCP Server
POST /mcp — JSON-RPC 2.0 endpoint for LLM/AI tool integration.
curl -X POST https://api.ip.utilo.kr/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Connect directly from any MCP (Model Context Protocol) compatible AI client.
Caching
| Endpoint | Cache TTL |
|---|---|
/ip, /ip/:ip | 24 hours |
/ip/:ip/vpn | 6 hours |
/whois/:ip | 7 days |
/blacklist/:ip | 1 hour |
/dns/:domain | 1 hour |
/cidr | No cache |
Rate Limiting
Requests are limited to 60 per minute per IP. Exceeding the limit returns 429 Too Many Requests.