BrowserDevTools

JWT batch decoder

Paste many JWTs at once (one per line) and get a status table: valid, expired, not yet valid or malformed — plus exp/nbf/iat scanning, security notes and CSV/JSON export. Decoding is local; tokens never leave your browser.

Optional

Decoding is local and offline. RS/ES signatures need a JWKS fetch — this tool will not do that, so it labels them not verified instead of pretending they are. Nothing is ever uploaded, and there is no share link.

Result

5 tokens2 valid1 expired1 not yet valid1 malformed4 with security notes
#StatusalgsubexpNotes
1validHS256user-42in 3022 days1 note(s)
2expiredHS256user-7expired 2456 days ago1 note(s)
3not yet validRS256svc-batchin 3023 days2 note(s)
4validnoneadminin 3022 days2 note(s)
5malformedpayload could not be parsed: not valid Base64URL characters

Why a batch decoder

Debugging one token is a solved problem — jwt.io does it well and everyone links to it. The work that actually costs time is a different shape: an incident where a client is sending 300 tokens and you need to know which ones are stale, an integration where half the requests fail because a clock is skewed, or a log dump where you suspect a service is still issuing tokens with alg: none. Pasting those one at a time into a single-token debugger is the bottleneck, and the tools that do handle batches are mostly unnamed single-page sites with a plain textarea.

So this page is built around the batch, not around one token:

Tokens are split on newlines, commas, semicolons or spaces, so you can paste a column out of a log file or a spreadsheet directly; lines starting with # are ignored as comments. Nothing is sent anywhere: there is no backend, no analytics on your input, and no share link that would persist a token on a server — which matters, because a JWT is a bearer credential.

FAQ

Are my tokens uploaded anywhere?
No. Decoding runs in your browser tab and there is no backend endpoint, no logging and no share link. You can confirm it in the Network panel: nothing fires when you paste.
How is this different from jwt.io?
jwt.io is a single-token debugger. This one is built for batches: paste hundreds of tokens (one per line), and you get a status table, exp/nbf/iat scanning, per-token security notes, deduplication and CSV/JSON export of the whole set.
Do you verify signatures?
Only HS256 / HS384 / HS512, and only with a secret you paste in yourself — that verification happens locally via Web Crypto. RS/ES signatures need a JWKS fetch, which would mean sending something to a server, so the tool deliberately does not do it and labels those tokens “not verified” instead of implying they are.
What security notes does it surface?
alg=none (unsigned token), missing exp (never expires), validity longer than a year, iat later than exp, and missing iss/aud. These are the things a JSON pretty-printer will not tell you.
Can I paste a whole log file?
Tokens separated by newlines, commas, semicolons or spaces are all split out; lines starting with # are treated as comments and ignored. Identical tokens are deduplicated and counted.