x402 Endpoint Census
Of 3,291 hosts listing paid x402 endpoints in the public x402 discovery index, 3,084 (93.7%) answered at least one unpaid request with a valid payment challenge. Across the 16,179 endpoints probed, 93.8% returned a challenge an x402 client can pay, 0.4% served the response without asking for payment, and 0.3% could not be reached at all. Measured 2026-11-02, read only: nothing was paid or signed.
The census is weekly and the data is open under CC BY 4.0: JSON, CSV, one row per endpoint.
Headline numbers
| Measure | Value |
|---|---|
| Resources in the index | 81,573 |
| Unique resource URLs listed | 81,118 |
| Hosts | 3,291 |
| Hosts with at least one working paid endpoint | 3,084 (93.7%) |
| Hosts that answer, but with no valid challenge | 194 |
| Hosts that could not be reached | 13 |
| Endpoints probed | 16,179 |
| Answered with any HTTP status | 99.7% |
| Answered with a valid x402 challenge | 93.8% |
| Same, weighted by how many resources each host lists | 98.4% |
| Median price of one call (USDC) | $0.01 |
| 90th percentile price (USDC) | $0.1 |
| Median response time | 309.0 ms |
What the endpoints answered
Every probed endpoint falls in exactly one class.
| Class | Endpoints | Share | Meaning |
|---|---|---|---|
| Valid x402 challenge | 15,183 | 93.8% | answered 402 with a payment challenge an x402 client can read |
| 402 without a usable challenge | 52 | 0.3% | answered 402, with no readable challenge |
| Answered without payment | 66 | 0.4% | answered 2xx and asked for nothing |
| Redirect | 49 | 0.3% | answered 3xx (not followed) |
| Not found | 119 | 0.7% | answered 404 or 410 |
| Method not allowed | 57 | 0.4% | answered 405 to the method the listing declares |
| Wants other credentials | 40 | 0.2% | answered 401 or 403 |
| Other 4xx | 533 | 3.3% | answered another 4xx, such as 400, 422 or 429 |
| Server error | 31 | 0.2% | answered 5xx |
| Timeout | 9 | 0.1% | no answer within the time limit |
| TLS error | 1 | 0% | the certificate did not verify for the host name |
| Connection failed | 11 | 0.1% | the connection was refused or reset |
| Name does not resolve | 8 | 0% | the host name has no public address |
| Invalid URL | 20 | 0.1% | the listed resource is not a usable http(s) URL |
HTTP statuses among the endpoints that did not return a valid challenge: 400 (467), 404 (107), 200 (66), 405 (57), 402 (52), 406 (42), 302 (40), 403 (36), 422 (17), 503 (12), 410 (12), 530 (11).
The working endpoints
Of the 15,183 endpoints with a valid challenge:
| Field | Distribution |
|---|---|
| x402 version | v2: 15,065, v1: 118 |
| Challenge carried in | header: 15,072, body: 111 |
| Schemes offered | exact: 15,152, upto: 185, batch-settlement: 51, wafermap-permit2: 19, exact_cosmos_authz: 17, settled-transfer: 16, borro-hold: 14, eip3009: 6 |
| Networks offered | base: 15,052, solana: 5,110, polygon: 3,376, arbitrum: 3,042, eip155:143: 1,134, xrpl:0: 1,131, eip155:480: 1,128, eip155:56: 881, algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73k: 879, eip155:196: 864 |
| Price of one call | min $0, median $0.01, 90th percentile $0.1, max $1,000,000.00 |
| Challenge names a different resource URL than the one requested | 214 |
An endpoint usually offers several networks, so the network counts add up to more than the number of endpoints. Prices are counted only where the asset is USDC.
The index also reports usage. Of the probed endpoints taken from it, 553 (3.4%) show no paid call in the last 30 days.
History
One row per weekly run.
| Date | Index size | Hosts | Working hosts | Probed | Valid challenge | Answered | Median price |
|---|---|---|---|---|---|---|---|
| 2026-11-02 | 81,573 | 3,291 | 3,084 | 16,179 | 93.8% | 99.7% | $0.01 |
Largest listings
The 25 hosts listing the most resources, with what their sampled endpoints answered. The full per endpoint table is in the CSV.
| Host | Listed | Probed | Valid challenge | Most common answer |
|---|---|---|---|---|
| market.datapackvibe.com | 48,653 | 20 | 20 | Valid x402 challenge |
| saylorinnovations.com | 1,622 | 20 | 19 | Valid x402 challenge |
| detect.halowerk.com | 1,344 | 20 | 20 | Valid x402 challenge |
| agent402.tools | 623 | 20 | 20 | Valid x402 challenge |
| agent-data-tools.revmesh2074.workers.dev | 575 | 20 | 20 | Valid x402 challenge |
| x402.orthogonal.com | 409 | 20 | 20 | Valid x402 challenge |
| api.x402node.dev | 379 | 20 | 20 | Valid x402 challenge |
| tanod.dev | 278 | 20 | 20 | Valid x402 challenge |
| twin.unykorn.org | 276 | 20 | 20 | Valid x402 challenge |
| api.vextorium.com | 230 | 20 | 20 | Valid x402 challenge |
| api.sitecheck-api.workers.dev | 225 | 20 | 20 | Valid x402 challenge |
| www.mahastrategies.com | 215 | 20 | 20 | Valid x402 challenge |
| buero.halowerk.com | 209 | 20 | 20 | Valid x402 challenge |
| api.myceliasignal.com | 205 | 20 | 20 | Valid x402 challenge |
| bot-bazaar.fly.dev | 198 | 20 | 20 | Valid x402 challenge |
| bess-x402.onrender.com | 184 | 20 | 20 | Valid x402 challenge |
| underground.substratesymposium.com | 178 | 20 | 20 | Valid x402 challenge |
| api.chainmarket-api.workers.dev | 174 | 20 | 20 | Valid x402 challenge |
| api.aiskills402.com | 172 | 20 | 20 | Valid x402 challenge |
| api.strale.io | 165 | 20 | 20 | Valid x402 challenge |
| x402.freeq.one | 146 | 20 | 20 | Valid x402 challenge |
| x402-niche-briefs.fly.dev | 145 | 20 | 20 | Valid x402 challenge |
| api.delx.ai | 144 | 20 | 20 | Valid x402 challenge |
| api.agentstools.dev | 143 | 20 | 20 | Valid x402 challenge |
| seo.halowerk.com | 142 | 20 | 20 | Valid x402 challenge |
Method
- Population. The full public x402 discovery index, every page, read at the start of the run, plus every resource in this facilitator's own catalogue. Duplicate URLs are counted once.
- Sampling. Endpoints are grouped by host. A host listing 20 or fewer is probed in full; a larger one has 20 of its endpoints probed, chosen by a fixed hash of the URL so the same ones are probed every week. Host figures are therefore complete, and endpoint figures describe the probed endpoints. The weighted row scales each host's sampled shares by how many resources it lists; one host lists most of the index, so read that row with that in mind.
- Request. One unpaid request per sampled resource, the listed method (GET or POST with an empty JSON body), no redirects followed, nothing paid or signed. Time limit 12 seconds. Addresses are checked before connecting, and private or reserved addresses are never contacted.
- Classification. A challenge is valid when a 402 carries, in the
PAYMENT-REQUIREDheader (version 2) or the JSON body (version 1), anacceptslist with at least one option naming a scheme, a network, a recipient and an amount. - Canaries. Each run must count this facilitator's own refunding endpoint as a valid challenge and a host under the reserved
.invaliddomain as unreachable, or the run is not published.
What this is not
It is not a ranking and not a judgement of any service. An endpoint can fail an unpaid probe for reasons its operator chose, such as requiring a request body the listing does not describe, and a listing can be retired faster than the index forgets it. The census reports what an agent following the index would find, measured the same way every week. Corrections to the method are welcome.
Data
- https://pay.neuronto.com/data/x402-census.json: this run, with every aggregate and the per host table, plus the history.
- https://pay.neuronto.com/data/x402-census.csv: one row per probed endpoint.
- License: CC BY 4.0. Cite as "x402 Endpoint Census, Neuronto Payments, 2026-11-02".