JSON IP and GeoIP REST API (IP Geolocation)

IMPORTANT INFORMATION The public API will permanently shut down on November 15th, 2015. More information can be found here. To continue using Telize after this date, please spin up your own instance or subscribe to a paid plan.

This service offers a REST API allowing to get a visitor IP address and to query location information from any IP address. It outputs JSON-encoded IP geolocation data, and supports both Cross-origin resource sharing (CORS) and JSONP.

For updates, follow Frederic on Twitter

The API powering this site is open source, and can be downloaded here or on GitHub

API Endpoints

IP (Get IP address in plain text format)

Returns the visitor IP address (IPv4 or IPv6) in plain text, useful for shell scripts or to find the external Internet routable address.

Alternatively, for more granularity when querying from a dual-stack environments, the following endpoints are available:

Example (Plain text): http://ip.telize.com (Listen on both IPv4 and IPv6)

Example (Plain text): http://ip4.telize.com (Listen on IPv4 only)

Example (Plain text): http://ip6.telize.com (Listen on IPv6 only)

Usage example (Shell script):

#!/bin/sh ip = $( curl -s https://www.telize.com/ip ) echo "My IP address is: $ip "

Output example:

IPv4 address:

46.19.37.108

IPv6 address:

2a02:2770::21a:4aff:feb3:2ee

JSON IP (Get IP address in JSON format):

Returns the visitor IP address (IPv4 or IPv6) in a JSON object.

Usage example:

< script type = " application/javascript " > function getip ( json ){ document . write ( " My IP address is: " , json . ip ); } < /script > < script type = " application/javascript " src = " https://www.telize.com/jsonip?callback=getip " >< /script >

Usage example (jQuery):

< script type = " application/javascript " > $ ( document ). ready ( function () { $ . getJSON ( " https://www.telize.com/jsonip?callback=? " , function ( json ) { document . write ( " My IP address is: " , json . ip ); } ); }); < /script >

GeoIP (Get IP address location in JSON format):

Calling the API endpoint without any parameter will return location information for the visitor IP address:

Appending an IP address as parameter will return location information for this IP address:

Usage example:

< script type = " application/javascript " > function getgeoip ( json ){ document . write ( " Geolocation information for IP address: " , json . ip ); document . write ( " Country: " , json . country ); document . write ( " Latitude: " , json . latitude ); document . write ( " Longitude: " , json . longitude ); } < /script > < script type = " application/javascript " src = " https://www.telize.com/geoip?callback=getgeoip " >< /script >

Usage example (jQuery):

< script type = " application/javascript " > $ ( document ). ready ( function () { $ . getJSON ( " https://www.telize.com/geoip?callback=? " , function ( json ) { document . write ( " Geolocation information for IP address: " , json . ip ); document . write ( " Country: " , json . country ); document . write ( " Latitude: " , json . latitude ); document . write ( " Longitude: " , json . longitude ); } ); }); < /script >

JSON Output Schema

The output is a JSON object containing the following elements:

Please note that the IP location database may not contain all information about a given IP. In this case, only the available data is displayed.

ip (Visitor IP address, or IP address specified as parameter)

(Visitor IP address, or IP address specified as parameter) continent_code (Two-letter continent code)

(Two-letter continent code) country (Name of the country)

(Name of the country) country_code (Two-letter ISO 3166-1 alpha-2 country code)

(Two-letter ISO 3166-1 alpha-2 country code) country_code3 (Three-letter ISO 3166-1 alpha-3 country code)

(Three-letter ISO 3166-1 alpha-3 country code) region (Name of the region)

(Name of the region) region_code (Two-letter ISO-3166-2 state / region code)

(Two-letter ISO-3166-2 state / region code) city (Name of the city)

(Name of the city) postal_code (Postal code / Zip code)

(Postal code / Zip code) latitude (Latitude)

(Latitude) longitude (Longitude)

(Longitude) timezone (Time Zone)

(Time Zone) offset (UTC time offset in seconds)

(UTC time offset in seconds) asn (Autonomous System Number)

(Autonomous System Number) organization (Organization name)

Output example:

{ " ip " : " 193.0.6.139 " , " continent_code " : " EU " , " country " : " Netherlands " , " country_code " : " NL " , " country_code3 " : " NLD " , " region " : " North Holland " , " region_code " : " NH " , " city " : " Amsterdam " , " postal_code " : " 1012 " , " latitude " : 52.3735 , " longitude " : 4.8951 , " timezone " : " Europe/Amsterdam " , " offset " : 3600 , " asn " : 3333 , " organization " : " Reseaux IP Europeens Network Coordination Centre (RIPE NCC) " }

Errors

Client Errors

When incorrect user input is entered, the server returns an HTTP 400 Error (Bad Request), along with a JSON-encoded error message.

HTTP Error Code Message 400 401 Input string is not a valid IP address

This site is valid HTML5 and CSS 3