JWT payload decoder
Inspect the payload (claims) section of a JWT, the second part of the token. The payload contains the actual data: user ID, roles, expiry time, and any custom claims your application adds.
VIEW
How it works
A JWT consists of three Base64URL-encoded parts separated by dots. The tool splits the token, fixes URL-safe base64 encoding (replacing - with + and _ with /), pads to a multiple of 4 characters, then decodes with atob() and parses with JSON.parse(). All of this runs in your browser. Our servers are not involved.
Processing runs in your browser
Your JWT is decoded entirely in your browser. Our servers are not involved at any point. Treat tokens as sensitive credentials and avoid pasting production tokens in shared or public environments. You can check this yourselfin your browser's DevTools Network tab.
Technical specification
JSON Web Token (JWT) is defined in RFC 7519 (IETF, 2015). A JWT consists of three Base64url-encoded sections separated by .: header, payload, and signature. Base64url encoding is defined in RFC 4648 §5, which substitutes + with - and / with _ and omits padding, making it safe for use in URLs without percent-encoding. Signed JWTs (JWS) are specified separately in RFC 7515.
- Structure
- header.payload.signature (3 Base64url parts)
- Standards
- RFC 7519 (JWT), RFC 7515 (JWS), RFC 4648 (Base64url)
- Header claims
alg(algorithm),typ(token type)- Common payload claims
sub,iss,exp,iat,aud
Related operations
To inspect the raw Base64 segments of a token, try Base64. For verifying the signing input by hash, use the hash generator. To pretty-print decoded payloads, see the JSON formatter.
Frequently asked questions
- What are standard JWT claims?
- Standard claims include: iss (issuer), sub (subject/user ID), aud (audience), exp (expiration), nbf (not before), iat (issued at), and jti (JWT ID). Applications can add any additional custom claims.
- Are payload claims secure?
- JWT payloads are Base64URL-encoded, not encrypted. Anyone with the token can read the payload. Do not store sensitive information (passwords, full credit card numbers) in a JWT payload unless you are using JWE (encrypted JWT).