Skip to main content
Independent MeasurementRegister: x402 endpoints, L0 · L1Bazaar catalog snapshot 2026-09-30 · fetched 19,174 of catalog 19,098
vet402State of x402 · MethodologyTable: L0 verdicts and L1 purchases

The x402 Observatory

This page lists live endpoint checks. Values here are measurements, not opinions.

Find an endpoint

pass 22,042(62.7%)fail 4,230(12.0%)unverified 8,855(25.2%)[settled on-chain 3,347]

Figure 1. Published L0 verdict, 35,127 endpoints on record (includes delisted; 20,162 active; 15,861 of the passes are currently listed). Settled on-chain counts endpoints with at least one purchase vet402 re-read on-chain, listed or not: 3,039 with a transaction the seller named in its own settlement receipt and 308 where the seller returned no receipt and vet402's own settlements index found the settled transfers, as reported by /api/v1/observatory/state. Select a legend entry to filter the table.

1.Observed endpoints

L0 observations over catalog endpoints
EndpointL0L1 delivered ·
settled / attempts (delivered: a settled purchase whose paid request answered 2xx; settled: the transfer re-read on-chain; attempts: paid attempts)
Last probedNetworkDeclared methodCatalogCalls 30d
archtools.dev/v1/tools/text-to-speechpass0 delivered (paid retry answered 2xx) · 1 settled on-chain of 2 paid attempts2026-09-30 16:40 UTCBasePOSTactive5
ari001.tailb4ac3a.ts.net/v1/base/gasfail1 delivered (paid retry answered 2xx) · 1 settled on-chain of 2 paid attempts2026-09-30 04:40 UTCBaseGETactive5
aura-revenue.helionixlabs.com/x402/audit/x402-preflightpass2 delivered (paid retry answered 2xx) · 2 settled on-chain of 4 paid attempts2026-09-30 13:40 UTCBasePOSTactive5
bazaar-gateway.vercel.app/api/crypto-pricesfail3 delivered (paid retry answered 2xx) · 3 settled on-chain of 4 paid attempts2026-09-28 16:40 UTCBaseGETdelisted5
blockrun.ai/api/v1/defillama/protocol/uniswappass2 delivered (paid retry answered 2xx) · 2 settled on-chain of 2 paid attempts2026-09-30 13:40 UTCBaseGETactive5
buildscottsbluff.com/v1/censuspass1 delivered (paid retry answered 2xx) · 1 settled on-chain of 1 paid attempts2026-09-30 13:40 UTCBaseGETactive5
chain-analyzer.com/api/v1/x402/pingpass4 delivered (paid retry answered 2xx) · 4 settled on-chain of 4 paid attempts2026-09-30 04:40 UTCBaseGETactive5
clearcut.clawca.sh/api/remove-backgroundpass1 delivered (paid retry answered 2xx) · 1 settled on-chain of 1 paid attempts2026-09-30 04:40 UTCBasePOSTactive5
cracked.ai/v1/runfail1 delivered (paid retry answered 2xx) · 1 settled on-chain of 1 paid attempts2026-09-26 16:40 UTCBasePOSTdelisted5
cron402-api.user-defaults.workers.dev/v1/cronspass2 delivered (paid retry answered 2xx) · 2 settled on-chain of 3 paid attempts2026-09-30 13:40 UTCBasePOSTactive5
curl-http-request.underscoredone.com/curlpass1 delivered (paid retry answered 2xx) · 1 settled on-chain of 1 paid attempts2026-09-30 10:31 UTCBasePOSTactive5
currency-api-production-4a8d.up.railway.app/crypto/pricepass1 delivered (paid retry answered 2xx) · 2 settled on-chain of 3 paid attempts2026-09-30 04:40 UTCBasePOSTactive5
dartapi.ljaysk.com/v1/eventspass5 delivered (paid retry answered 2xx) · 5 settled on-chain of 5 paid attempts2026-09-30 04:40 UTCBaseGETactive5
deepai.pay.zeroclick.io/api/colorizerpass0 delivered (paid retry answered 2xx) · 1 settled on-chain of 1 paid attempts2026-09-30 13:40 UTCBasePOSTactive5
defi-signals.org/market/snapshotpass2 delivered (paid retry answered 2xx) · 2 settled on-chain of 3 paid attempts2026-09-30 04:40 UTCBaseGETactive5
defillama.use.x402atlas.com/historical-chain-tvlpass5 delivered (paid retry answered 2xx) · 5 settled on-chain of 5 paid attempts2026-09-30 04:40 UTCBaseGETactive5
defillama.use.x402atlas.com/options-chainpass1 delivered (paid retry answered 2xx) · 1 settled on-chain of 2 paid attempts2026-09-30 16:40 UTCBaseGETactive5
dns.use.x402atlas.com/dnssecpass3 delivered (paid retry answered 2xx) · 3 settled on-chain of 4 paid attempts2026-09-30 13:40 UTCBaseGETactive5
dns.use.x402atlas.com/txtpass2 delivered (paid retry answered 2xx) · 2 settled on-chain of 3 paid attempts2026-09-26 10:30 UTCBaseGETactive5
econdash.org/api/v1/m2m/countries/DEUpass3 delivered (paid retry answered 2xx) · 3 settled on-chain of 3 paid attempts2026-09-30 04:40 UTCBaseGETactive5
filedge.io/v1/parsepass2 delivered (paid retry answered 2xx) · 2 settled on-chain of 3 paid attempts2026-09-30 04:40 UTCBasePOSTactive5
finance.toonhaus.dev/api/market/trendingpass3 delivered (paid retry answered 2xx) · 3 settled on-chain of 3 paid attempts2026-09-30 13:40 UTCBaseGETactive5
fractalai.net.co/api/x402/attest-trainingpass0 delivered (paid retry answered 2xx) · 1 settled on-chain of 1 paid attempts2026-09-30 16:40 UTCBasePOSTactive5
fractalai.net.co/api/x402/verify-agentpass1 delivered (paid retry answered 2xx) · 1 settled on-chain of 1 paid attempts2026-09-30 16:40 UTCBasePOSTactive5
free-api-resell.relayhop.workers.dev/v1/polymarket/marketspass3 delivered (paid retry answered 2xx) · 3 settled on-chain of 3 paid attempts2026-09-30 04:40 UTCBaseGETactive5
gate402.app/v1/proxypass3 delivered (paid retry answered 2xx) · 3 settled on-chain of 5 paid attempts2026-09-30 16:40 UTCBasePOSTactive5
geld-machen-x402.fly.dev/product/image-ocr.jsonpass1 delivered (paid retry answered 2xx) · 1 settled on-chain of 2 paid attempts2026-09-30 16:40 UTCBaseGETactive5
globalrules-api.onrender.com/api/v1/country/SG/currencypass1 delivered (paid retry answered 2xx) · 1 settled on-chain of 1 paid attempts2026-09-30 13:40 UTCBaseGETactive5
hello-world-x402.vercel.app/hellopass3 delivered (paid retry answered 2xx) · 3 settled on-chain of 3 paid attempts2026-09-30 04:40 UTCBaseGETactive5
html.openverbs.com/v1/strippass1 delivered (paid retry answered 2xx) · 1 settled on-chain of 3 paid attempts2026-09-30 04:40 UTCBasePOSTactive5
humanmirror.fr/api/x402/safe-preflightpass2 delivered (paid retry answered 2xx) · 2 settled on-chain of 2 paid attempts2026-09-30 16:40 UTCBasePOSTactive5
ioswarm.io/api/v1/x402/quotepass2 delivered (paid retry answered 2xx) · 2 settled on-chain of 2 paid attempts2026-09-30 13:40 UTCBasePOSTactive5
ip-geo-api-production.up.railway.app/lookup/ippass1 delivered (paid retry answered 2xx) · 3 settled on-chain of 3 paid attempts2026-09-30 04:40 UTCBasePOSTactive5
kaisha-api.hp-vladic.workers.dev/calendar/business-dayspass3 delivered (paid retry answered 2xx) · 3 settled on-chain of 3 paid attempts2026-09-30 13:40 UTCBaseGETactive5
kenoodl.com/preflightpass1 delivered (paid retry answered 2xx) · 1 settled on-chain of 2 paid attempts2026-09-30 16:40 UTCBasePOSTactive5
keystone-opportunity-api.keystone-opportunity.workers.dev/v1/opportunitiespass3 delivered (paid retry answered 2xx) · 3 settled on-chain of 3 paid attempts2026-09-30 04:40 UTCBaseGETactive5
kronossignals.com/api/v1/cex-premium/btcpass3 delivered (paid retry answered 2xx) · 3 settled on-chain of 3 paid attempts2026-09-30 13:40 UTCBaseGETactive5
kronossignals.com/api/v1/snapshot/btcpass3 delivered (paid retry answered 2xx) · 3 settled on-chain of 4 paid attempts2026-09-30 13:40 UTCBaseGETactive5
lotusnetworkapi.com/api/v1/gas/preflightpass3 delivered (paid retry answered 2xx) · 3 settled on-chain of 3 paid attempts2026-09-30 16:40 UTCBaseGETactive5
marketdata.use.x402atlas.com/insider-tradespass5 delivered (paid retry answered 2xx) · 5 settled on-chain of 5 paid attempts2026-09-30 04:40 UTCBaseGETactive5

2.Reading this table

Abstract

Every endpoint in the public x402 discovery catalog: is it still listed, and does its payment wall answer a valid 402 challenge when approached with the method it declares. The catalog is re-fetched daily; endpoints are probed on a rolling schedule, and each row shows when it was last probed. The L0 cell is the payment-wall measurement alone; the L1 cell counts real purchases whose transfer vet402 re-read on-chain (settled / paid attempts; the transaction named by the seller's receipt or, when the seller returned none, found by vet402's own index) above the count that also returned a 2xx response (delivered), with every transaction listed on the endpoint's page. The two are never mixed. pass / fail / unverified are defined measurements, not opinions — definitions here. unverified is not a failure: it means we do not have grounds to publish either of the other two yet. Most often that is because the rolling schedule has not reached the endpoint, or a single failing probe has not met the publication gate; the entry declaring too little to check is one cause among several, and the current breakdown is counted out in the methodology.

Order. Endpoints with at least one settled L1 purchase first, then measured endpoints (pass / fail), then by observed call volume (catalog-reported, last 30 days). L1 is shown as delivered · settled / attempts for that endpoint; — means no purchase was attempted. settled is the transfer vet402 re-read on-chain; delivered is a settled attempt whose paid request also answered 2xx. A paid attempt that answered 4xx — settled, or refused with no settlement receipt — is published as inconclusive and is not counted against the seller: vet402 buys with no API key of the seller's and sends a POST body only when the seller declares one, so a 4xx can be vet402's own request being malformed. So is a 402 or 5xx from 2026-09-13 00:00 to 2026-09-15 23:49 UTC, when vet402's own payer wallet had run out of USDC. The endpoint's page shows those rows and the count (methodology §2). Per-endpoint counts use the same paid-attempt denominator as the totals reported by /api/v1/observatory/state. The [settled on-chain] entry under Figure 1 lists the endpoints with at least one purchase settled on-chain, whether the transaction came from the seller's receipt or from vet402's own index. A receipt on these pages is the seller's own settlement receipt.

Snapshot line. fetched is the number of raw catalog items received across pages, counted before duplicate URLs collapse into one endpoint key; catalog is the total the catalog reports about itself. Fetched can exceed the catalog total for that reason, and a fetch below the total is incomplete: no delisting judgement is made on such a day. Endpoints on record (Figure 1) include delisted entries; the Catalog column says which are still listed. The active count under Figure 1 is a different figure from the catalog total on the snapshot line: it counts endpoint rows on record whose catalog status is still active. That status is set when a fetch lists the endpoint and flipped to delisted only by the daily diff against the previous day's snapshot on a complete fetch, so it is carried over from earlier days rather than re-read from the snapshot line, and the two need not agree.

Catalog is presence in the public discovery catalog: active means listed as of the latest snapshot; delisted means the entry was present on an earlier day and absent on a complete fetch — with the before/after recorded on the endpoint's page. L0 is the payment-wall measurement: pass — a probe using the declared method received HTTP 402 with a parseable accepts array consistent with the catalog declaration; fail — two or more consecutive probes contradicted that (each with a recorded reason); unverified — not enough declared to measure, or the evidence threshold is not yet met. A day on which our own fetch was incomplete produces no delisting judgements at all.

Verify a payeeGet an API key