IP Geolocation
Get geolocation data for any IP address including country, city, ISP, and VPN detection. Use this endpoint to enrich user data with location information for personalization, fraud detection, or content localization.
Descripción general
Casos de uso
- User location personalization
- Fraud detection and risk scoring
- Content localization and geo-targeting
- Analytics and user insights
- Compliance and regulatory requirements
Funcionalidades
Puntos finales de la API
Get IP Info (Caller IP)
Get geolocation and network information for the requesting client's IP address. Useful when you want information about the user making the request without specifying an IP explicitly.
https://requiems.xyz/v1/networking/ip
Pruébalo
Demostración en vivoSolicitud
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| ip | string |
The IP address that was looked up (the requesting client's IP) |
| country | string |
Country name where the IP is located |
| country_code | string |
Two-letter ISO country code (e.g., "US", "GB", "DE") |
| city | string |
City name where the IP is located |
| isp | string |
Internet Service Provider providing the IP |
| is_vpn | boolean |
True when the IP belongs to a known VPN |
Ejemplos de código
curl "https://requiems.xyz/v1/networking/ip" \
-H "requiems-api-key: YOUR_API_KEY"
import requests
url = "https://requiems.xyz/v1/networking/ip"
headers = {"requiems-api-key": "YOUR_API_KEY"}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch('https://requiems.xyz/v1/networking/ip', {
headers: { 'requiems-api-key': 'YOUR_API_KEY' }
});
const data = await response.json();
console.log(data.data.country, data.data.city);
require 'net/http'
uri = URI('https://requiems.xyz/v1/networking/ip')
request = Net::HTTP::Get.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.parse(response.body)
Respuestas de error
Unexpected server error
Get IP Info for IP
Get geolocation and network information for a specific IP address.
https://requiems.xyz/v1/networking/ip/{ip}
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| ip | string |
Obligatorio | The IP address to look up (supports IPv4 and IPv6) |
Pruébalo
Demostración en vivoSolicitud
The IP address to look up (supports IPv4 and IPv6)
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| ip | string |
The IP address that was looked up |
| country | string |
Country name where the IP is located |
| country_code | string |
Two-letter ISO country code (e.g., "US", "GB", "DE") |
| city | string |
City name where the IP is located |
| isp | string |
Internet Service Provider providing the IP |
| is_vpn | boolean |
True when the IP belongs to a known VPN |
Ejemplos de código
curl "https://requiems.xyz/v1/networking/ip/8.8.8.8" \
-H "requiems-api-key: YOUR_API_KEY"
import requests
url = "https://requiems.xyz/v1/networking/ip/8.8.8.8"
headers = {"requiems-api-key": "YOUR_API_KEY"}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch('https://requiems.xyz/v1/networking/ip/8.8.8.8', {
headers: { 'requiems-api-key': 'YOUR_API_KEY' }
});
const data = await response.json();
console.log(data.data.country, data.data.city);
require 'net/http'
uri = URI('https://requiems.xyz/v1/networking/ip/8.8.8.8')
request = Net::HTTP::Get.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.parse(response.body)
Respuestas de error
The IP address is invalid
Unexpected server error
Batch IP Geolocation
Look up geolocation data for up to 50 IP addresses in a single request. Results are returned in input order. Per-item errors are reported inline.
https://requiems.xyz/v1/networking/ip/info/batch
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| ips | array<string> |
Obligatorio | List of IP addresses to look up (1–50 items, each must be a valid IPv4 or IPv6 address). |
Pruébalo
Demostración en vivoSolicitud
List of IP addresses to look up (1–50 items, each must be a valid IPv4 or IPv6 address).
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| results | array<object> |
Per-item results in input order. |
| results[].ip | string |
The IP address that was looked up. |
| results[].result | object |
Geolocation data (omitted on error). Same fields as the single-item endpoint. |
| results[].error | string |
Error message if the lookup failed (omitted on success). |
| total | integer |
Total number of items processed. |
Ejemplos de código
curl -X POST https://requiems.xyz/v1/networking/ip/info/batch \
-H "requiems-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ips": ["8.8.8.8", "1.1.1.1"]}'
import requests
url = "https://requiems.xyz/v1/networking/ip/info/batch"
headers = {
"requiems-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {"ips": ["8.8.8.8", "1.1.1.1"]}
response = requests.post(url, headers=headers, json=payload)
for item in response.json()["data"]["results"]:
if item.get("result"):
print(item["ip"], item["result"]["country"])
const response = await fetch('https://requiems.xyz/v1/networking/ip/info/batch', {
method: 'POST',
headers: {
'requiems-api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ ips: ['8.8.8.8', '1.1.1.1'] })
});
const { data } = await response.json();
data.results.forEach(item => {
if (item.result) console.log(item.ip, item.result.country);
});
require 'net/http'
require 'json'
uri = URI('https://requiems.xyz/v1/networking/ip/info/batch')
request = Net::HTTP::Post.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
request['Content-Type'] = 'application/json'
request.body = { ips: ['8.8.8.8', '1.1.1.1'] }.to_json
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
data = JSON.parse(response.body)['data']
data['results'].each do |item|
puts "#{item['ip']}: #{item['result']['country']}" if item['result']
end
Respuestas de error
The ips array is missing, empty, exceeds 50 items, or contains an invalid IP address.
The request body is missing or malformed.