| ip | string | Your public address |
| type | string | IPv4 or IPv6, decided by whether the address contains a colon |
| asn | number | Autonomous system number, e.g. 4134 |
| org | string | Network organisation name. At the edge isp comes from the same source and may be null |
| isp | string | ISP name, same value as org |
| city / region | string | City / region, may be null |
| country | string | Two-letter country code, e.g. CN |
| country_code | string | Identical to country, kept for older callers |
| continent | string | Continent code, e.g. AS |
| latitude / longitude | string | City-level approximation. May be a numeric string ("24.47979") — run it through parseFloat yourself |
| postal | string | Postal code |
| timezone | string | IANA zone name, e.g. Asia/Shanghai |
| isEu | boolean | Whether the address is inside the EU |
| colo | string | Three-letter code of the edge node that handled this request, e.g. HKG |
| tlsVersion | string | Negotiated TLS version, e.g. TLSv1.3 |
| tlsCipher | string | Negotiated cipher suite |
| httpProtocol | string | HTTPS or HTTP |
| acceptLanguage | string | First value of the Accept-Language request header |
| edge | boolean | Always true, marking that the data was read at the edge rather than from a third-party API |
| ts | number | Millisecond timestamp, different on every request, handy for busting intermediate caches |