GET /x402/lint $0.05/call
Point it at any x402 endpoint and get a scored, fix-annotated report: correct 402 behavior (including the empty-body probe rule that silently fails discovery), envelope shape, v2 amount vs maxAmountRequired, CAIP-2 network naming, canonical USDC asset, payTo validity, CORS for browser agents, bazaar extension spec-compliance (schema-validates-info, body vs bodyFields), description length limits — plus Coinbase's own official /validate verdict, interpreted. $0.05 per run. Built from every failure mode documented in x402 issues #2112, #3045, #2157, #2993.
Parameters
| name | required | description |
|---|---|---|
url | yes | public URL of the x402 endpoint to lint |
method | no | HTTP method to probe with (default GET) |
Example
GET /x402/lint?url=https://your-api.com/paid/endpoint
→ {"score":72,"grade":"C","findings":[{"id":"AMOUNT_V2","level":"warn","title":"maxAmountRequired without amount"}],"cdpValidate":{…}}
Payment (x402)
Call without payment to receive HTTP 402 with a base64 envelope in the payment-required header — price, payTo, network (USDC on Base), and I/O schemas. Pay automatically with @x402/fetch:
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://402arcade.dev/x402/lint?…");
No API keys. No accounts. Machine-readable: openapi.json · llms.txt · catalog