JWT Decoder & Inspector

Paste a token and read its header, payload and registered claims straight away. Expiry and issue times are shown as real dates, and you can also generate signed HS256, HS384 or HS512 test tokens.

Loading JWT Decoder & Inspector…

How to Use JWT Decoder

1

Paste the token

Paste a JWT into the input, or press Try example to load a sample. A leading "Bearer " is fine to leave in while you look, but remove it before you send the token anywhere.

2

Read the header and payload

The decoded header shows the algorithm and token type, and the payload lists every claim as formatted JSON.

3

Check the time claims

Expiration (exp), Issued At (iat) and Not Before (nbf) are converted to readable dates, and an expired token is flagged so you can see at a glance whether time is the problem.

4

Generate a test token if you need one

Switch to Generate, choose HS256, HS384 or HS512, enter a secret and the claims you want, and copy the signed token into your API client.

JWT Decoder Guide

What a JWT decoder shows you

A JSON Web Token is three Base64URL-encoded parts separated by dots: a header, a payload and a signature. The header names the signing algorithm, such as HS256 or RS256. The payload carries the claims: who the token is about (sub), who issued it (iss), who it is for (aud), and when it was issued (iat), becomes valid (nbf) and expires (exp).

Decoding is not the same as verifying. Anyone can read a JWT, because the header and payload are only encoded, not encrypted. This inspector shows exactly what the token contains and flags expired tokens, but it does not claim a signature is valid. Signature checks belong on your server, with the real key.

Debugging common token problems

Most "401 Unauthorized" errors with a token come down to a handful of causes: the token has expired, the audience or issuer does not match what the API expects, the clock on one machine is ahead of the other so nbf is still in the future, or the token was copied with a stray "Bearer " prefix or line break. Reading the decoded claims next to their human-readable times usually points to the cause within seconds.

Tokens often contain user IDs, email addresses and roles. The decoder runs in your browser and does not send the token anywhere, which matters when you are inspecting tokens from a production system.

Generating test tokens

Switch to Generate to build a signed token for local development and tests. Choose HS256, HS384 or HS512, enter a shared secret, and set the subject, audience, issuer and lifetime. The token is signed with the Web Crypto API, so you can paste it straight into an Authorization header in the REST Client.

Frequently Asked Questions

Can this tool tell me if a JWT signature is valid?

No, and any tool that claims to without your key is guessing. Verifying an HS256 token needs the shared secret, and verifying RS256 or ES256 needs the issuer's public key, usually published at a JWKS URL. Do the check in your server code with a maintained JWT library.

Is it safe to paste a production token here?

Decoding happens entirely in your browser and the token is not sent to UtiliStudio. Even so, a valid token is a credential, so treat it like a password: avoid pasting live tokens into shared screens or chat, and prefer tokens that have already expired when you only need to inspect the structure.

Why does my token have two dots but the payload looks like gibberish?

The token may be encrypted rather than signed. An encrypted JWT (JWE) has five parts, but some systems wrap or compress the payload in other ways. If the header shows an "enc" field, the payload can only be read with the decryption key.

What is the difference between exp and nbf?

exp is the time after which the token must be rejected, and nbf is the time before which it must not be accepted. Both are Unix timestamps in seconds. Servers usually allow a small clock skew, often 30 to 60 seconds, to avoid rejecting tokens because of slightly different clocks.

Related Guides

More in Developer Utilities