Both segments decoded instantly
The Base64URL header and payload are unpacked into readable, indented JSON as soon as you paste, with no round trip to a server.
Decode a JSON Web Token's header and payload and read its claims.
Loading tool…
The tool is loading its code on your device. This happens once and is cached for later visits.
Processed entirely on your device
Overview
Decode and inspect JSON Web Tokens online. View the header and payload as formatted JSON, read the exp, nbf and iat claims and check expiry — no verification, no upload.
A JSON Web Token is three Base64URL-encoded sections joined by dots: a header, a payload and a signature. The first two are ordinary JSON that has been encoded so it survives inside a URL, an HTTP header or a form field. Reading them needs no secret, which is what makes this tool possible and also what makes the most important warning about JWTs so easy to forget.
Base64URL is standard Base64 with plus and slash replaced by hyphen and underscore and the padding removed, so the token is safe in a URL. Encoding is not encryption. Anyone holding a token can decode and read every claim, so a JWT payload is effectively public to whoever receives it.
This tool unpacks the header and payload and shows them to you. It does not check the signature, because that requires the issuer's secret or public key, which your browser does not have and should not want. A token can be perfectly readable and completely forged. The only component entitled to trust a JWT is the one that verifies the signature with the correct key, and that check belongs on the server, never in client-side code alone.
Standard claims use short registered names:
The exp, nbf and iat values are integers counting seconds since the Unix epoch, so this tool converts them to readable dates and tells you whether the token is currently expired, not yet valid, or inside its window.
Because the header states which algorithm signed the token, a naive verifier that believes that field can be tricked by an attacker who sets the algorithm to none and drops the signature entirely. Serious libraries reject an unverified or downgraded algorithm and make you declare which algorithms you accept. It is a neat illustration of the whole subject: reading a token and trusting a token are two completely different operations, and only the second one is a security decision.
Step by step
Paste a JWT into the input panel; a leading Bearer prefix is stripped automatically.
Read the decoded header and payload as formatted JSON.
Check the time claims to see whether the token is expired or not yet valid.
Remember the signature is shown but never verified — that needs the issuer's key.
Why use it
What this tool is good for, and what it deliberately does not try to do.
The Base64URL header and payload are unpacked into readable, indented JSON as soon as you paste, with no round trip to a server.
The exp, nbf and iat numeric dates are converted to real timestamps and checked against the current clock, so you can see at a glance whether a token is still valid.
The signature is displayed but clearly labelled as unchecked, because a decoder that implied validation would be a security trap.
Access tokens carry user identifiers and scopes. Decoding happens in your tab, so a live token is never pasted into someone else's infrastructure.
Questions
Short, honest answers about quality, limits and privacy.