GeoIPy API
GeoIPy provides a robust, real-time IP to geolocation API that can accurately determine location data and identify potential security threats from high-risk IP addresses. The results are delivered in a matter of milliseconds in JSON format. With GeoIPy's API, you can instantly pinpoint website visitors' locations and tailor your user experience and application accordingly.
This documentation comprehensively covers the API features, available options, and integration guides for various programming languages.
This documentation comprehensively covers the API features, available options, and integration guides for various programming languages.
API Access Token
Your API Access Token serves as your distinct authentication credential for accessing the GeoIPy API. To authenticate with the API, include the access_key parameter in the API's base URL and assign it the value of your access token.
Token URL:
Attach your API Access Key: The following example demonstrates how to authenticate using the GeoIPy API in an API request:
Token URL:
https://www.geoipy.com/
Attach your API Access Key: The following example demonstrates how to authenticate using the GeoIPy API in an API request:
https://www.geoipy.com/api/IPsInfo/?ip=@(Model.IP)
&key=@(Key)
API Output
The GeoIPy API can provide data in either JSON format. The following example demonstrates the API result that GeoIPy would return in response to the API call from the previous section, which requests information for the IP address @(Model.IP).
API responses include extensive data related to location, currency, timezone and connection.
{ "ip": "3.141.21.199", "hostname": "3.141.21.199", "type": "ipv4", "continent_code": "NA", "continent_name": "North America", "country_code": "US", "country_name": "United States", "region_code": "OH", "region_name": "Ohio", "city": "Columbus", "zip": "43201", "latitude": 39.995578765869141, "longitude": -82.999458312988281, "msa": "18140", "dma": "535", "radius": "41.01305", "ip_routing_type": "international proxy", "connection_type": "tx", "location": { "geoname_id": 4509177, "capital": "Washington D.C.", "languages": [ { "code": "en", "name": "English", "native": "English" } ], "country_flag": "https://www.geoipy.com/flags/us.svg", "country_flag_emoji": "🇺🇸", "country_flag_emoji_unicode": "U+1F1FA U+1F1F8", "calling_code": "1", "is_eu": false }, "time_zone": { "id": "America/New_York", "current_time": "2024-11-21T09:41:05+03:00", "gmt_offset": -18000, "code": "EST", "is_daylight_saving": false }, "currency": { "code": "USD", "name": "US Dollar", "plural": "US dollars", "symbol": "$", "symbol_native": "$" }, "connection": { "asn": 16509, "isp": "amazon.com Inc.", "sld": "amazonaws", "tld": "com", "carrier": "amazon.com inc.", "home": false, "organization_type": "Retail", "isic_code": "G4791", "naics_code": "004541" } }
API responses include extensive data related to location, currency, timezone and connection.
Error Codes
If a requested resource is unavailable or an API call encounters an issue, a JSON error will be returned. These errors are always accompanied by an error code and a description.
Error Example: The error below is returned when your monthly API request limit has been exceeded.
Error Example: The error below is returned when your monthly API request limit has been exceeded.
{ "success": false, "error": { "code": 100, "type": "missing_access_key", "info": "No API Key was specified." } }
Code | Type | Info |
---|---|---|
100 | missing_access_key | No API Key was specified. |
101 | invalid_access_key | No API Key was specified or an invalid API Key was specified. |
102 | inactive_user | The current user account is not active. User will be prompted to get in touch with Customer Support. |
103 | invalid_api_function | The requested API endpoint does not exist. |
104 | usage_limit_reached | The maximum allowed amount of monthly API requests has been reached. |
105 | function_access_restricted | The current subscription plan does not support this API endpoint. |
106 | https_access_restricted | The user's current subscription plan does not support HTTPS Encryption. |
301 | invalid_fields | One or more invalid fields were specified using the fields parameter. |
302 | too_many_ips | Too many IPs have been specified for the Bulk Lookup Endpoint. (max. 50) |
303 | batch_not_supported_on_plan | The Bulk Lookup Endpoint is not supported on the current subscription plan |
404 | 404_not_found | The requested resource does not exist. |
PHP (cURL)
//set IP address and API access key
$ip = '3.141.21.199';
$key = 'veluihrPp9w0CekwtTlTo7TzaofQaIwp';
// Initialize CURL:
$ch = curl_init('https://www.geoipy.com/api/IPsInfo?ip='.$ip.'&key='.$key.'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Store the data:
$json = curl_exec($ch);
curl_close($ch);
// Decode JSON response:
$api_result = json_decode($json, true);
// Output the "capital" object inside "location"
echo $api_result['location']['capital'];
JavaScript (jQuery.ajax)
// set IP address and API access key
var ip = '3.141.21.199'
var key = 'veluihrPp9w0CekwtTlTo7TzaofQaIwp';
// get the API result via jQuery.ajax
$.ajax({
url: 'https://www.geoipy.com/api/IPsInfo?ip=' + ip + '&key=' + key,
dataType: 'jsonp',
success: function(json) {
// output the "capital" object inside "location"
alert(json.location.capital);
}
});
C#
using System.Net.Http;
using Newtonsoft.Json.Linq;
// ...
// set IP address and API access key
string ip = "3.141.21.199";
string Key = "veluihrPp9w0CekwtTlTo7TzaofQaIwp";
// Initialize an HttpClient instance
using (var httpClient = new HttpClient())
{
// Send an HTTP GET request to the specified URL
var response = await httpClient.GetAsync($"https://www.geoipy.com/api/IPsInfo?ip={ip}&key={Key}");
// Check if the response is successful
if (response.IsSuccessStatusCode)
{
// Read the JSON response as a string
string jsonResponse = await response.Content.ReadAsStringAsync();
// Deserialize the JSON string into a JObject
JObject apiResult = JObject.Parse(jsonResponse);
// Retrieve the "capital" object inside the "location" object
string capital = apiResult["location"]["capital"].ToString();
// Output the capital
Console.WriteLine(capital);
}
else
{
Console.WriteLine("Error occurred while fetching data");
}
}