JWT Decoder
Read the header and claims inside a JSON Web Token, with expiry shown in plain language.
Runs in your browser — nothing you type is sent anywhere
This reads a token; it does not verify one. A JWT payload is Base64, not encryption — anyone holding the token can read it. Only the signature proves it was not tampered with, and checking that needs your secret or public key, which should never be pasted into any website. Decoding happens in this page and the token is not sent anywhere.
About the JWT Decoder
A JSON Web Token is three Base64 segments separated by dots: a header saying how it was signed, a payload of claims, and a signature over the first two. The payload is not encrypted — it is merely encoded — so anyone holding the token can read every claim in it. That surprises people, and it is the single most important thing to understand about the format.
This tool decodes the header and payload and lays the claims out as a table, with the registered ones labelled: issuer, subject, audience, issued-at, not-before and expiry. The time claims are seconds since the epoch rather than milliseconds, which is a classic off-by-a-thousand error, and they are shown here both as a readable time and as a relative one, so an expired token is obvious at a glance.
It decodes; it does not verify. Verifying a signature requires the secret or the public key that signed it, and pasting a signing secret into a website would be a serious mistake regardless of who ran the site. Any tool offering to verify your token online is asking for exactly the thing you must never hand over. The signature is shown as it appears, and plainly described as unchecked.
The whole thing runs in this page, so the token never reaches a server. That still leaves the ordinary caution: a token in your clipboard or browser history is a live credential until it expires, so treat one you have pasted anywhere as worth rotating.
How to use the JWT Decoder
Paste the token
The three dot-separated parts. A leading Bearer prefix is stripped automatically, so you can paste straight from an Authorization header.
Check the summary
The algorithm, when it was issued and when it expires appear at the top, with an expired token flagged clearly.
Read the claims
Header and payload are shown as labelled tables, so you can see exactly what the token asserts without decoding Base64 by hand.
Copy what you need
Either section can be copied as formatted JSON for pasting into a bug report or a test.
Frequently asked questions
Can this verify my token's signature?
Is a JWT encrypted?
Why does my token show as expired when it should be valid?
Is my token sent anywhere?
What do iat, nbf and exp mean?
You may also need
Base64 Decoder
Decode Base64 back to text, accepting URL-safe input, missing padding and stray whitespace.
Unix Timestamp Converter
Convert between Unix timestamps and readable dates, with the unit detected for you.
JSON Formatter
Format, validate and minify JSON — with the exact line and column of any error.
Hash Generator
Produce a SHA-256, SHA-384, SHA-512 or SHA-1 digest, and check it against a known value.