JWT Decoder
Decode a JWT — read the claims, never verified
Free forever — no sign-up, nothing uploaded. Files never leave your device.
JWT Decoder
Decode a JWT — read the claims, never verified
Drop your file here
or browse from your device
Browse filesdocument.pdf
1.2 MB
report.pdf
860 KB
100% private
Nothing is uploaded — everything runs in your browser.
Free forever
No account or payment required.
No sign-up
Open the tool and start using it right away.
Local processing
Processing time depends on your input and device.
About this tool
Split a JSON Web Token into header, payload and signature, decode base64url properly, and read exp, nbf and iat as real dates. Decodes only: no signature is checked, and the token never leaves your browser.
The JWT Decoder splits a JSON Web Token into its dot-separated segments and shows you exactly what is there: which segments decoded, which did not, and why. The header and payload are decoded with a real base64url decoder — the URL-safe alphabet, no = padding, and a character outside the alphabet is named with its position instead of being quietly dropped — then parsed as JSON. Anything that is not a signed compact token is refused with a reason instead of half-decoded.
Claims are listed with their real values. exp, nbf, iat and auth_time are NumericDate seconds, so each one is shown as an absolute UTC date and time and as a reading you can act on: expires in 2 hours, expired 3 days ago, not valid for another 30 minutes. Registered claims that are missing are listed as missing rather than implied. The header, the payload and the raw token each have their own copy button, and a payload that is a JSON array or a scalar is shown as what it is rather than treated as a broken object.
Decoded, not verified. This page has no key, no issuer and no way to check a signature, so it never tells you whether a token is authentic or whether a claim is true. It does not fetch a JWKS endpoint, and it makes no network request of any kind: the token is read in the tab and never leaves it. Treat every claim as untrusted data. Input is capped at 262,144 characters (256 KB) and anything larger is refused before a single byte is decoded.
Key features
Everything you get with JWT Decoder — no premium upsell.
Decoded, not verified: the signature is never checked and no key, issuer or JWKS endpoint is contacted
Real base64url handling — URL-safe alphabet, missing padding tolerated, and a character outside the alphabet refused with its exact position
Structure report naming every dot-separated segment, its encoded length, its decoded byte length and whether it decoded
Non-JWT input refused with a reason: wrong segment count, a five-segment JWE, an empty header, a payload that is not JSON
exp, nbf, iat and auth_time rendered as absolute UTC dates plus "expires in" / "expired" readings that keep counting
Registered claims (iss, sub, aud, exp, nbf, iat, jti) surfaced first, with the missing ones listed as missing
Payloads that are a JSON array or a scalar are decoded and described instead of treated as a broken claims object
Separate copy buttons for the raw token, the decoded header and the decoded payload
262,144 character (256 KB) input cap, refused before any decoding work happens
No network request is ever made — the token is decoded in the tab and never uploaded
How to use JWT Decoder
Follow the steps below to use the tool.
- 1
Paste the token
Paste a JWT you are entitled to read. A leading "Bearer " and surrounding whitespace are removed and reported; anything above 262,144 characters is refused before it is decoded.
- 2
Read the structure report
Each dot-separated segment is listed with its encoded length, its decoded byte length and whether it decoded. A token that is not a signed compact JWT is refused here with the reason, not half-decoded.
- 3
Read the claims and their dates
Registered claims come first. exp, nbf, iat and auth_time show an absolute UTC date and time plus a live reading — expires in 2 hours, expired 3 days ago, not valid for another 30 minutes. Claims that are not present are listed as not present.
- 4
Copy what you need, and remember what this did not do
Copy the raw token, the decoded header or the decoded payload. Nothing was verified: a decoded token proves only that someone wrote those claims, never that they are true. To validate a token, present it to the service that issued it.
Still free, still private — your files never leave your device.
Launch JWT DecoderFrequently asked questions
Quick answers before you launch the tool.
Related tools
Saved you searching — here are similar utilities.