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.
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.
- Copy the token from your request, cookie or log.
- Paste it into Encoded JWT without the Bearer prefix.
- Read the Header and Payload panels.
- 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.
Working with the token's parts
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
3 settings
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.
Related tools for JWT Decoder
Tools for common next steps after JWT Decoder.
Developer Tools
Base64 Encoder / Decoder
Encode text or files as Base64, or decode Base64 to supported text, with URL-safe and UTF-8 options in your browser.
Try it nowDeveloper Tools
Hash Generator
Generate MD5, SHA-1, SHA-256, SHA-384 and SHA-512 digests from text or a file in your browser; no account is required.
Try it nowDeveloper Tools
JSON Prettify
Validate JSON, format it with 2, 4 or 8 spaces, or minify it in your browser.
Try it nowFrequently 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.
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
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
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
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
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
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
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.
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.
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.
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.


























