apyhub
DEVELOPER TOOLS · SECURITY & PRIVACY

JWT Decoder API

What it does

JWT Decoder decodes and inspects a JSON Web Token without verifying its signature. Send a single token string in the request body, and get back a structured JSON response for reading the token header, payload, and claims.

Use it when you need to debug authentication flows, inspect tokens from a client or gateway, or check what data is embedded in a bearer token before you wire up verification logic. Because it only decodes the token, it is useful for quick inspection during development and troubleshooting.

The input is a three-part JWT in base64url form. The service does not ask for keys or secrets, and it does not perform signature validation. That makes it a lightweight utility for looking at token contents, not for trusting them.

JWT Decoder fits into backend tooling, auth diagnostics, and API support workflows wherever you need to read a token’s structure fast.

POST
Decode & inspect a JWT (header, payload, claims) without verifying.
http://localhost:8080/creightonnick0/decode-jwt
QUICKSTARTGUIDE

Quickstart

Decode a JWT by sending it in the request body.

curl -X POST "http://localhost:8080/creightonnick0/decode-jwt" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIn0.sig"}'

What you'll get back

Returns the decoded header and payload, the signing algorithm, human-readable timestamps for standard claims, and an expired flag — all without verifying the signature.

{
  "header": {
    "alg": "HS256"
  },
  "payload": {
    "sub": "1"
  },
  "algorithm": "HS256",
  "type": null,
  "signature": "sig",
  "readable_claims": {},
  "expired": null,
  "seconds_until_expiry": null,
  "verified": false,
  "note": "Signature is NOT verified. This tool only decodes the token."
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
The JWT to decode (three dot-separated base64url segments)

About this endpoint

What it does

Decodes a JWT without verifying its signature and returns the header, payload, algorithm, readable claims, and expiry status. The request body contains the JWT as a token string.

Request Body

ParameterTypeMandatoryDescription
tokenStringYesThe JWT to decode as three dot-separated base64url segments.

Response

FieldTypeDescription
headerObjectThe decoded JWT header (e.g. alg, typ).
payloadObjectThe decoded JWT payload/claims, as submitted in the token.
algorithmStringThe signing algorithm declared in the header (e.g. HS256).
typeString or nullThe token type declared in the header (typ), if present.
signatureStringThe raw (unverified) signature segment of the token.
readable_claimsObjectStandard registered claims (iat, nbf, exp) converted to readable ISO timestamps, when present in the payload.
expiredBoolean or nullWhether the token's exp claim has passed. null if no exp claim is present.
seconds_until_expiryInteger or nullSeconds remaining until expiry. Negative if already expired, null if no exp claim is present.
verifiedBooleanAlways false. Signature verification is never performed.
noteStringReminder that the signature is not verified and no secret is used.

Body

Name
Type
Description
bodyREQUIRED
object
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.