How to use JWT decoder
- 1
Paste the token
Paste the JWT from an Authorization header, a cookie or your app’s storage; a leading “Bearer ” is ignored.
- 2
Read the claims
Check the header and payload tables, the readable exp, iat and nbf times, and the expiry banner.
- 3
Add the key
Enter the HMAC secret, or paste the public key as PEM, certificate, JWK or JWKS.
- 4
Verify the signature
Press Verify signature to confirm the token was signed with that key and hasn’t been changed.
Limits and Pro
Free with no sign-up and no limit on the number of tokens; verification supports 13 algorithms (HS, RS, PS and ES at 256, 384 and 512 bits, plus EdDSA).
Pro removes the ads; decoding and verification are the same on every plan. See Pro
About JWT decoder
A JSON Web Token is three Base64URL strings joined by dots: a header naming the signing algorithm, a payload of claims, and a signature. Paste one — with or without the “Bearer ” prefix — and the decoder shows the header and payload as a readable table or pretty-printed JSON, colours the three parts of the token, and explains standard fields such as iss, sub, aud, kid and scope.
Time claims are converted for you: exp, iat, nbf and auth_time appear as a date in your time zone, in UTC and as a relative time (“expires in 2 hours”, “expired 3 days ago”). A banner tells you at a glance whether the token is expired, not valid yet or has no expiry, and warns when exp seems to be in milliseconds instead of seconds.
Decoding proves nothing about who issued a token, so the verifier checks the signature with your browser's built-in WebCrypto. HS256, HS384 and HS512 need the shared secret (plain text or Base64). RS, PS and ES algorithms at 256, 384 and 512 bits, plus EdDSA with Ed25519, need the public key, which you can paste as a PEM public key, an RSA PUBLIC KEY block, an X.509 certificate, a single JWK or a whole JWKS, where the key is picked by the token's kid.
The tool can't decrypt JWE tokens (the five-part kind) and doesn't fetch JWKS URLs; open the issuer's jwks_uri yourself and paste its JSON.
Privacy
Tokens are bearer credentials, so this page treats them that way: decoding and signature checks run in your browser with WebCrypto, and the token, secret and keys are never sent to a server, logged or stored. Closing or reloading the tab clears everything.
Features
Readable times
exp, iat and nbf in your time zone, in UTC and as “in 2 hours” or “3 days ago”.
Real signature checks
HMAC, RSA, RSA-PSS, ECDSA and Ed25519 verified with WebCrypto against your key or JWKS.
Token stays local
Nothing is uploaded, so production tokens can be inspected safely.