API reference

Response fields

A successful query returns a JSON array with one object per IP. Fields are present only when they could be resolved for the address; pass fields to return only the values your workflow needs.

Geolocation

FieldTypeDescription
query_ip_addressstringThe IP address that was queried.
query_languagestringLanguage code used for place-name localisation.
citystringCity associated with the IP.
continentstringContinent name.
countrystringFull country name.
country_iso_codestringISO 3166-1 alpha-2 country code.
registered_countrystringCountry where the IP block is registered.
subdivisionstringFirst-level subdivision (state, province, region).
subdivision_iso_codestringISO code for the subdivision.
latitude / longitudestringDecimal coordinates (returned as strings).
time_zonestringIANA time zone identifier.

Country metadata

FieldTypeDescription
currencystringISO 4217 currency code for the country.
gmt_offsetintegerStandard UTC offset in seconds (excludes DST).
is_eu_memberbooleanTrue if the country is an EU member state.
gdpr_requiredbooleanTrue when the visitor's country falls under GDPR.
languagesarrayLanguages for the country (code, name, native_name).

Network & ASN

FieldTypeDescription
asnstringAutonomous System Number ("ASxxxx").
asn_namestringName of the ASN operator.
asn_countrystringCountry registered to the ASN.
ripe_countrystringCountry from the RIPE inetnum record (RIPE region IPs).
netnamestringNetwork name from the RIPE database.
org / ripe_org_idstringOrganisation name and RIPE organisation ID.
network_statusstringRIPE allocation/assignment status.
usage_typestringHow the address is used: satellite, mobile, hosting, education, business, or residential.
connection_typestringmobile / satellite / hosting / isp.
bgp_prefix / bgp_asnstring / integerAnnounced BGP prefix and origin AS (CAIDA RouteViews, IPv4). Omitted if not found.
bgp_is_moasbooleanPrefix announced from multiple origin ASes (anycast/hijack signal).
hostnamestringReverse-DNS (PTR) hostname. Present only when the request passes reverse=true.

Threat & classification flags

FieldTypeDescription
is_vpnbooleanIP is in a known VPN provider range.
is_proxybooleanTrue if is_vpn or is_tor_exit_node is true. proxy_type present when true.
is_tor_exit_node / is_tor_full_nodebooleanKnown Tor exit node / relay.
is_spam / is_spam_dropbooleanListed on Spamhaus DROP/eDROP. spam_list present when true.
is_cloudbooleanPublished cloud provider range. cloud_provider present when true.
is_datacenterbooleanDatacentre/hosting address (true when usage_type is hosting).
is_mobile / is_satellitebooleanMobile carrier / satellite ISP. connection_type present when true.
is_anycast / is_multicastbooleanAnycast address / multicast range.
is_crawlerbooleanIP or User-Agent matches a known crawler. crawler_name present when true.
is_bogonbooleanUnroutable/martian range (RFC 1122 / 6890, IPv4). bogon_type present when true.
simplemapsobjectNearest populated place (city, admin_name, country, iso2, iso3, capital, population).

Risk score

Every result carries a packaged fraud/abuse score derived transparently from the flags above — a single number to gate on instead of hand-rolling your own rule set.

FieldTypeDescription
risk_scoreinteger0–100. Additive rubric: Tor exit +55, Spamhaus DROP +50, bogon +40, VPN +30, Tor relay +30, cloud/datacentre +25/+20, crawler +15, anycast +10, BGP MOAS +5; mobile −10 and residential −5 as mitigations. Clamped to 0–100; a Tor-exit or Spamhaus-DROP hit floors it to 65.
risk_levelstringBand: low (0–29), medium (30–64), high (65–100).
risk_factorsarrayThe signal labels that contributed to the score (e.g. ["cloud_aws", "anycast"]).

Record-Only responses

When a key has the Record-Only (statsOnly) option enabled, the response is an acknowledgement instead of the result array:

{ "code": 200, "msg": "Recorded statistics successfully.", "request_count": 1 }

Next: errors, usage & quotas →