{"uid":"cap_VtRQ6QtL8P6pkY6vHQi1n","slug":"pennyrail-jwt-toolkit-token-claims-extractor-4a3aee1a","name":"PennyRail JWT Toolkit – Token Claims Extractor","description":"Machine-readable settlement service","url":"https://pennyrail.vercel.app/api/p/skill/jwt.toolkit--token-claims","method":"POST","headers":{},"bodySchema":{"type":"object","required":["input"],"properties":{"input":{"type":"object"}}},"responseSchema":{"type":"object","additionalProperties":true},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.05","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.05/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.05","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.05","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_-UTQT0KiO0RrnqOcO9GlU","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.05","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Extracts and decodes claims from a JWT token, returning the parsed payload and header information","exampleAgentPrompt":"Can you decode this JWT and show me all the claims inside it — I need to see the subject, issuer, expiration, and any custom fields: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsImlzcyI6ImF1dGgubXlhcHAuY29tIiwiZXhwIjoxNzAwMDAwMDAwfQ.signature","exampleUseCases":[{"title":"Inspect auth token from login flow","prompt":"I have a JWT my auth server just issued and I want to know the exact claims inside it — sub, iat, exp, roles, everything. Here's the token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzQ1NiIsInJvbGVzIjpbImFkbWluIl0sImV4cCI6MTcwMDAwMDAwMH0.abc123"},{"title":"Verify token expiry before API call","prompt":"Before I make this API call, can you decode this bearer token and tell me when it expires and who issued it? Token: eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2lkcC5leGFtcGxlLmNvbSIsImV4cCI6MTcwMTAwMDAwMCwic3ViIjoic3ZjX2FjY291bnQifQ.sig"},{"title":"Extract user identity from incoming request token","prompt":"A request came in with this Authorization header token and I need to know the user's ID and what permissions are claimed inside it without calling the auth server: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJ1c3JfNzg5IiwicGVybWlzc2lvbnMiOlsicmVhZCIsIndyaXRlIl19.xyz"}],"resultDescription":"Returns a JSON object containing the decoded JWT header (algorithm, token type) and payload claims (subject, issuer, audience, expiration, issued-at, and any custom claims present in the token). Does not perform cryptographic signature verification — only structural decoding and claims extraction.","failureModes":["Malformed JWT string (not three base64url segments) returns an error","Empty or missing input token returns a validation error","Heavily padded or non-standard JWT encoding may fail to parse","Network timeout on the Vercel serverless function","Payment failure via x402 protocol blocks the request before processing"],"whenToPreferThis":"Choose this endpoint when you need a quick, pay-per-use JWT claims extraction without setting up a local JWT library or auth SDK. Useful in agent pipelines where you receive an opaque token and need to inspect its claims programmatically. Not suitable if you need cryptographic signature verification — use a full JWT verification service for that.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T07:21:46.556Z","isFirstParty":false}