{"uid":"cap_gBDCQ4ewQVWm0Oz0EmvXc","slug":"agent402-a2a-card-validator-4ff5cc77","name":"Agent402 A2A Card Validator","description":"Validate an A2A (Agent2Agent protocol) Agent Card: required fields, skill shape, transport names, capability flags - spec v0.3 structural core. Returns errors, interop warnings, and a normalized summary (skills, interfaces, capabilities). Deterministic mini-A2A tooling - check a card before your agent trusts it.","url":"https://agent402.tools/api/a2a-card-validate","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"card":{"type":"object","description":"the Agent Card JSON (object or JSON string)"}}},"responseSchema":{"type":"json","example":{"valid":true,"errors":[],"summary":{"name":"Sample Weather Agent","skillCount":1},"warnings":[]}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.002","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.002/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_ARft7SP_4YDVZ1JkUDibP","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.002","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates an Agent Card JSON object against the A2A (Agent-to-Agent) specification, returning validity status, errors, warnings, and a summary","exampleAgentPrompt":"Can you check if my agent card JSON is valid — here's the card object — and tell me if there are any errors or warnings I need to fix?","exampleUseCases":[{"title":"Pre-publish agent card check","prompt":"Before I publish my new research agent, validate this agent card JSON and tell me if it passes A2A spec — list any errors or warnings: {\"name\":\"ResearchBot\",\"skills\":[{\"id\":\"web-search\",\"name\":\"Web Search\"}]}"},{"title":"Debugging a malformed agent card","prompt":"My agent card keeps getting rejected — can you run it through the A2A card validator and tell me exactly what's wrong with it? Here's the card JSON."},{"title":"Verifying skill count and agent name","prompt":"I just built an agent card with 5 skills defined — can you validate it and confirm the name and skill count look right in the summary?"}],"resultDescription":"Returns a JSON object with a boolean 'valid' field, an 'errors' array listing any spec violations, a 'warnings' array for non-fatal issues, and a 'summary' object containing the agent name and skill count parsed from the card.","failureModes":["Malformed JSON input returns validation errors listing structural issues","Missing required A2A fields trigger error entries in the errors array","Unknown or unsupported skill definitions may generate warnings","Empty card object returns valid:false with descriptive errors","Passing a JSON string instead of object is supported but malformed strings fail"],"whenToPreferThis":"Use this endpoint when you need to verify that an Agent Card JSON document conforms to the A2A (Agent-to-Agent) specification before publishing or registering it. It is the right choice when debugging why an agent card is being rejected, or when building tooling that programmatically generates agent cards and needs to validate output. Prefer this over manual schema checking when you want actionable error messages and a parsed summary in one call.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T01:17:15.507Z","isFirstParty":false}