JWT Decoder

Decode any JSON Web Token instantly — header, payload, and timestamps.

Ad placeholder (leaderboard)
Enjoying the tools? Go Pro for £4.99 (one-time) and remove all ads — forever, on this device. Remove ads — £4.99

JWT decoder

This tool splits any JSON Web Token into its header, payload claims, and raw signature, decoding the readable parts so you can inspect exactly what a token contains. It’s for developers debugging auth flows, checking why a token is rejected, or confirming which claims and expiry an identity provider issued — all without a network request.

How it works

A JWT is three Base64URL-encoded segments joined by dots. The tool splits on ., then decodes the first two segments with a Base64URL-safe atob (it first swaps -/_ back to +// and restores padding), and runs JSON.parse on the result to show the header and payload as key-value pairs. The signature is shown raw. When “Decode timestamps” is on, numeric time claims (exp, iat, nbf, auth_time, updated_at) are read as Unix seconds and converted with new Date(value * 1000) to a readable UTC string. An exp earlier than the current time is highlighted in red as expired.

Example

The token below (HS256, demo only):

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJleHAiOjE3MDAwMDAwMDB9.sig

decodes to a header of {"alg":"HS256","typ":"JWT"} and a payload of {"sub":"123","exp":1700000000}. With timestamps on, exp: 1700000000 shows as 2023-11-14 22:13:20 UTC and is flagged expired.

What the tool does and does not do

ActionSupported
Decode header (alg, typ)Yes
Decode payload claimsYes
Convert exp / iat / nbf to datesYes
Flag expired tokensYes
Verify the signatureNo (needs the server-side secret/public key)

Decoding happens entirely in your browser, so this is safe to use with real tokens — your token never leaves your device.

Ad placeholder (rectangle)