ToolsWise.com

JWT Decoder

Decoding happens entirely in your browser. Your token is never sent to a server, logged, or stored.

Free JWT Decoder

Decode and inspect JSON Web Tokens instantly in your browser. View the header and payload, read registered claims as human-readable dates, and check token expiry — all client-side. No sign-up, nothing stored.

What is a JWT?

A JWT (JSON Web Token) is a compact, URL-safe token used to carry claims between parties — most commonly for authentication and authorization. It is made of three Base64URL-encoded segments separated by dots: header.payload.signature.

The header declares the signing algorithm, the payload holds the claims (such as the subject, issued-at time, and expiry), and the signature lets a server verify the token has not been tampered with. This tool decodes the header and payload and shows the raw signature, but it does not verify it.

Key Features

Header & Payload

Base64URL-decodes both segments and pretty-prints the JSON so the claims are easy to read.

Human-readable claims

Converts the iat, nbf, and exp timestamps into UTC dates with a relative time.

Expiry check

Shows a clear Expired or Valid badge by comparing the exp claim against the current time.

Signature view

Displays the raw signature segment so you can inspect it — note that it is not verified.

alg & typ at a glance

Surfaces the signing algorithm and token type from the header up front.

100% Client-Side

Decoding runs entirely in your browser. Your token is never sent to a server or stored.

How to Decode a JWT

1

Paste your token

Drop a JWT (header.payload.signature) into the input, or click Load sample token to try it.

2

Read the decoded parts

The header and payload are decoded and pretty-printed into separate read-only panels.

3

Check the claims

Registered claims like iat, nbf, and exp are shown as UTC dates with a relative time and an expiry badge.

4

Copy what you need

Use the Copy buttons to grab the decoded header or payload JSON.

Common Use Cases

  • Debugging auth: Inspect what claims your backend is putting into a token while chasing a login or permission bug.
  • Checking expiry: Confirm whether a token has expired and exactly when it was issued or becomes valid.
  • API integration: Verify the scopes, roles, and subject a third-party identity provider encodes in its tokens.
  • Learning JWTs: See how the header, payload, and signature map to the three dot-separated segments.
  • Reviewing claims: Read custom claims like sub, aud, and iss without writing throwaway decoding code.

Frequently Asked Questions

What is a JWT?

A JWT (JSON Web Token) is a compact, URL-safe way to represent claims between two parties. It has three Base64URL-encoded segments separated by dots: a header describing the signing algorithm, a payload holding the claims, and a signature used to verify the token's integrity.

Does this tool verify the signature?

No. This is a decoder, not a verifier. It Base64URL-decodes and displays the header and payload and shows the raw signature, but it never checks whether the signature is valid. Always verify signatures on your server with the secret or public key.

Is my token sent anywhere?

No. Decoding happens entirely in your browser using JavaScript. Your token is never transmitted to a server, logged, or stored, so it is safe to inspect sensitive tokens here.

Can anyone read the data inside a JWT?

Yes. The header and payload are only Base64URL-encoded, not encrypted, so anyone with the token can decode and read them. Never put secrets or sensitive data in a JWT payload unless the token itself is encrypted.

What do the exp, iat, and nbf claims mean?

These are registered claims expressed as Unix timestamps in seconds. iat is when the token was issued, nbf is the time before which the token must not be accepted, and exp is when the token expires. This tool renders each as a UTC date with a relative time.

Why does my token show as expired?

A token is shown as Expired when its exp claim is a time in the past relative to your device's clock. If the exp timestamp is in the future, the token is shown as Valid (not expired). Note this only checks expiry, not the signature.