JWT Decoder
Paste a JSON Web Token to read its header and claims, see when it expires, and check its signature with a secret or public key.
Runs in your browser · No uploads
Header
Payload
Claims
| Claim | Value | Meaning |
|---|
Check the signature
Your browser is too old to run this tool. Please update it, or use a current version of Chrome, Edge, Firefox or Safari.
- Nothing leaves your device
- No server-imposed size limits
- No sign-up, no watermark
- Free
How to decode a JWT
- Paste the token (with or without "Bearer ").
- Read the header, payload and claims; times such as exp and iat are shown as dates.
- To check that it is genuine, open "Check the signature" and enter the secret or public key.
Why decode it here?
Tokens are keys to accounts and APIs. Many online decoders send what you paste to a server. This page can't: its security policy blocks every connection, so the token, and any key you enter, stay on your device.
Decoding is not verifying
- Anyone can read a JWT: the header and payload are only Base64-encoded, not encrypted.
- Only the signature check proves the token was issued by the key holder and wasn't changed.
- Supported: HS256/384/512 (shared secret), RS256/384/512, PS256/384/512, ES256/384/512 (public key as PEM or JWK) and EdDSA where the browser supports it.
- Encrypted tokens (JWE, five parts) can't be read without the private key.
Frequently asked questions
Should I paste a private key?
No, and you never need to: signatures are checked with the public key. Only HMAC tokens (HS256…) use a shared secret.
Is my token uploaded?
No. It is decoded and checked in your browser with the built-in WebCrypto API.