JWT Decoder

Developer·Free · in browser

JWT Decoder

Paste a JSON Web Token to decode its header and payload and read every claim, including expiry. Runs entirely in your browser.

JWT Decoder
All tools

A JWT decoder splits a JSON Web Token on its dots and base64url-decodes the header and payload so you can read every claim, including the expiry. It does not verify the signature - that needs the signing key, which should never be pasted into a website.

Runs entirely in your browser · no signup · nothing is uploaded · updated 2026-08-29

Decoded in your browser. The token is never sent anywhere.

How to use it

  1. 1.Paste your JWT into the box.
  2. 2.The header and payload are base64url-decoded in your browser - nothing is uploaded.
  3. 3.Check the registered claims, especially exp and iat, against what you expected.

Frequently asked questions

Does my token leave the browser?

No. Decoding happens in JavaScript on this page. There is no network request and no server involved, which is why this tool works offline once loaded.

Does this verify the signature?

No. Verifying requires the signing secret or public key, and you should never paste a secret into a website. Decoding shows you the claims; verification belongs in your own code.

What do exp, iat and nbf mean?

exp is expiry, iat is issued-at, nbf is not-valid-before. All three are NumericDate values - seconds since the Unix epoch, not milliseconds.

Is a JWT encrypted?

No. A standard JWS token is signed, not encrypted, and anyone holding it can read the payload. Never put secrets in a JWT.

Can anyone read my JWT?

Yes. A standard JWT is signed, not encrypted, so anyone who intercepts it reads every claim. Treat it as a bearer credential: transmit over https, store carefully, and put no secrets in the payload.

What is the difference between JWS and JWE?

JWS is signed and readable - it is what almost everyone means by JWT. JWE is encrypted and has five segments instead of three. If your token has four dots, it is JWE and cannot be decoded without the key.

Why does my token say invalid when it looks fine?

Usually padding or whitespace. A JWT copied from a log or header often picks up a trailing newline or a Bearer prefix. Strip both before decoding.

How do I check whether a token has expired?

Read the exp claim, which is seconds since the Unix epoch, and compare it to now. A token expiring in 1,700,000,000 is not the year 1970 - it is a seconds value that needs multiplying by 1000 for JavaScript Date.

The guide behind this tool

Tools that pair with this one

Built something?

RankCert is a weekly launch board where products rank on domain control we verify ourselves - not upvotes. Listing is free and the link is dofollow whether or not you display our badge.