{"uid":"cap_KqSvhrucQV6JZ918C8bSA","slug":"402utils-x402-endpoint-linter-3473e4ad","name":"402utils x402 Endpoint Linter","description":"Micro API utilities for AI agents, priced per call and paid in USDC over the x402 protocol. PDF, screenshot, OG-image and more — no signup, no keys.","url":"https://402utils.com/v1/x402-lint","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Public http(s) URL of the x402 endpoint to lint (required)."}},"description":"Query string only."}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","required":["url","isX402","checks","summary"],"properties":{"url":{"type":"string","description":"The URL that was linted."},"checks":{"type":"array","items":{"type":"object","required":["rule","level","detail"],"properties":{"rule":{"type":"string","description":"Rule id, e.g. description_length, resource_identity, accepts[0].network."},"level":{"enum":["pass","warn","fail","info"],"type":"string"},"detail":{"type":"string","description":"Human explanation of the finding."}}}},"isX402":{"type":"boolean","description":"False when the target is not a decodable x402 402 (then a single info check)."},"summary":{"type":"object","required":["fails","warns"],"properties":{"fails":{"type":"integer"},"warns":{"type":"integer"}}}}}}}}},"responseSchema":{"type":"json","example":{"url":"https://402utils.com/v1/rss-to-json","checks":[{"rule":"x402_version","level":"pass","detail":"x402Version 2."},{"rule":"description_length","level":"pass","detail":"Description 214 chars (< 450)."},{"rule":"resource_identity","level":"pass","detail":"resource.url matches the host you called."}],"isX402":true,"summary":{"fails":0,"warns":0}}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.003","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.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_Q65yGg2zkZbH193qI4Zcn","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.003","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Probes and audits an x402 payment endpoint for common misconfigurations including description length, schema completeness, host identity, protocol version, and network format issues.","exampleAgentPrompt":"Before I publish my x402 endpoint at https://myservice.com/v1/query, can you lint it and check for any issues — like whether the description is long enough, the network format is valid, or there are any host mismatches that would cause agents to reject it?","exampleUseCases":null,"resultDescription":"Returns a JSON object with the linted URL, an isX402 boolean, an array of checks each with a rule ID, level (pass/warn/fail/info), and human-readable detail, plus a summary object with total fail and warn counts.","failureModes":["Target URL is not reachable or does not return a 402 response — returns isX402: false with a single info check","SSRF protection blocks the target URL (private IPs, localhost, internal hostnames)","Target URL is malformed or not a valid URI — schema validation error","Network timeout reaching the target x402 endpoint"],"whenToPreferThis":"Use this endpoint when you need to proactively validate an x402 payment endpoint before deploying or listing it — especially to catch issues like description length (CDP silently rejects short descriptions), missing Bazaar discovery metadata, host identity problems with workers.dev, invalid CAIP-2 network strings, or x402Version mismatches that would cause silent failures at settlement time.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T12:45:17.248Z","isFirstParty":false}