BrainCoder
DeveloperNothing uploaded

JWT Decoder

Decode a JWT — read the claims, never verified

Free forever — no sign-up, nothing uploaded. Files never leave your device.

braincoder.app/use/jwt-decoder

JWT Decoder

Decode a JWT — read the claims, never verified

Drop your file here

or browse from your device

Browse files

document.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. 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. 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. 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. 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 Decoder

Frequently asked questions

Quick answers before you launch the tool.