Bytelify

JWT Decoder

Decode a JSON Web Token's header and payload instantly, entirely in your browser.

Runs in your browser, nothing sent
jwt-decoder
Header
{
  "alg": "HS256",
  "typ": "JWT"
}
Payload
{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

Decodes the header and payload only — this does not verify the signature (that needs the signing secret/key, which never leaves your server). Everything runs in your browser; nothing you paste is sent anywhere.

Need the opposite? Base64 Decode Online (Base64 Decoder)

What is JWT Decoder?

Paste a JWT (JSON Web Token) and instantly see its decoded header and payload as readable JSON. This only decodes the token's Base64URL-encoded segments; it doesn't verify the signature, since that requires the secret or public key used to sign it.

How to Use the JWT Decoder

  1. 1

    Paste the JWT: Enter the full token, including all three dot-separated parts.

  2. 2

    Read the Decoded Header and Payload: The readable JSON for both segments appears automatically.

Example

Before
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
After
// Header
{
  "alg": "HS256",
  "typ": "JWT"
}

// Payload
{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

A JWT is three dot-separated, Base64URL-encoded parts (header, payload, signature) — decoding reveals the first two. The third (the signature) is raw cryptographic bytes, not readable JSON, which is why this tool intentionally never attempts to show or verify it.

Header, Payload, Signature: Decoding vs. Verifying

The header names the signing algorithm and token type. The payload carries the actual claims: who the token represents (sub), when it was issued (iat), and any other data the issuer chose to include. None of this is encrypted, just encoded, so a JWT should never be used to carry secrets. The signature is what makes the token trustworthy: it lets whoever holds the signing secret (or, for asymmetric algorithms, the public key) confirm the header and payload haven't been tampered with since the token was issued. Decoding, which is all this tool does, just reverses the Base64URL encoding on the header and payload to show their contents. Anyone can do this with no special access, since no secret is involved. Verifying is a different operation entirely: it recomputes the signature using the secret or public key and checks it matches the token's third segment. A token can decode perfectly and still be invalid: expired, tampered with, or signed by the wrong party. That's exactly why this tool never claims a decoded token is trustworthy, only that it's readable.

FAQs

Frequently Asked Questions

Common questions about JWT Decoder.

No. Verifying a signature requires the signing secret or public key, which should never be pasted into a browser tool. This decoder only reveals the header and payload, which are not encrypted, just encoded.

No. Decoding happens entirely in your browser using standard Base64URL decoding. Nothing you paste leaves your device.

A valid JWT has exactly three dot-separated parts (header.payload.signature). If your string is missing a part or isn't Base64URL-encoded JSON, decoding will fail.

Base64URL is a URL-safe variant of Base64: it replaces the + and / characters with - and _ and typically omits padding, so the encoded result is safe to use inside a URL or HTTP header without extra escaping, which is exactly where JWTs are usually carried.

Yes, Bytelify's JWT Decoder is free with no account or sign-up required.

No. Decoding runs entirely client-side in your browser, so your token is never sent anywhere.