JWT Decoder
Decode JSON Web Tokens to inspect header, payload, and signature without needing the secret key.
JWT Decoder tool
Example
Input: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0MiIsIm5hbWUiOiJBZGEiLCJpYXQiOjE3MDAwMDAwMDB9.fh3sbYff532CtSqo8rSJd-47SxI8g2HhP94CYVHfg1A
Result: Header {"alg": "HS256", "typ": "JWT"}, Payload {"sub": "42", "name": "Ada", "iat": 1700000000}, Token has no expiration (exp) claim
The header and payload are Base64url-decoded JSON. The iat claim is shown as November 14, 2023 22:13:20 UTC in your local time zone, and the signature is displayed but not verified.
Standard JWT Claims
| Claim | Name | What it holds |
|---|---|---|
| iss | Issuer | Who created and signed the token |
| sub | Subject | Who the token is about, usually a user ID |
| aud | Audience | Which service the token is meant for |
| exp | Expiration time | Unix time after which the token is invalid |
| nbf | Not before | Unix time before which the token is not valid |
| iat | Issued at | Unix time when the token was created |
| jti | JWT ID | A unique ID, used to stop reuse |
Registered claims from RFC 7519. This tool shows exp, nbf and iat as dates.
- Paste your complete JSON Web Token (the long string starting with "eyJ") into the input field.
- The decoder instantly splits the token into its three parts: header, payload, and signature.
- Review the decoded header to see the signing algorithm and token type.
- Examine the payload claims including subject, issuer, expiration time, and custom data fields.
- Check the expiration status indicator to see whether the token is still valid or has expired.
- Click copy on any decoded section to use the parsed JSON in your debugging workflow.
What Is Inside a JSON Web Token?
A JWT decoder shows what a JSON Web Token contains. Paste a token and this tool splits it at the dots, decodes the header and payload into readable JSON, and shows the signature as it is. It also tells you whether the token has expired.
A JWT is three Base64url strings joined by dots: header.payload.signature. The header names the signing method, such as HS256 or RS256. The payload holds claims, which are simple facts such as the user ID (sub) or the expiry time (exp). The signature proves that the first two parts were not changed, but only to someone who has the key. Base64url is an encoding, not encryption, so anyone holding a token can read its payload. That is why decoding needs no secret, and why a JWT should never carry passwords or other secrets. It also means this tool cannot tell you whether a token is genuine. It does not check the signature. Your server must do that with the secret or public key.
Time claims are Unix timestamps in seconds. The tool turns iat (issued at), nbf (not before) and exp (expires) into dates in your time zone and shows a status: expired, not valid yet, valid, or no exp claim. Decoding happens in your browser, but treat live tokens with care anyway, since a stolen token works like a password until it expires. To convert other timestamps, use the Unix Timestamp Converter, and to decode plain Base64, use Base64 Encode and Decode.
Sources
Frequently Asked Questions
Related Tools
Base64 Encode and Decode
Encode text to Base64 and decode Base64 strings back to readable text, with full UTF-8 support.
Developer ToolsJSON Formatter and Validator
Format, validate, beautify, and minify JSON data with a collapsible tree view and line-and-column error detection.
Developer ToolsHash Generator
Generate MD5, SHA-1, SHA-256, SHA-384, and SHA-512 hashes from text or files right in your browser.
Developer ToolsUnix Timestamp Converter
Convert Unix timestamps to human-readable dates and dates back to Unix timestamps instantly.
Developer Tools