YourTools.
简体中文
Back to the catalog
Tools

JWT decode

Show a JWT’s header, payload and readable issue, start and expiry times without checking the signature.

Process locally

Files stay in this browser session. Closing or clearing releases them.

Add text

Type or paste the text to process

Adjust settings

Nothing to set; defaults work

This tool has no settings.

Run

Processes in this browser; cancel at any time

Add text first

About this tool

Decode a JSON Web Token (JWT) to read its header and payload as formatted JSON. It helps when you are debugging a login or an API call and need to see which user or permissions a token carries, or whether it has already expired. The issue, start and expiry times (iat, nbf, exp) are also shown as readable dates.

Paste the token on its own or with its “Bearer ” prefix; up to 1 MB is accepted. Decoding does not check the signature, so the result always says “verified”: false. It runs in your browser, and the token is not uploaded.

How to use it

  1. Paste the JWT into the text box, or select Use example to load a sample token.
  2. There are no settings to adjust. Select Run.
  3. Preview jwt.json: it holds the header, the payload, readable times under “claims” and the signature part. Download it if you want to keep it.

Formats and limits

Input
Text
Output
JSON
Size limit
1 MB
Privacy
Files stay in the current browser session. No file bytes are uploaded.
Price
Free, no sign-up

Common questions

Does decoding prove that the token is genuine?

No. Decoding only reads the Base64URL-encoded header and payload, which anyone can create or edit, so the result always shows “verified”: false. To check the signature with a secret, public key, certificate or JWK, use the JWT verify tool.

How can I tell whether the token has expired?

Look at “claims” in the result: expires_at, issued_at and not_before give the exp, iat and nbf times as UTC dates in ISO 8601 format, and expired is true once the exp time is reached by your device’s clock. Times the token does not contain are left out.

Can I paste the whole Authorization header?

A leading “Bearer ” prefix and surrounding spaces are removed automatically, so “Bearer eyJ…” works. Remove “Authorization:” and anything else before the token yourself.

Why is my token rejected?

The text must be a compact JWT of three parts separated by dots, whose header and payload decode to JSON, and the payload must be a JSON object. Encrypted tokens (JWE, five parts) cannot be decoded here.

Is my token sent anywhere?

No. Decoding runs in your browser and the tool makes no network requests. Still treat tokens like passwords: anyone holding a valid one can use it until it expires.