All tools JWT Decoder ● Live Developer Tools

How JWT Decoder works

  1. Paste a JWT (header.payload.signature format) into the input box.
  2. View the decoded header and payload as formatted JSON.
  3. Check the expiration date and Valid/Expired status badge if an 'exp' claim is present.
  4. Copy the header, payload, or signature independently as needed.
  • Debug an authentication issue by inspecting the claims inside a JWT.
  • Check when an access token expires during API development.
  • Verify that a token contains the expected user ID, roles, or scopes.
  • Inspect the signing algorithm declared in a token's header.
  • Decode a token from browser dev tools or server logs to understand its contents.

Decoding happens entirely in your browser using base64url decoding. Tokens are never sent to a server.

  • Cannot verify the token's signature — inspection only.
  • Only standard three-part JWTs are supported, not opaque tokens.
  • Does not validate claims against your application's specific authorization rules.

JWT Decoder

JWT Decoder parses a JSON Web Token into its three base64url-encoded parts: header, payload, and signature. The header and payload are displayed as formatted JSON. The expiration field (exp) is shown as a human-readable date with a Valid or Expired badge. Note: signature verification is not possible client-side.

JWT Decoder Runs locally

JWT token

Header

{
  "alg": "HS256",
  "typ": "JWT"
}

Payload

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

Signature

SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Guide

How to use

  1. Paste a JWT (header.payload.signature format) into the input box.

  2. View the decoded header and payload as formatted JSON.

  3. Check the expiration date and Valid/Expired status badge if an 'exp' claim is present.

  4. Copy the header, payload, or signature independently as needed.

Scenarios

Use cases

  • Debug an authentication issue by inspecting the claims inside a JWT.

  • Check when an access token expires during API development.

  • Verify that a token contains the expected user ID, roles, or scopes.

  • Inspect the signing algorithm declared in a token's header.

  • Decode a token from browser dev tools or server logs to understand its contents.

Good to know

Limitations & Privacy

Private by design

Decoding happens entirely in your browser using base64url decoding. Tokens are never sent to a server.

  • Cannot verify the token's signature — inspection only.

  • Only standard three-part JWTs are supported, not opaque tokens.

  • Does not validate claims against your application's specific authorization rules.

FAQ

Frequently asked questions

Can this verify the JWT signature?

No. Signature verification requires the secret key (HMAC) or public key (RSA/ECDSA) used to sign the token, which isn't available client-side. This tool decodes and displays the contents but does not verify authenticity.

Is it safe to paste a real JWT here?

JWT payloads are base64url-encoded, not encrypted, so anyone with the token can read its contents. Treat tokens as sensitive — prefer pasting expired tokens or tokens from non-production environments.

What are the three parts of a JWT?

A JWT has three base64url-encoded parts separated by dots: the header (algorithm and token type), the payload (claims/data), and the signature (used to verify integrity).

What does the 'exp' claim mean?

exp is the expiration time, a Unix timestamp after which the token should be considered invalid. The tool converts this to a human-readable date and shows a Valid or Expired badge.

Why does the tool say my token is expired but my app still accepts it?

Some servers don't strictly enforce the exp claim, or use a grace period. The Expired badge reflects only the exp value compared to the current time, not your server's actual validation logic.

Can I decode tokens that aren't JWTs?

The tool expects the standard three-part dot-separated JWT structure. Other token formats (opaque tokens, API keys) won't decode meaningfully.

What if the payload contains nested JSON or arrays?

Nested objects and arrays in the payload are displayed as formatted, indented JSON for readability.