JSON Formatter
Pretty-print, validate and minify JSON with friendly error messages.
Decode JWT header and payload instantly, 100% in your browser — the token never leaves your device.
Your result is ready — download it below:
Re-encoded without size gain Download links expire within 30 minutes.
No result to display for the current input.
Decode JWT header and payload instantly, 100% in your browser — the token never leaves your device.
Paste any JSON Web Token and instantly read its header and payload. Decoding requires no secret, so everything runs inside your browser — the token is never sent to a server, logged or stored. You get the algorithm, expiry status, a summary of the registered claims, and copy-ready decoded JSON.
JWT decoding is pure arithmetic: split the token on the dots, decode each Base64URL segment, and pretty-print the JSON. Nothing about that needs a server, so this tool performs the whole decode in your browser. The token you paste stays on your device — especially important because tokens often carry session and identity claims you would not want to upload anywhere.
A JWT has three dot-separated parts. The header describes the signing algorithm and token type. The payload carries the claims — registered ones like iss (issuer), sub (subject), aud (audience), exp (expiration), nbf (not before), iat (issued at) and jti (JWT ID), plus any custom claims an application adds. The third part is the signature; decoding does not reveal it or verify it.
The tool reads exp and nbf automatically and reports whether the token is currently valid, when it expires (or expired), or when it becomes valid. No calculator or mental timezone math needed — the times are shown in UTC.
Anyone can decode a JWT — the payload is just Base64URL data, not encrypted. Trusting a token requires verifying its signature with the issuer's secret or public key. This tool clearly marks the signature as present but never verified, and the validity hint is only about the token's own time claims, not about whether the signature is genuine.
Because processing happens in your browser, there is no upload endpoint in the flow, no log of your token, and no storage. The page needs no account and no tracking of the token content.
Yes — the decode runs entirely in your browser and the token is never sent to our servers. That said, avoid pasting tokens you should not share, and never treat a decoded token as proof that it is genuine.
No. Verifying a signature requires the secret (HS) or public key (RS/ES), which this tool never asks for. The signature is reported as present or missing, not as valid.
JWT segments use Base64URL without = padding, which many decoders mishandle. This tool pads segments internally, so standard tokens decode cleanly even when they omit trailing equals signs.
Yes. Expired tokens decode the same as any other; the tool simply reports the expiration time so you can see the token's validity window at a glance.
JWT Decoder reads the header and payload of any JSON Web Token right in your browser. It decodes the Base64URL segments, pretty-prints the JSON, and summarises the registered claims (iss, sub, aud, exp, nbf, iat, jti).
How to use: paste a token and press Run. The algorithm, expiry status and claim summary are shown together with the decoded header and payload.
Pretty-print, validate and minify JSON with friendly error messages.
Turn any JSON into ready-to-compile Rust struct definitions with serde derives.
Turn any JSON into a TypeScript Zod schema with nullable and optional handling.
Convert any JSON into Go struct definitions with json tags and pointers for optionals.