x402 is a payment protocol built on the HTTP 402 Payment Required status code. When a client fetches a paid endpoint without payment, the server is supposed to return 402 with a PAYMENT-REQUIRED header containing the price, wallet, network, and scheme.
That response is exactly what a paying client sees first. So we fetch the endpoint, parse the 402 header, and compare what we see against what the Bazaar says the listing should offer. We never send any USDC. The protocol hands us everything we need to verify your listing for free.
payTo match the wallet you registered?Every probe result — timestamp, HTTP status, response time, parsed payment requirements, and the result category — gets written to Cloudflare D1. We keep 7 days of free-tier Time Travel on the DB so you can roll back if we mess up. Hot cache of latest scores lives in KV with a 1-hour TTL.
Everything Watch402 knows is queryable:
GET /v1/check?url=https://your-api.com/paid # probe any endpoint now GET /v1/stats # directory totals GET /v1/sellers?status=broken # paginated list GET /v1/score/123 # one seller's latest
All read endpoints are CORS-enabled and cacheable. The probe endpoint is uncached and rate-limited only by Cloudflare's per-script free-tier budget (100k requests/day).
Five triggers, all free:
*/15 * * * * catalog drift probe (samples 1/4 of sellers) 0 */6 * * * full audit (low-traffic long-tail) 0 0 * * sun weekly Bazaar catalog refresh 0 3 * * * alert webhook delivery tick 0 4 * * * self-ping liveness
Watch402 is built and operated by a single developer on the free Cloudflare tier. The source is open; the spec is at docs.x402.org.