Decode and inspect JSON Web Tokens to view payload and header.
A JWT is composed of three Base64URL-encoded parts separated by dots. The header specifies the token type and signing algorithm. The payload contains the claims — statements about an entity and additional metadata. The signature is created by combining the encoded header, encoded payload, and a secret key using the algorithm specified in the header. This three-part structure makes JWTs self-contained, compact, and URL-safe for transmission in HTTP headers and query parameters.
JWT uses a Base64URL variant instead of standard Base64. The key differences: the + character is replaced with - (hyphen), the / character is replaced with _ (underscore), and the = padding characters are omitted. These substitutions make the encoded data safe for use in URLs, HTTP headers, and HTML attributes without requiring additional percent-encoding. Our decoder automatically handles this conversion, including restoring padding when needed for proper decoding.
A standard JWT (technically a JWS — JSON Web Signature) is signed but not encrypted. Anyone can decode and read its contents. The signature only ensures the data has not been tampered with. If you need to hide the token contents, you need a JWE (JSON Web Encryption), which encrypts the entire payload. Most authentication systems use JWS because the payload contains non-sensitive data like user IDs, roles, and timestamps. Our tool decodes JWS tokens — if you paste a JWE, you will see encrypted data in the payload.
JWT uses Unix timestamps (seconds since January 1, 1970, UTC) for time-based claims. The exp claim defines when the token expires, iat records when it was issued, and nbf specifies the earliest time it can be used. Our decoder converts these timestamps to human-readable dates and checks the exp claim against the current time to show whether the token is still valid. Proper expiration handling is critical for security — tokens without exp claims remain valid indefinitely.
Inspect tokens from your auth provider (Auth0, Firebase, Cognito) to verify claims, check expiration, and understand what data is being transmitted to your frontend.
Decode tokens from third-party APIs to understand the payload structure, required claims, and token format before writing your integration code.
When your API returns 401 Unauthorized, decode the token to check if it is expired, if the algorithm matches your server configuration, or if required claims are missing.
Ensure that tokens contain the correct issuer (iss), audience (aud), and subject (sub) claims before using them in your application logic.
Review tokens to ensure they do not contain sensitive data, use appropriate algorithms (not 'none'), and have reasonable expiration times.
Use the sample token and claim reference table to understand how JWTs work, what each claim means, and how the three-part structure fits together.
Copy tokens from browser DevTools Network tab or Application/Local Storage and paste them here for quick inspection without writing code.
Copy the decoded JSON to share with your team when documenting API authentication requirements or debugging token-related issues together.
Encode and decode Base64 strings and files.
Generate MD5, SHA-1, SHA-256, and other hash values from text.
Validate JSON data and get detailed error messages with line numbers.
Format, validate, and beautify JSON data instantly.
Generate random UUIDs (v4) instantly.
Encode and decode URLs and query parameters.

Founder & Developer of FreeKit
I personally designed and built every tool on this website — including the one you just used. If these tools have been helpful, I can build custom tools, automation workflows, websites, and SEO solutions tailored to your business.
Remote: Available Now
United States & European company
USD $25/hour or USD $1,500/month
On-site: Open to Relocation
With work visa & travel support