Check-up

See whether a code goes where it claims.

Upload a photo or use the camera. Decoding happens on this device. If the content is a web address, a checker follows the redirect chain and names known dynamic-QR hosts.

Direct The address in the code is the one that answers, or it only hops on the same kind of site. No known third-party QR service is in the chain.
Third-party redirect The code passes through a known dynamic service. That company can change or expire the destination. We name which one.
Target dead The last hop returned an error, or the request timed out. The print is already failing, whatever the marketing said.

The image is decoded in this browser. A web address is the only thing sent on, and only so the redirect list can be read.

What a check does

A non-link — Wi-Fi, a contact card, an email, a text message, or plain text — stops here. There is no redirect to follow, and we do not upload that content. A web address is sent to the checker so it can request the URL with redirects disabled and record each status. The checker allows only http and https, only ports 80 and 443, and it refuses private, loopback, and link-local addresses on every hop. It is not an open proxy: it returns the hop list, not the page.

A normal check finishes in a few seconds. The checker gives up after four seconds so the page can answer inside five. More than ten checks a minute from the same network are refused.

Codes that are not links are not "dead." They are the static kind this site makes. A dead result means a web address that no longer answers.

Editable codes, later

Need editable links or scan stats? Leave your email.

One note if we ship that. No account, no newsletter. Repeating an address does not create a second row.