{"uid":"cap_K7QEk2z3P5sfNJc0z4Syi","slug":"pennyrail-jwt-inspect-2dd92d12","name":"PennyRail JWT Inspect","description":"Machine-readable settlement service","url":"https://pennyrail.vercel.app/api/p/skill/jwt.toolkit--jwt-inspect","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_fNpRmQ0DZJ4WB88uaEtuC","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":"Inspects and decodes a JWT token, returning its header, payload, and signature components","exampleAgentPrompt":"Can you decode this JWT for me and show me what's in the payload and header? Here's the token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c","exampleUseCases":[{"title":"Debug an expired auth token","prompt":"I'm getting auth errors and want to check if this JWT has expired — can you inspect it and tell me the expiry time and what claims it has? Token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDAwMDAwMDAsInN1YiI6InVzZXJAZXhhbXBsZS5jb20ifQ.signature"},{"title":"Extract user identity from token","prompt":"I received this JWT from our SSO provider and need to know the subject, issuer, and any roles or groups in the payload — can you pull that out for me? Token: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyMTIzIiwiaXNzIjoiYXV0aC5leGFtcGxlLmNvbSIsInJvbGVzIjpbImFkbWluIl19.abc123"},{"title":"Audit JWT algorithm and structure","prompt":"We need to audit this JWT to make sure it's using RS256 and not the 'none' algorithm — can you inspect its header and tell me what algorithm is set? Token: eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJ1c2VyIjoiYWRtaW4ifQ."}],"resultDescription":"Returns the decoded JWT broken into its three parts: the header (algorithm, token type), the payload (all claims such as sub, iss, exp, iat, and any custom claims), and metadata about the token structure. The signature is surfaced but not cryptographically verified against a secret.","failureModes":["Malformed or non-JWT input returns an error indicating the token could not be parsed","Missing 'input' object in request body returns a validation error","Truncated JWT with missing segments fails to decode","Payment failure or missing x402 payment header results in 402 response","Very large or deeply nested JWT payloads may time out"],"whenToPreferThis":"Use this endpoint when you need to quickly inspect or decode a JWT token to read its claims, header algorithm, or expiry without needing cryptographic signature verification. Prefer this over a full JWT validation endpoint when you only need to read token contents, not confirm authenticity. Ideal for debugging auth flows, auditing token structure, or extracting identity claims in automated pipelines.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T07:17:54.371Z","isFirstParty":false}