Skip to main content
CalcChef

JWT Expiration Checker

Decode a JWT and compare its exp, nbf and iat claims with your clock to see Expired or Not expired and the time left. The signature is not verified. How it works

Use the JWT Expiration Checker

Decoded in your browser; the tool does not send the token anywhere or save it.

Token status
Paste a token to check it
Expires in —

About the JWT Expiration Checker

A token with exp 1700003600 (2023-11-14T23:13:20Z) is Not expired at 1699996220 with 2h 3m 0s left, and Expired from 1700003600 on. The JWT expiration checker decodes the token and compares its exp, nbf and iat claims with your device’s clock. It does not verify the signature, so it shows what the token says about itself, not that it is genuine.

Status of one token at four clock readings

Clock reading (UTC)StatusExpires in
2023-11-14T21:56:40ZNot expired1h 16m 40s
2023-11-14T23:12:35ZNot expired45s
2023-11-14T23:13:20ZExpiredexpired 0s ago
2023-11-15T01:16:20ZExpiredexpired 2h 3m 0s ago

Token with header {"alg":"HS256","typ":"JWT"} and payload {"sub":"user-42","iat":1700000000,"exp":1700003600}. Computed with the tool’s own check; the page reads your clock itself and refreshes every second. No clock leeway is applied.

How to use this tool

  1. Paste the token, or the whole Authorization header value: a leading Bearer is removed. Load sample fills in a token that expires in the year 2124.
  2. Read the status: Expired, Not expired, Not yet valid (nbf), No expiration claim or Expiration claim not readable.
  3. Read Expires in, and the local time of exp, nbf and iat. The UTC and Unix seconds are shown for exp.
  4. Check the cautions above the claims: they say that nothing is verified, and flag an unsigned token or alg none.

Frequently asked questions

How do I check if a JWT is expired?
Paste the token. The tool reads the exp claim, a number of seconds since 1970-01-01T00:00:00Z, and compares it with your device’s clock. At or after exp the status is Expired and Expires in reads expired 0s ago, then counts up: expired 2h 3m 0s ago. Before exp it reads Not expired with the time left.
Does this verify the JWT signature?
No. Checking a signature needs the issuer’s secret (HMAC) or public key (RSA, ECDSA), and this tool does not do it. Anyone can write a token with any exp, so Not expired means only that the token claims it has not expired. A server must verify the signature before it trusts a claim.
Can anyone read what is inside a JWT?
Yes, for a signed token. RFC 7519 makes the claims the payload of a signed token, which is encoded but not encrypted. Only an encrypted JWT hides them; it has five parts instead of three, and this tool says it cannot read it.
Why does it say the value looks like milliseconds?
RFC 7519 defines exp, nbf and iat as seconds since 1970. A value above 100,000,000,000 is almost surely milliseconds. For exp 1700003600000 the tool shows the problem and the date it would be as milliseconds, 2023-11-14T23:13:20Z, and does not use the value.
What does Not yet valid (nbf) mean?
The nbf claim, not before, is still in the future. RFC 7519 says the token must not be accepted before that time. With nbf 1700003600 and exp 1700007200, read at 1700000000, the status is Not yet valid (nbf) and Expires in shows 2h 0m 0s.
Is the token sent anywhere?
The page decodes the token in your browser; the tool does not send it anywhere or save it, and it is never read from the address bar. A copy saved by an older version of the tool is deleted when the page loads.

Related Tools

View all tools