/jwt JWT Decoder & Inspector
Split a JWT into header, payload and signature, pretty-print the claims, and expand the iat/exp timestamps. Decoding only — curlhub holds no secret and never checks the signature.
printf "$JWT" | curl --data-binary @- curlhub.sh/jwt
Usage
With curl
printf "$JWT" | curl --data-binary @- curlhub.sh/jwt
curl "curlhub.sh/jwt?data=eyJhbGci..."
With the CLI
printf "$JWT" | curlhub jwt
pbpaste | curlhub jwt
Structured output for scripts
printf "$JWT" | curl -s --data-binary @- curlhub.sh/jwt -H 'Accept: application/json'
Output
printf "$JWT" | curl --data-binary @- curlhub.sh/jwt
── Header ──
{ "alg": "HS256", "typ": "JWT" }
── Payload ──
{
"sub": "1234567890",
"name": "Alice",
"iat": 1516239022 (2018-01-18 01:30 UTC)
}
NOT verified — curlhub holds no secret and checks no signatures.
Parameters
| Input | What it does |
|---|---|
--data-binary @- | Pipe the token in from stdin (keeps it out of your shell history). |
?data= | Pass the token in the query string (URL-encode it). |
Accept: application/json | Return the decoded {header, payload} as JSON. |
Recipes
Check why a token is rejected
printf "$TOKEN" | curl --data-binary @- curlhub.sh/jwt
Read the exp claim and its decoded UTC time — expiry is the usual culprit.
Inspect an auth header quickly
printf "$JWT" | curlhub jwt