JWT Decoder — Decode JSON Web Tokens Online

Free Forever
This tool decodes the payload only. Signature verification requires the secret key and is not performed here. Never paste production JWTs into third-party sites.

What is a JWT Decoder?

A JWT decoder reads a JSON Web Token and reveals its header and payload as readable JSON, without needing the secret key used to sign it. JWTs are used across modern authentication systems to carry user claims, permissions, and expiry information between a client and server.

How to Use This JWT Decoder

  1. Paste your JWT token (the full dot-separated string) into the input field.
  2. Click Decode to view the header, payload, and raw signature.
  3. Check the expiry badge to see if the token is still valid or has expired.
  4. Use Copy Payload to grab just the decoded claims.

When Do You Need a JWT Decoder?

A JWT decoder is useful when debugging authentication flows, inspecting what claims an API is issuing, verifying that an access token contains the expected roles or scopes, or checking why a token might be rejected — often because its exp claim has already passed. It's a standard part of any backend developer's debugging toolkit.

Frequently Asked Questions

What is a JWT?
A JWT (JSON Web Token) is a compact, URL-safe token format used to represent claims between two parties. It consists of three Base64url-encoded parts separated by dots: a header, a payload, and a signature.
Is decoding a JWT safe?
Decoding only reveals the header and payload, which are not encrypted — anyone with the token can already read them. However, you should avoid pasting production tokens with sensitive data into third-party tools you don't trust.
JWT vs session tokens?
JWTs are self-contained and carry their own claims, so a server can verify them without a database lookup. Traditional session tokens are opaque identifiers that require the server to look up session data on every request.
What is JWT expiry?
JWT expiry is set via the exp claim, a Unix timestamp indicating when the token becomes invalid. Servers check this value on every request and reject tokens where the current time has passed exp.