{"uid":"cap_L844hfvgiVCmDKmv9ld0t","slug":"vextorium-jwt-verify-e5a2ad58","name":"Vextorium JWT Verify","description":"Decode a JWT and verify its signature with the public keys of a JWKS URL (RS256, ES256, EdDSA...) or an HMAC secret, checking expiry, audience and issuer; returns header, claims and the exact reason if invalid. Tokens are not stored.","url":"https://api.vextorium.com/v1/jwt-verify?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"required":["token"],"properties":{"token":{"type":"string"},"issuer":{"type":"string"},"secret":{"type":"string"},"audience":{"type":"string"},"jwks_url":{"type":"string"}}},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":["object","null"],"properties":{"valid":{},"header":{"type":["object","null"],"properties":{"alg":{"type":["string","null"]},"typ":{"type":["string","null"]}}},"reason":{"type":["string","null"]},"content":{"type":["object","null"],"properties":{"iat":{"type":["number","null"]},"sub":{"type":["string","null"]},"name":{"type":["string","null"]}}},"algorithm":{"type":["string","null"]}}}}}}},"responseSchema":{"type":"json","example":{"valid":null,"header":{"alg":"HS256","typ":"JWT"},"reason":"No jwks_url or secret: decoded only, signature NOT verified.","content":{"iat":1516239022,"sub":"1234567890","name":"John Doe"},"algorithm":"HS256"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.003","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"registry","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.003/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_ujKwzkIov6zoiP8dE9MD2","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.003","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Decodes a JWT and verifies its signature using a JWKS URL or HMAC secret, checking expiry, audience, and issuer, then returns the header, claims, and exact failure reason if invalid.","exampleAgentPrompt":"Can you verify this JWT for me — token is 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...' — check the signature against the JWKS at https://auth.example.com/.well-known/jwks.json and confirm the issuer is 'https://auth.example.com' and the audience is 'my-api'?","exampleUseCases":[{"title":"Validate incoming API bearer token","prompt":"I've got a bearer token from an API request — 'eyJhbGciOiJFUzI1NiJ9...' — can you verify its signature against the JWKS at https://accounts.myapp.com/.well-known/jwks.json and tell me if it's expired or has the wrong issuer?"},{"title":"Debug a rejected authentication token","prompt":"Our login service is rejecting this JWT and I don't know why — token is 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.abc123' — can you decode it and verify it against the HMAC secret 'my-super-secret' so I can see the exact reason it's failing?"},{"title":"Inspect claims on an EdDSA-signed token","prompt":"Can you decode this EdDSA-signed JWT 'eyJhbGciOiJFZERTQSJ9...' using the JWKS at https://idp.corp.com/jwks and show me the header, the claims inside it, and whether the signature is valid?"}],"resultDescription":"A JSON object containing: a boolean validity flag, the decoded JWT header (alg, typ), the decoded claims payload (sub, name, iat, etc.), the detected algorithm, and a human-readable reason string explaining exactly why the token is invalid if verification fails. Tokens are never stored server-side.","failureModes":["Token is malformed or not a valid JWT — returns invalid with a descriptive reason","No JWKS URL or secret provided — token is decoded but signature is NOT verified, reason field says so","JWKS URL is unreachable or returns no matching key — returns invalid with key fetch failure reason","Token is expired — returns invalid with expiry reason","Issuer or audience mismatch — returns invalid with mismatch reason","Algorithm mismatch between token header and provided verification method"],"whenToPreferThis":"Use this endpoint when you need to programmatically verify a JWT's cryptographic signature (RS256, ES256, EdDSA, HS256, etc.) and validate its standard claims (exp, iss, aud) in a single call without building your own JWKS-fetching or HMAC verification logic. It is especially useful for agent workflows that need to gate actions on authenticated tokens, or for debugging auth failures where the exact failure reason matters. Tokens are not stored, making it suitable for sensitive auth flows.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T18:53:25.086Z","isFirstParty":false,"canonicalSlug":"vextorium-jwt-verify-e5a2ad58"}