Docs / API reference
Get IP (Free)
Returns the public IP address of the caller. No API key is needed.
Overview#
https://gurdx.cretip.com/api/ip is the simplest method in the API. It answers with the IP address the request came from, nothing more. The response keeps the usual envelope: the address is in data, followed by status and executionTime. Because it needs no key, you can call it directly from a browser, a script or a device with no credentials.
When to use it#
- Discover the public address a visitor or device is using, then pass it to IP Lookup from your server.
- Find the outbound address of your own server, for example to add it to an authorized-hosts list or to a partner's allowlist.
- Debug a proxy or NAT setup by seeing the address Gurdx observes.
If you want the location and security details of the caller in one step, use IP Geolocation instead, which requires a key.
How it works#
Gurdx reads the connecting address, honoring the forwarding headers set by its own edge, and returns it as a plain string. IPv4 and IPv6 are both supported, so the value you get depends on how the caller reached the service. A dual-stack client may show a different address on each call.
Notes#
- No key is required, the call is not billed and it does not consume any quota.
- It is rate limited to 120 requests per minute per IP address. Above that you receive a standard HTTP 429 response from the rate limiter rather than the JSON error envelope, so back off and retry.
- It does not raise events and is not subject to custom rules or blacklists.
- Because it is open to anyone, never treat the result as proof of identity, only as the address seen by the service.
- It works with the common options such as
format, so you can ask for XML, CSV or JSONP if that suits your client.
Request#
https://gurdx.cretip.com/api/ip
- No API key needed.
Every method also accepts format, lang, mode, userID. See Options.
Code samples#
curl -G "https://gurdx.cretip.com/api/ip"
<?php
$response = file_get_contents('https://gurdx.cretip.com/api/ip?'.http_build_query([]));
$result = json_decode($response, true);
if ($result['status'] === 'success') {
print_r($result['data']);
} else {
echo $result['code'].': '.$result['description'];
}
const params = new URLSearchParams({});
const res = await fetch(`https://gurdx.cretip.com/api/ip?${params}`);
const result = await res.json();
if (result.status === 'success') {
console.log(result.data);
} else {
console.error(result.code, result.description);
}
import requests
res = requests.get("https://gurdx.cretip.com/api/ip", params={})
result = res.json()
if result["status"] == "success":
print(result["data"])
else:
print(result["code"], result["description"])
Response#
Success#
{
"data": {
"ip": "203.0.113.42",
"ipType": "IPv4"
},
"status": "success",
"executionTime": 0
}Error#
Errors are delivered with HTTP 200 — always check the status field.
{
"status": "error",
"code": 101,
"type": "invalid_key",
"description": "The API Key is missing or invalid."
}Found a mistake? Tell us on the contact page. Contact