Monitoring
Solutions
Resources
Free Tools
Pricing
Free Tools / Encoding & data / JWT Decoder

JWT Decoder

Paste a JSON Web Token to read its header and claims. Times are shown as dates, an expired token is flagged, and the token never leaves your browser.

Runs entirely in your browser — nothing you enter here is sent to a server.

What is inside a JWT

A JSON Web Token is three Base64URL-encoded pieces joined by dots. The header names the signing algorithm. The payload is a JSON object of claims — statements such as who the user is, who issued the token and when it expires. The signature is computed over the first two parts with a key, so the receiver can tell whether anything was altered.

The point to remember is that the header and payload are encoded, not encrypted. Anyone who holds a token can read everything in it, exactly as this page does. The signature stops a token being changed; it does nothing to stop it being read. Passwords, card numbers and other secrets must never be put in a JWT.

exp, iat, nbf

Expiry, issue time and "not before", as Unix timestamps in seconds. A server must reject a token past its exp.

iss and aud

Who issued the token and which service it is meant for. Checking both stops a token for one API being replayed against another.

sub

The subject — normally the user id. This is what the application uses to decide whose data to return.

alg

HS256 uses one shared secret; RS256 and ES256 use a private key to sign and a public key to verify. Never accept none.

Debugging authentication with a decoded token

Most "401 Unauthorized" mysteries end at one of four claims. The token has expired — compare exp with the current time, and allow for clock drift between servers. The audience does not match what the API expects. The issuer is a different environment: a staging token sent to production. Or the scope lacks the permission the endpoint needs. Decoding the token answers all four in seconds.

A token is a credential: whoever has it can act as the user until it expires. That is why this decoder works entirely in your browser — and why you should think twice before pasting a production token into any online tool that does not.

Frequently asked questions

Is it safe to decode a JWT online?

Only if the decoding happens in your browser, as it does here — nothing is sent to a server. A live token is a working credential, so avoid any tool that uploads it, and prefer expired or test tokens when you can.

Can anyone read the contents of a JWT?

Yes. The payload is Base64URL-encoded, not encrypted, so anyone holding the token can read its claims. The signature only protects against modification.

How do I know if a JWT has expired?

Look at the exp claim: it is a Unix timestamp in seconds. If it is earlier than the current time, the token is expired. The decoder converts it to a date and shows how long ago that was.

Does this tool verify the signature?

No. Verification needs the secret or public key and belongs on your server. Decoding shows what the token claims; it does not prove the claims are true.

Related free tools

A calculator answers once. Monitoring answers every minute.

Upzilla checks your sites, servers and APIs around the clock and alerts you the moment something breaks. 10 monitors free, no card required.

Start monitoring free →