JWT Decoder
Decode and inspect JSON Web Tokens online. View header, payload, and expiration. Free JWT debugger.
About JWT Decoder
Decode JSON Web Tokens to inspect the header and payload. JWTs are commonly used for authentication in APIs and web applications. This tool decodes the token locally — nothing is sent to any server.
Note: This tool only decodes JWTs — it does not verify signatures.
Tutorial
How to Decode JWT Online in 3 Steps
Decode and inspect JSON Web Tokens online in seconds. Learn what's inside a JWT — header, payload, and signature — with real examples.
Video Tutorial
2:55Video coming soon — full transcript available below
Chapters
Full transcript searchable
What is a JWT and its three parts
Welcome to this tutorial on the JWT Decoder. A JSON Web Token is a compact, URL-safe token used for authentication and information exchange. Every JWT has exactly three parts separated by dots: the header, the payload, and the signature. The header contains the token type and signing algorithm. The payload contains claims — pieces of information like user ID, email, roles, and expiry time. The signature is used to verify the token hasn't been tampered with. The header and payload are Base64-encoded JSON, which means they can be decoded without any secret key.
Paste token and see header decoded
Open the JWT Decoder on ToolPilot.dev. Copy a JWT token from your application — you can find them in browser DevTools under Application > Cookies, or in the Network tab as Authorization: Bearer headers. Paste the full token into the input field. The tool immediately splits it into three sections and decodes the Base64. The header section shows the algorithm field — typically HS256 for HMAC-SHA256, or RS256 for RSA. This tells you how the token was signed.
Reading the payload and user claims
The payload section is where the interesting data lives. Standard claims include sub (subject — usually a user ID), iss (issuer — who created the token), aud (audience — who it's intended for), iat (issued at — Unix timestamp), and exp (expiry time). Custom claims added by your application might include roles, permissions, email, or any other user data. All of this is displayed in readable formatted JSON in the decoder output.
Checking token expiry (exp claim)
The exp claim is a Unix timestamp representing when the token expires. The JWT Decoder converts this to a human-readable date and time so you can see exactly when the token will stop working. It also shows whether the token is currently valid or expired. This is incredibly useful when debugging authentication errors — if a user reports being logged out unexpectedly, you can paste their token and immediately see if it expired.
Debugging authentication errors
Common authentication bugs you can debug with the JWT Decoder: tokens using the wrong algorithm, missing required claims, incorrect user IDs in the sub field, wrong audience in the aud field, and clock skew causing premature expiry. When an API returns a 401 Unauthorized response, decode the token being sent and compare it with what the server expects. This eliminates hours of guesswork in debugging auth flows.
Security note: decode only, not verify
An important security note: this tool decodes JWTs but does not verify them. Decoding only reads the Base64-encoded payload. Verification requires the secret key or public key and checks the signature mathematically. Never trust decoded JWT data in production without server-side signature verification. The decoder is a debugging tool, not a security tool. Also note: all decoding happens in your browser — your token is never sent to any server — making it safe to use with real tokens during development.
Transcript covers all 6 chapters (2:55 total).