Find an API

Search public APIs with auth details & Postman guides

← All APIs

IP Geolocation API

bigdatacloud · Location

Location No Auth Free & Open location

BigDataCloud's IP Geolocation API returns detailed information about the geographical location, ownership and connectivity of the provided IPv4 IP address. This API is powered by patent-pending ‘Next Generation IP Geolocation Technology'. As a result, the API has sub-millisecond response time. You can authenticate the API with the use of API keys provided in your BigDataCloud account. BigDataCloud provides 10K Free queries per month. You can upgrade your package with $2/month per 10K addition

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET IP Geolocation with Confidence Area and Hazard Report API

This API returns additional security hazard report in addition to confidence area and locality information.

https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-full?ip=193.114.112.122&key={{API KEY}}&localityLanguage=en

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-full?ip=193.114.112.122&key=%7B%7BAPI%20KEY%7D%7D&localityLanguage=en"
import requests
params = {
    "ip": "193.114.112.122",
    "key": "{{API KEY}}",
    "localityLanguage": "en"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-full",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-full');
url.searchParams.set('ip', '193.114.112.122');
url.searchParams.set('key', '{{API KEY}}');
url.searchParams.set('localityLanguage', 'en');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-full")
	q := baseURL.Query()
	q.Set("ip", "193.114.112.122")
	q.Set("key", "{{API KEY}}")
	q.Set("localityLanguage", "en")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-full")
uri.query = URI.encode_www_form({
  "ip" => "193.114.112.122",
  "key" => "{{API KEY}}",
  "localityLanguage" => "en"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-full?" . http_build_query([
    "ip" => "193.114.112.122",
    "key" => "{{API KEY}}",
    "localityLanguage" => "en"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET IP Geolocation with Confidence Area API

Returns list of geocoordinates which represents estimated geolocation confidence area.

https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-with-confidence?ip=193.114.112.122&key={{API KEY}}&localityLanguage=en

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-with-confidence?ip=193.114.112.122&key=%7B%7BAPI%20KEY%7D%7D&localityLanguage=en"
import requests
params = {
    "ip": "193.114.112.122",
    "key": "{{API KEY}}",
    "localityLanguage": "en"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-with-confidence",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-with-confidence');
url.searchParams.set('ip', '193.114.112.122');
url.searchParams.set('key', '{{API KEY}}');
url.searchParams.set('localityLanguage', 'en');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-with-confidence")
	q := baseURL.Query()
	q.Set("ip", "193.114.112.122")
	q.Set("key", "{{API KEY}}")
	q.Set("localityLanguage", "en")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-with-confidence")
uri.query = URI.encode_www_form({
  "ip" => "193.114.112.122",
  "key" => "{{API KEY}}",
  "localityLanguage" => "en"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/bigdatacloud.net/1.0.0/data/ip-geolocation-with-confidence?" . http_build_query([
    "ip" => "193.114.112.122",
    "key" => "{{API KEY}}",
    "localityLanguage" => "en"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with IP Geolocation API?

IP Geolocation API is a Location API. Developers commonly use location APIs for:

  • tracking assets and vehicles in real time
  • building delivery and logistics apps
  • finding nearby businesses or services
  • geo-fencing and location-based notifications
  • address validation and autocomplete

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. IP Geolocation API is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide · Learn about API keys · What is REST?

Open documentation ↗