Base URL: https://api.ipcheckmate.com/
To use the API, make sure to include your email address that you used to subscribe in every request, in one of the following ways:
X-Email
header.email
field of a POST or GET request.Free users: If you have not subscribed, just pass your real email address.
To retrieve geo-location and VPN information using a GET request:
GET /[email protected]
ip
: The IP address you want to check.email
: Your email address for identification.Response example:
{ "success": 1, "ip": "1.1.1.1", "city": "Goochland", "division": "Virginia", "country": "United States", "country_code": "US", "zip_code": "23063", "latitude": 37.7691, "longitude": -78.0091, "is_ipv6": 1, "is_ipv4": 0, "is_anonymous": 0 }
To retrieve geolocation and VPN information using a POST request:
POST /
ip: 1.1.1.1 email: [email protected]
{ "success": 1, "ip": "1.1.1.1", "city": "Goochland", "division": "Virginia", "country": "United States", "country_code": "US", "zip_code": "23063", "latitude": 37.7691, "longitude": -78.0091, "is_ipv6": 1, "is_ipv4": 0, "is_anonymous": 0 }
If any data is missing for example the city name or division name or zip code then it will be an empty string.
{ "success": 1, "ip": "185.162.229.112", "city": "", "division": "", "country": "United States", "country_code": "US", "zip_code": "", "latitude": 37.7691, "longitude": -78.0091, "is_ipv6": 1, "is_ipv4": 0, "is_anonymous": 0 }
If any fault is detected i.e. invalid ip was submitted or some internal error server occurred or ip is not in our database, 'success' shows as 0 and an error message is provided in 'error' key. If you use this api in a login/ registration script, you should allow the login and re-check their ip later with some cron job. Do not block a user just because an error occurred.
Example - invalid ip error{ "success": 0, "error": "Invalid IP Address", "error_code": "INVALID_IP", "ip": "1.1.1.x" }Example - invalid email error (subscription not found)
{ "success": 0, "error": "No subscription was found for this email.", "error_code": "INVALID_EMAIL", "ip": "1.1.1.1", "email": "[email protected]" }
{ "success": 0, "error": "You are being rate-limited. Please reduce the number of requests per second.", "error_code": "RATE_LIMITED", "ip": "1.1.1.1" }
You should assume the rate limit to be 100 req/s for all plans.
This is not a hard limit which means occasional spikes won't cause you to get error responses.
The hard limit (actual rate limit) is 5000 req per 10 second or 500 r/s. Please try not to knowingly cross 100 r/s without informing us in advance.
Users who require even higher rate limits should send us an email. We'll make it possible.