Free IP to Geolocation REST API

Fast, reliable geolocation data for IPv4 & IPv6 addresses. Support for JSON, XML, CSV, YAML responses with reverse IP lookup. No API key required.

🌐

IPv4 & IPv6 Support

Full support for both IPv4 and IPv6 addresses with dedicated endpoints

📄

Multiple Formats

JSON, XML, CSV, and YAML response formats for maximum compatibility

🔍

Reverse IP Lookup

Resolve hostnames to IP addresses and get geolocation data

Easy Integration

Works with PHP, JavaScript, Node.js, Python, Java, and more

🚀

Fast & Reliable

High-performance API with multiple data providers

💰

Free to Use

No signup required, 100 requests per minute per IP

How It Works

Simple REST API calls return comprehensive geolocation data

Sample JSON Response

{
  "ip": "8.8.8.8",
  "continent": "North America",
  "country": "United States",
  "countryCode": "US",
  "region": "California",
  "city": "Mountain View",
  "lat": 37.4056,
  "lon": -122.0775,
  "timezone": "America/Los_Angeles",
  "isp": "Google LLC",
  "org": "Google Public DNS",
  "as": "AS15169 Google LLC"
}

Sample XML Response

<geoip>
  <ip>8.8.8.8</ip>
  <continent>North America</continent>
  <country>United States</country>
  <countryCode>US</countryCode>
  <region>California</region>
  <city>Mountain View</city>
  <lat>37.4056</lat>
  <lon>-122.0775</lon>
  <timezone>America/Los_Angeles</timezone>
  <isp>Google LLC</isp>
</geoip>

Database Statistics

Real-time database status and record counts

Loading database statistics...

API Endpoints

Complete REST API reference

Method Endpoint Description Parameters Example
GET /geoip Get GeoIP for any IP address ip, format, provider, callback /geoip?ip=8.8.8.8
GET /geoip/ipv4 IPv4 addresses only ip, format, provider, callback /geoip/ipv4?ip=8.8.8.8&callback=myCallback
GET /geoip/ipv6 IPv6 addresses only ip, format, provider, callback /geoip/ipv6?ip=2001:4860:4860::8888
GET /geoip/stats Database statistics provider /geoip/stats
GET /geoip/health API health check provider /geoip/health
GET /geoip/providers Available providers - /geoip/providers
POST /geoip/switch-provider Switch data provider provider (maxmind|dbip) POST /geoip/switch-provider?provider=dbip
POST /geoip/update Update databases provider, force, no-backup POST /geoip/update?provider=all&force=1

Rate Limiting

100 requests per minute per IP address. Response headers include:

  • X-RateLimit-Limit: Maximum requests allowed
  • X-RateLimit-Remaining: Requests remaining in current window
  • X-RateLimit-Reset: Unix timestamp when rate limit resets

Common HTTP Status Codes

  • 200: Success
  • 400: Bad Request (invalid IP address)
  • 404: Not Found
  • 429: Too Many Requests (rate limited)
  • 500: Internal Server Error

Try It Now

Test the API with live requests

Leave empty to use your current IP

Only for JSON format

Quick test:

Integration Examples

Ready-to-use code snippets for popular languages

cURL

curl -s "https://geoip.vuiz.net/geoip?ip=8.8.8.8" | jq

JavaScript (Browser)

fetch('https://geoip.vuiz.net/geoip?ip=8.8.8.8')
  .then(r => r.json())
  .then(d => console.log(d.country, d.city));

Node.js

const r = await fetch('https://geoip.vuiz.net/geoip?ip=8.8.8.8');
console.log(await r.json());

Python

import requests

r = requests.get('https://geoip.vuiz.net/geoip', 
                 params={'ip': '8.8.8.8'})
print(r.json())

PHP

<?php
$ch = curl_init('https://geoip.vuiz.net/geoip?ip=8.8.8.8');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($ch);
?>

Java

var client = java.net.http.HttpClient.newHttpClient();
var request = java.net.http.HttpRequest.newBuilder(
    java.net.URI.create("https://geoip.vuiz.net/geoip?ip=8.8.8.8"))
    .build();
var response = client.send(request, 
    java.net.http.HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

JSONP (Browser)

<script>
function myCallback(data) {
  console.log(data);
}
</script>
<script src="https://geoip.vuiz.net/geoip?ip=8.8.8.8&callback=myCallback"></script>

Other Formats

# XML format
curl "https://geoip.vuiz.net/geoip?ip=8.8.8.8&format=xml"

# CSV format  
curl "https://geoip.vuiz.net/geoip?ip=8.8.8.8&format=csv"

# YAML format
curl "https://geoip.vuiz.net/geoip?ip=8.8.8.8&format=yaml"

Use Cases

Common applications for IP geolocation

  • Content personalization by location
  • Traffic analytics & fraud detection hints
  • Regional routing & compliance
  • Language/currency suggestions
  • Security monitoring & access control
  • Geotargeted advertising
  • Load balancing & CDN routing
  • Market research & analytics

Simple Pricing

Start free, scale as needed

Free Tier

$0
  • No signup required
  • 100 requests per minute per IP
  • Fair-use policy
  • Rate limit headers included
  • All formats supported
Start Free

Enterprise

Custom
  • Higher rate limits
  • SLA guarantees
  • Dedicated support
  • Custom integrations
  • On-premise deployment
Contact Sales

Frequently Asked Questions

Everything you need to know about our API

Is the API free to use?

Yes, our GeoIP API is completely free with no signup required. Rate limit: 100 requests per minute per IP address with fair-use policy.

Do you support IPv6 addresses?

Yes, we fully support both IPv4 and IPv6 addresses. Use the general /geoip endpoint for automatic detection, or specific /geoip/ipv4 and /geoip/ipv6 endpoints.

What are the rate limits and how do headers work?

100 requests per minute per IP address. Every response includes headers: X-RateLimit-Limit (max requests), X-RateLimit-Remaining (requests left), and X-RateLimit-Reset (Unix timestamp when limit resets).

What output formats are supported?

JSON (default), XML, CSV, and YAML. Use the format parameter: ?format=json|xml|csv|yaml. JSONP is supported for JSON format with the callback parameter.

How does reverse IP/hostname lookup work?

Pass a hostname instead of an IP address to the /geoip endpoint. The API will resolve the hostname to an IP address and return geolocation data for the resolved IP.

Do I need an API key or authentication?

No API key required. Simply make HTTP GET requests to our endpoints. No authentication or registration needed to start using the service.

Can I use this in commercial projects?

Yes, you can use our API in commercial projects under our fair-use policy. For higher volumes or SLA requirements, please contact us for enterprise options.

What providers are available and how to switch?

We support MaxMind and DB-IP providers. Check available providers with GET /geoip/providers. Switch providers using POST /geoip/switch-provider?provider=maxmind|dbip or use the provider parameter for per-request selection.

Ready to Get Started?

Start using our free GeoIP API in seconds. No registration required.

Start Free — No API Key