JWT Decoder

Paste your JSON Web Token (JWT) to decode and view its header and payload.

Header

// Decoded header will appear here

Payload

// Decoded payload will appear here

A Complete Guide to Our JSON Web Token (JWT) Decoder

Welcome to our secure, client-side JWT Decoder. This free online tool is an essential utility for any developer, security professional, or individual working with modern authentication systems. It allows you to instantly decode JWTs (JSON Web Tokens) and inspect their contents in a clean, human-readable format. Simply paste your token into the text area, and our tool will parse the Header and Payload, displaying them as formatted JSON.

The single most important feature of this online JWT decoder is its security. All decoding and processing happen 100% within your browser. Your tokens are never sent to our server. This client-side approach ensures that your sensitive information, such as authentication tokens, API keys, or private user data, remains completely private. You can debug any JWT token with full confidence.

What is a JSON Web Token (JWT)?

A JSON Web Token (JWT) is a compact, URL-safe open standard (defined by RFC 7519) used to securely transmit information between parties as a JSON object. Because this information is digitally signed, it can be verified and trusted. JWTs are stateless and self-contained, meaning all the information needed to authenticate a user is contained within the token itself. This makes them an extremely popular choice for modern web and mobile applications, particularly for handling authentication and information exchange.

You can easily identify a JWT by its three-part structure, with each part separated by a dot (`.`): `header.payload.signature`.

The Three Parts of a JWT Explained

When you use our JWT decoder, you are viewing the decoded versions of the first two parts of the token.

1. The Header (Metadata)

The first part of the token is the JWT Header. It is a JSON object that is Base64Url-encoded. It typically consists of two key-value pairs:

2. The Payload (Claims)

The second part of the token is the JWT Payload. This part is also a Base64Url-encoded JSON object and contains the "claims." Claims are statements about an entity (typically the user) and additional data. There are three types of claims:

Our JWT claims viewer makes it easy to inspect all these claims at a glance.

3. The Signature

The third part of the token is the JWT Signature. It is created by taking the encoded header, the encoded payload, a secret key (or private key for asymmetric algorithms), and running them through the specified algorithm (`alg`).

The signature's purpose is to verify the token's authenticity. It ensures that the token was not altered in transit. If an attacker changes even a single character in the payload, the signature will no longer be valid. **This is why this tool does not and cannot validate the signature**—doing so would require the secret key, which should *never* be shared or pasted into an online tool.

How to Use This JWT Decoder Tool

  1. Copy Your Token: Copy the full JWT string (all three parts) from your application, browser's local storage, or API response.
  2. Paste the Token: Paste the token into the text area at the top of the page. You can also use the "Load Sample" button to see a valid token.
  3. Click "Decode Token": The tool will instantly parse the token.
  4. Inspect the Results: The Header and Payload will be displayed in two separate, clearly formatted JSON boxes below, allowing you to easily read all the claims and metadata.
  5. Clear: Click the "Clear" button to start over.

Common Debugging Scenarios

A JWT decoder is primarily a debugging tool. Here are common issues you can solve with it:

Related Developer Tools

Since JWTs are built on other web standards, you might find these tools useful in conjunction with our decoder:

Frequently Asked Questions

What is a JWT Decoder?

A JWT Decoder is a tool that splits a JSON Web Token into its three components (Header, Payload, and Signature) and displays the Header and Payload in a human-readable, formatted JSON structure. It allows you to quickly inspect the data (claims) and metadata stored within the token.

Is this JWT Decoder safe to use with sensitive tokens?

Yes, it is 100% secure. This tool operates entirely on the client-side, in your browser. Your token, headers, and payload are never sent over the network, logged, or stored on our servers. You can safely decode sensitive authentication tokens without privacy concerns.

Does this tool validate the JWT's signature?

No. This tool only *decodes* the token; it does not *validate* the signature. Validating a signature requires the 'secret key' (for symmetric algorithms like HS256) or the 'public key' (for asymmetric algorithms like RS256) that was used to create the token. You should **never** paste your secret keys into an online tool. This decoder is for inspecting the *data* (claims) inside the token, not for verifying its authenticity.

What's the difference between the Header and the Payload?

The Header typically contains metadata *about* the token, such as the token type (`typ`, which is 'JWT') and the signing algorithm used (`alg`, e.g., 'HS256'). The Payload contains the actual *data* or 'claims' being sent, such as the user's ID (`sub`), the token issuer (`iss`), the expiration time (`exp`), and any other custom data.

Is a JWT encoded or encrypted?

This is a common point of confusion. A standard JWT (JWS) is **encoded** (using Base64Url) and **signed**, but it is **not encrypted**. This means anyone who has the token can decode it and read its contents (as this tool demonstrates). If you need to hide the data from being read, you must use a JSON Web Encryption (JWE) token.

What does the 'exp' claim mean in a JWT?

The `exp` (Expiration Time) claim is a registered claim that defines the time *after which* the JWT must not be accepted for processing. It is a Unix timestamp (a number representing seconds since 1970-01-01T00:00:00Z). A server receiving a token should always check this claim to ensure the token has not expired.