Read what's inside a JSON Web Token — without sending it anywhere
A JWT decoder splits a JSON Web Token into its three dot-separated parts and base64url-decodes the header and payload so you can read the claims. A JWT is encoded, not encrypted — anyone holding it can read it. Decoding is not verifying: this tool runs entirely in your browser and does not check signatures.
A JSON Web Token is three base64url-encoded strings joined by dots: a header saying which algorithm signed it, a payload holding the claims, and a signature. A JWT decoder reverses the first two so you can actually read them. Paste a token here and it decodes as you type — no button to press, no upload, no account.
Two things about JWTs surprise people, and both matter more than any feature list. The first: a JWT is encoded, not encrypted. Base64url is a transport format, not a lock. Anyone who gets hold of your token — in a log file, a browser extension, a screenshot — can read every claim in it without a key or a secret. That is by design, and it is why user emails, roles, tenant IDs, and internal flags should be treated as public the moment they go into a payload.
The second: decoding a token is not verifying it. This tool reads what a token claims; it cannot tell you whether those claims are true. Confirming a token is authentic means checking the signature against the signing secret or public key, and that key is not something you should ever paste into a web page. So this decoder deliberately doesn't ask for one, and it doesn't verify. The signature panel shows you the raw third segment and says so plainly.
What it does do is fast and useful: decoded header and payload as formatted JSON, plus a panel showing the algorithm, issued-at and expiration times as real dates with a relative reading like "expired 3 days ago", and a status of Valid, Expired, Not yet valid, or No Expiry. If the header says alg: none, it's flagged as unsigned.
And it stays on your machine. Everything happens in your browser's JavaScript — the token is never transmitted, and the page keeps working offline. Related: Base64 Encoder/Decoder, Unix Timestamp Converter.