Free online JWT decoder. Decode and inspect JSON Web Token headers, payloads, and signatures without a secret key. Useful for debugging auth flows.
A JSON Web Token (JWT) is a compact, URL-safe token format used for authentication and information exchange in web applications. JWTs are issued by authentication servers and sent with API requests to prove identity. They consist of three Base64URL-encoded parts separated by dots: a header, a payload, and a signature.
This free JWT decoder splits and decodes all three parts of any JWT token, making the claims and metadata immediately readable. You can inspect the user ID, roles, permissions, expiry time, issuer, and any other claims embedded in the token without needing the signing secret.
Decoding a JWT does not verify its signature — it only shows you the contents. Any JWT can be decoded by anyone who has the token. This is by design: JWTs are not encrypted by default, they are just signed. Sensitive data should not be stored in JWT payloads unless the token is also encrypted (JWE).
JWT debugging is one of the most common tasks in API development. Tokens that expire unexpectedly, contain wrong roles, or come from unexpected issuers are difficult to debug without a decoder. This tool makes that inspection instant.
A JSON Web Token (JWT) is a compact token format defined by RFC 7519. It consists of three Base64URL-encoded JSON objects separated by dots: a header (algorithm and token type), a payload (claims — data about the user or session), and a signature (cryptographic proof of authenticity). They are widely used for stateless authentication in web APIs.
Decoding reads the contents of a JWT by Base64URL-decoding the header and payload. Anyone can do this with any JWT — no secret needed. Verifying checks that the signature is valid using the signing key, proving the token was issued by the expected authority and has not been tampered with. This tool decodes only — it does not verify signatures.
JWTs for production systems should be treated as sensitive credentials. This tool decodes entirely in your browser — your token is never sent to any server. However, be cautious about pasting production tokens into any online tool as a general security practice. For production debugging, consider using local tools or your browser's developer tools.
Common standard claims: sub (subject — usually user ID), iss (issuer — who created the token), aud (audience — who the token is intended for), exp (expiration — Unix timestamp when the token expires), iat (issued at — when the token was created), nbf (not before — earliest valid time), jti (JWT ID — unique token identifier).
JWT payloads are Base64URL encoded, not encrypted. The signature only proves authenticity — it does not hide the contents. This is intentional: servers need to read the payload to extract claims, and doing so without decryption makes JWTs efficient. For confidential payloads, use JWE (JSON Web Encryption) instead.
The header's alg field specifies the signing algorithm. Common values: HS256 (HMAC-SHA256, symmetric — uses a shared secret), RS256 (RSA-SHA256, asymmetric — uses a public/private key pair), ES256 (ECDSA-SHA256, asymmetric). The typ field is typically "JWT".