How ipkiwi works
Most of what makes ipkiwi fast and private is one decision: there is no server in the middle. This page explains what replaced it.
There is no origin
A normal website has an origin server somewhere — a machine in one city that every request eventually reaches. A CDN in front of it helps, but anything personal has to come from the origin, so a visitor in Jakarta waits for a round trip to wherever that machine lives.
ipkiwi has no origin. The whole site is a set of static files distributed across Cloudflare’s network, and the code that personalises them runs on the same edge server that accepted your connection. Whether you are in São Paulo, Warsaw or Jakarta, the machine answering you is a few milliseconds away.
How a personal page can still be a cached file
The pages that show your own data are the same static files as everything else. When one is requested, the edge fetches it from cache and rewrites it as it streams past, replacing marked slots with values taken from the connection itself — your address, the country it is registered to, your provider, the protocol your browser negotiated.
Nothing is assembled, queried or rendered. The file was built once, at deploy time; the only per-request work is substituting a few dozen strings into a stream that is already moving.
That is why the answer is in the HTML rather than appearing a moment later. It is also why there is no layout shift: nothing arrives late, because nothing is fetched afterwards.
Nothing to log
There is no database, no request log and no analytics script. This is not restraint — there is nowhere for a log to go. The code runs for the length of one request and holds nothing when it ends.
Your address is read because answering is impossible without reading it, used to write your page, and gone when the response finishes. We never see it, and there is no record to produce, breach, or be asked for.
Check it yourself
Claims about speed and privacy are cheap, so the tool pages measure themselves instead. The row under the answer shows three numbers taken from your browser about the request you just made: how long the edge took to respond, how many requests went to other domains, and how many cookies were set.
The last two are always zero. Nothing is loaded from any other domain — no fonts, no scripts, no tags, no frames — which you can confirm in your browser’s network panel in about ten seconds.
Two more things worth trying: switch JavaScript off and reload, and the answer is still there; then look at the page source and find your address sitting in the HTML.
The same data, as JSON
Everything on the page is available from one endpoint, with no key, no sign-up and no rate limit for ordinary use:
curl https://ipkiwi.com/api/me
/api/me.txt returns the bare address for shell scripts. Both run on the same edge, answer in the same few milliseconds, and are logged exactly as much as the pages are: not at all.
Frequently asked questions
Why is it faster than other IP lookup sites?
Because nothing has to travel. Most sites load a page, run a script, call an API, then draw the answer. Here the answer is already in the HTML when it reaches you, written by the same machine that accepted your connection.
Does the site work with JavaScript disabled?
The answer does. Your address, location, provider and connection details are in the HTML itself. JavaScript only adds the things a server cannot know — your screen size, your browser's time zone — and the measurements at the top of the tool pages.
How can you have no logs at all?
There is no server to write them. The code runs for the length of one request and holds nothing afterwards. Not keeping data is less work than keeping it, not more.
Where are the measurements on the tool pages from?
Your own browser. The response time and request counts come from the Navigation Timing and Resource Timing APIs, reading the request you just made. We never see those numbers.