All tools

JWT Decoder

JWT Decoder — Decode a JSON Web Token Online

Decode a JWT header and payload, inspect its expiry and copy the decoded data locally; no account is required.

Encoded JWT

How to decode a JWT online and check its expiry and signature

This JWT decoder splits a JSON Web Token into its header, payload and signature, shows each as readable JSON and reports from the exp claim whether the token has expired. An optional Verify signature panel checks the token against your HMAC secret or public key. The token is decoded in your browser and is not sent to a server. Decoding only reads a token, and it never proves the token is genuine.

Decode a JWT header and payload

Paste the token into Encoded JWT, the long string that starts with eyJ and has two dots. Leave off a Bearer prefix. The Header, Payload and Signature panels appear with a Copy button each, and Copy Payload copies the claims. Timestamps such as iat and nbf are shown as the numbers stored in the token, which are seconds since 1970. Try sample JWT loads a demo token if you only want to see the layout.

  1. Copy the token from your request, cookie or log.
  2. Paste it into Encoded JWT without the Bearer prefix.
  3. Read the Header and Payload panels.
  4. Select Copy on a panel, or Copy Payload.

Check whether a token has expired

When the payload has a numeric exp claim, a banner reads Valid until or Token expired at, followed by the date in your local time. The comparison uses your device clock, so a wrong clock or time zone gives a wrong answer. A token without exp is reported as having no expiry claim. The banner looks at exp only, so nbf, which marks the earliest time a token is valid, and the issuer or audience are not checked. An expired token still decodes normally.

Verify a JWT signature with a secret or public key

Once a token decodes, the Verify signature box accepts an HMAC secret for HS256, HS384 and HS512, or a public key for RS, PS and ES algorithms in PEM form (the BEGIN PUBLIC KEY kind) or as a JWK. Select Verify and a badge says Signature valid or Signature invalid, or explains why the algorithm cannot be checked. Certificates (X.509) and RSA PUBLIC KEY blocks are not accepted, so extract the public key first, and for HS algorithms paste the shared secret as plain text. The algorithm comes from the token's own header, which is why your server should always fix the algorithms it accepts.

Understand what a decoder cannot tell you

Anyone holding a token can read its payload, so a JWT is not a place for secrets. A valid signature shows the token was not altered and was signed with that key, nothing more. Encrypted tokens with five parts cannot be read here. To tidy a payload for a ticket, format the JSON, and to decode a single segment by hand, use the Base64 tool with URL-safe switched on.

Before you trust a decoded token

  • Treat the payload as readable by anyone who holds the token.
  • Verify the signature in your own server code, with the allowed algorithms fixed in advance.
  • Check iss, aud and nbf in your own code, because this page reports only exp.
  • Decode short-lived development tokens rather than live production tokens where you can.

This reader decodes without checking the signature, so to inspect any single segment by hand, decode the Base64URL text directly. If you copied the token from a callback URL full of escapes, undo the percent-encoding first, and to tidy a claims object before signing a new token, validate and indent the JSON.

What you can do with JWT Decoder

Review the main capabilities before you begin.

  • Decode JWT header and payload instantly
  • Inspect token claims in readable JSON
  • Check whether a token has expired
  • Verify the signature with your secret or key
  • Debug auth issues during development
  • Try a sample token to see the format

Settings reference

Available controls for JWT Decoder.

Settings

Try sample JWTOne-click
Loads a demo token with standard claims like sub, iat and exp so you can see decoding and the expiry check in action before pasting your own JWT.

Verify signature

Verify signatureText input
Paste the HMAC shared secret (HS256) or the issuer's RSA/EC public key in PEM or JWK format that the token's signature should be checked against.
VerifyOne-click
Runs the signature check using the secret or public key you entered and shows a badge reporting whether the signature is valid, invalid or uses an unsupported algorithm.
Free to use · No signup required · Without watermarkUploads are encrypted in transitRemoved under our retention policy

Frequently Asked Questions

How JWT Decoder helps you get it done

Real problems it solves every day — for businesses, creators, and everyday tasks. Find the use case that fits you and start.

For Developers

Debug OAuth & OpenID Connect Flows

Decode access tokens and ID tokens returned by Auth0, Okta, Cognito and Azure AD to verify scopes, audiences and issuers during local OAuth integration work

For Developers

Inspect Authorization Headers in API Calls

Paste the bearer token from a failing API request to confirm whether the wrong tenant, role or expiry is to blame before opening a ticket with the backend team

For Developers

Check Token Expiry During Development

Spot expired tokens that are silently breaking your staging environment by reading the exp claim — no need to copy the token into a terminal or write a quick script

For Business

Audit Permissions Encoded in Token Claims

Verify custom claims such as roles, tenants and feature flags so admins can confirm a customer's token grants exactly the access intended by the licence team

For Business

Validate Single Sign-On Integrations

Inspect SAML and OIDC tokens produced by enterprise SSO integrations to confirm group memberships and attribute mappings before rolling out to all employees

Education

Teach Token-Based Authentication

Use the decoded header, payload and signature panes to explain how JWTs are structured to bootcamp students, junior engineers and security workshop attendees

For Developers

Confirm a Partner's Webhook Signing Setup

Paste a partner's RS256 or ES256 public key into Verify signature to confirm their webhook payloads are actually signed correctly before you flip an integration into production.

Privacy & Security

Investigate a Leaked or Suspicious Token

Decode a token found in logs or a bug report to check its audience, scopes and expiry without needing the signing key, so you can assess exposure fast during an incident.

On Mobile

Debug Mobile App Sign-In Failures

Paste the access token your mobile app receives after login to confirm the expiry, issuer and custom claims match what the backend expects when sign-in works on web but fails on iOS or Android.

For Business

Validate Tokens from Firebase, Supabase & Clerk

Decode and inspect tokens issued by modern auth providers like Firebase, Supabase and Clerk to confirm the claims your app reads (uid, role, tenant) are actually present before wiring up authorization logic.

Watch each transformation land

Every photo crosses the slash untouched and comes out the other side finished.