Paste a JWT and instantly see the decoded header, payload, and all claims — in a clean formatted view. 100% offline. Your tokens never leave your machine.
A JSON Web Token (JWT) has three parts separated by dots — header, payload, and signature. Each part is Base64URL-encoded. JSONLab decodes all three and displays them as formatted JSON.
{
"alg": "HS256",
"typ": "JWT"
}
{
"sub": "user_123",
"name": "Alice",
"role": "admin",
"iat": 1711000000,
"exp": 1711086400
}
HMAC-SHA256( base64url(header) + "." + base64url(payload), secret )
Privacy note: JSONLab decodes JWTs entirely on your local machine. Your tokens — which may contain user IDs, roles, email addresses, and auth claims — are never sent to any server. This is especially important when debugging production tokens in a corporate environment.
| Claim | Full Name | Description & Example |
|---|---|---|
| sub | Subject | The principal that is the subject of the JWT — typically a user ID. "sub": "user_123" |
| iss | Issuer | The server that issued the token — identifies the auth service. "iss": "https://auth.example.com" |
| aud | Audience | The recipient(s) the token is intended for. "aud": "api.example.com" |
| exp | Expiration Time | Unix timestamp after which the token must be rejected. "exp": 1711086400 |
| iat | Issued At | Unix timestamp when the token was issued. "iat": 1711000000 |
| nbf | Not Before | Token must not be accepted before this Unix timestamp. "nbf": 1711003600 |
| jti | JWT ID | Unique identifier for the token — used to prevent replay attacks. "jti": "a8b9c0d1e2f3" |
Click the 🔑 JWT button in the JSONLab toolbar to open the JWT Decoder dialog.
Copy a JWT from your browser DevTools, Postman response, or log file and paste it into the input field.
JSONLab immediately shows the decoded Header and Payload as formatted, syntax-highlighted JSON. Timestamp claims (exp, iat) are decoded to human-readable dates.
Use the copy button to copy the header or payload JSON independently for further analysis.