Methodology, accuracy and API documentation

How this service observes network facts, what its accuracy limits are, and how to use the text and JSON interfaces.

Methodology and signal boundaries

This service separates server-observed network facts, local Geo datasets and browser-side evidence so that one signal is never presented as another.

  • The displayed public IP is the address observed by the service for that HTTP connection.
  • Country, region, city, timezone, coordinates, ASN and organization come from a local dataset. The result shows its precision radius; source, build-time and health diagnostics are restricted to authenticated administrators.
  • WebRTC, DNS, language, timezone and IPv6 tests are independent browser-side observations. Sensitive tests are not silently converted into a security score.
  • Unavailable, unknown, no observation and mismatch are different states. A failed or unconfigured test is never reported as a pass.

Accuracy and freshness

IP geolocation describes a network allocation, not a device or household. A city and coordinate may be far from the user; the precision radius is an uncertainty estimate, not a guarantee. Dataset freshness and quality are monitored internally and are available only to authenticated administrators.

HTTP and JSON API

Core endpoints require no account or cookie. Dynamic responses use Cache-Control: no-store and rate-limit headers. Address-family probe hosts are first-party and fail closed when the request arrives over the wrong family.

PathResponse
GET /Plain current IP for command-line clients; SSR HTML when the client requests text/html.
GET /jsonStructured current-IP result containing public network, location and ASN fields.
GET /json/{ip}Structured lookup for one validated IPv4 or IPv6 address.
GET /ip/{ip}Server-rendered lookup page; query result pages remain noindex.
curl -4 https://iprapid.com
curl -6 https://iprapid.com
curl -sS https://iprapid.com/json
curl -sS https://iprapid.com/json/8.8.8.8
Invoke-RestMethod -Uri 'https://iprapid.com/json'

JSON and text responses include RateLimit-Limit and RateLimit-Remaining. A 429 response includes Retry-After; invalid IP input returns an application/problem+json response with status 422.

Privacy and retention

The lookup path does not write raw IP addresses, request URIs, headers or fingerprints to the PostgreSQL aggregate tables. Caddy access logs remain subject to the documented restricted rotation policy. Diagnostic share links contain only redacted status values in a URL fragment, are signed, expire after 24 hours and are not stored as share records.

Frequently asked questions

Is the displayed city my exact location?

No. IP geolocation is an approximate network-level estimate. Use the displayed accuracy radius, and do not treat coordinates as a device or street address.

Does this service save my IP lookup in its database?

The application does not store raw IP addresses in its PostgreSQL usage aggregates. Restricted web access logs are retained and rotated separately as documented in the privacy policy.

Why can IPv6 be unknown instead of unavailable?

An unconfigured probe, blocked request or inconclusive browser signal cannot prove that IPv6 is absent. The result stays unknown until a first-party IPv6-only test succeeds or fails conclusively.

What is inside a diagnostic share link?

Only redacted status values, issue and expiry times, and a signature. It contains no IP address, coordinates or DNS resolver address. The fragment is submitted only for signature verification and no share record is stored.