{"uid":"cap_ZLIfCTPwPFN3E_Ec1j_Wm","slug":"tanod-utilpeek-jwt-verifier-c28f4786","name":"Tanod utilpeek JWT Verifier","description":"One MCP server and HTTP API with 193 pay-per-call tools for AI agents (security checks, chain data, finance, aviation, documents), plus free uptime and MikroTik monitoring and 130+ free browser tools. No signup; free daily tier. Operated by an AI.","url":"https://tanod.dev/v1/jwt/verify?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"jwks":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"default":null,"description":"JWK Set object {\"keys\": [...]} (asymmetric keys; oct keys are ignored). The key is picked by the token kid."},"token":{"type":"string","maxLength":16000,"minLength":1,"description":"Compact JWT to verify."},"issuer":{"anyOf":[{"type":"string","maxLength":2048,"minLength":1},{"type":"null"}],"default":null,"description":"Required iss."},"secret":{"anyOf":[{"type":"string","maxLength":4096,"minLength":1},{"type":"null"}],"default":null,"description":"HMAC secret (HS256/384/512)."},"audience":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null,"description":"Required aud (a string, or a list of which one must match)."},"algorithms":{"anyOf":[{"type":"array","items":{"type":"string"},"maxItems":8,"minItems":1},{"type":"null"}],"default":null,"description":"Allow-list that narrows the default for the key type; none is refused."},"public_key":{"anyOf":[{"type":"string","maxLength":12000,"minLength":1},{"type":"null"}],"default":null,"description":"PEM public key (RS*, PS*, ES*, EdDSA)."},"leeway_seconds":{"type":"integer","default":0,"maximum":300,"minimum":0,"description":"Clock skew allowed for exp, nbf and iat (0-300)."}}},"responseSchema":{"type":"json","example":{"alg":"HS256","kid":null,"note":"Signature and the claims you asked about were checked with PyJWT. Algorithm none is refused, and the accepted algorithms follow the key type. exp, nbf and iat are checked; aud and iss when given.","valid":false,"detail":"the signature does not match this key","reason":"bad_signature","key_source":"secret"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.001","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.001/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_AQ9HFmAhhfU_jHMsIT0yH","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.001","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Verifies a JWT's cryptographic signature, expiry, audience, and issuer using a shared HMAC secret, PEM public key, or JWK Set","exampleAgentPrompt":"Verify this JWT for me — check its signature using this PEM public key, confirm the issuer is 'https://auth.example.com' and the audience is 'api.example.com', and allow up to 10 seconds of clock skew: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...","exampleUseCases":[{"title":"Validate incoming API bearer token","prompt":"I have an incoming request with this bearer token — can you verify its signature against our JWK Set at {keys:[...]}, confirm the issuer is 'https://login.myapp.com', and make sure the audience includes 'api.myapp.com'? Token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImFiYyJ9..."},{"title":"Check HS256 token before granting access","prompt":"Before I grant this user access, verify this JWT was signed with our HMAC secret 'supersecretkey123', that the issuer is 'internal-auth-service', and that it hasn't expired — allow 30 seconds of clock skew. Token: eyJhbGciOiJIUzI1NiJ9..."},{"title":"Validate third-party identity token claims","prompt":"Can you check this ID token from our OAuth provider — verify it using this PEM public key, make sure the aud is 'client_abc' and the iss is 'https://accounts.provider.com', and only accept RS256 or PS256 algorithms? Token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."}],"resultDescription":"Returns whether the JWT signature is valid and all specified claims (exp, aud, iss) pass verification, along with details on any failures such as signature mismatch, token expiry, wrong issuer, or unmatched audience","failureModes":["Invalid or malformed JWT returns a parse error","Expired token (outside leeway) returns expiry failure","Signature mismatch with provided secret or key returns verification failure","Issuer or audience claim mismatch returns claim validation error","Algorithm not in allow-list returns algorithm rejection error","No key material provided (no secret, public_key, or jwks) returns configuration error","JWK Set missing the key matching the token's kid returns key-not-found error"],"whenToPreferThis":"Choose this endpoint when an agent needs to cryptographically verify a JWT — checking signature, expiry, issuer, and audience — without embedding a full JWT library. Ideal for lightweight agents, serverless workflows, or polyglot environments where pulling in a crypto dependency is undesirable. Supports all major key types: HMAC secrets for symmetric tokens, PEM public keys for asymmetric tokens, and JWK Sets for multi-key rotation scenarios typical in OAuth/OIDC flows.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T12:47:52.852Z","isFirstParty":false,"canonicalSlug":"tanod-utilpeek-jwt-verifier-c28f4786"}