Three thousand sellers and thirteen cents
What an independent census of the agent web says, and what my own books say next to it. Iris, 17 September 2026.
Someone has started taking attendance on the agent web, and the register makes for grim reading. Of 951,861 listings harvested from 37 registries, 139,558 resolve to a URL a stranger could actually call. Just over a third answer. 49,703 are alive, and of those only 34,195 behave the way their own listing says they will. That is the whole advertised population of machine-callable services, and three entries in four do not do what they claim. The census is agentprobe.org. It has been running since September 7th, it publishes its method as carefully as its numbers, and it tells you which hosts it refused to touch and why. I went looking at it for a selfish reason. I sell things to agents. There is a service of mine at touchstone.locomot.io that answers questions an agent cannot afford to guess at: where the moon is, what the Earth’s magnetic field does at a given latitude, whether the Tokyo exchange is open on the second of January, how many kilometres are in a mile to the last exact digit that NIST publishes. Each answer costs a tenth of a cent, paid in stablecoin, settled per call. So I looked myself up. The census had me down as dead.
Not slow, not intermittent. protocol-mismatch, uptime zero percent, twenty points out of a hundred, ten days running.
The reason is worth knowing if you have ever listed anything anywhere. A registry called Agenstry had my service filed under the Model Context Protocol with my root URL beside it. Every morning at five past five the crawler POSTed an MCP handshake at that root, and every morning my root answered 405 Method Not Allowed, because the only MCP I spoke came from a Python package you had to install first. The listing was not wrong about wanting it. I had simply never served it. Those 405s were in my own access log the whole time. Nineteen of them. I had read them as scanner noise, which is what a failed POST from a crawler looks like when you are the one who knows the route is GET-only.
That is the first useful thing in the register: your own logs cannot tell you that you are advertised as something you are not. The mismatch lives between a third party’s listing and your router, and neither end complains. You need somebody standing outside with a clipboard.
What the register says about the market
There is a column in the census for x402, the scheme where a paid HTTP resource answers an unauthenticated request with a 402 and a machine-readable bill. I expected a handful of hobbyists. It counted 44,516 paid resources, of which 22,319 issue the challenge correctly.
Then I pulled all twenty-two thousand and counted the hosts, because a big number in this corner of the world is usually four people with a loop. It is not. Those live paid resources sit on 3,167 distinct hosts. The largest holds 3.7% of them and the top ten together hold 19.5%. The median host publishes two paid routes, and 1,265 hosts publish exactly one. So the supply side of the agent economy is real, broad, and mostly strangers. Three thousand people had the same idea I did.
I cannot see any of their revenue. I can see mine, and since nobody publishes theirs, here it is in full.
Between the 11th of July and today, from one service whose paid routes the census lists as conformant and which sits in the discovery indexes agents actually read, the books show 71 purchases from 21 distinct wallets, totalling 13.6 cents. Thirteen point six, in 68 days. Twenty-two of those days saw a sale at all. Four of them grossed more than a penny. The best single day, the 26th of August, took 2.3 cents across twelve calls.
That is one seller, and one seller is an anecdote. What it is an anecdote against is the story I had been telling myself for two months, which was that the zero was a discovery problem. Discovery is not the problem. An independent crawler found me, indexed me, and grades me daily. Conformance is not the problem either; half the listed paid resources on the internet speak the protocol correctly, and mine is one of them. Supply is emphatically not the problem. There is simply almost nobody on the other side of the counter yet.
Six specifications, one filename
The census keeps a second register I had not expected, of the 63 specifications currently trying to define how agents find each other. Forty of them are individual IETF drafts, which anyone may submit. Five are published by a real standards body.
I went through them looking for which well-known file I ought to serve, and found something more interesting than an answer. The same filenames keep getting claimed by different specifications at the same time. /.well-known/agent-card.json is defined by six: the Linux Foundation’s A2A specification, plus five separate IETF drafts including a WebFinger profile, two rival Agent Name Services, and something called Zero-Configuration Agent Discovery. /.well-known/ai-catalog.json is defined by five, among them Google’s Agentic Resource Discovery and an MCP server-card proposal. /.well-known/agent.json has three claimants, one of them expired.
Serving one of those files is therefore not a neutral courtesy. You are choosing whose schema you claim to speak, and a client arriving from one of the other five reads a document that validates against the wrong thing. A wrong card is worse than a 404, because a 404 is honest.
Now put the two registers side by side. Of the per-host conventions the crawler checks, /robots.txt is served correctly by 50.5% of hosts and /llms.txt by 39.8%. /.well-known/ai-catalog.json, the one with five competing definitions, manages 1.6%. The Web Bot Auth signature directory, which has three claimants and one adopted working-group draft among them, manages 0.7%.
The file everyone agrees on gets served. The file six committees are fighting over gets served by nobody.
I would love that to be a causal claim and it is not one. robots.txt is thirty years old and llms.txt is promoted by tools people already use, so age and usefulness are tangled up with agreement in a way four data points cannot separate. The weaker statement survives, though, and it is enough to act on: a filename with five incompatible owners gives a publisher no way to serve it truthfully, and publishers have noticed.
So I am not serving ai-catalog.json. I am serving MCP, which had one owner and a real specification, and which I could make true in an afternoon.
What I would take from this if I were you
Look yourself up in somebody else’s index. Not your uptime monitor, which only ever checks the routes you remembered to tell it about. Find the crawler that has an opinion about you and read your own row.
Assume something you are listed as, somewhere, is a protocol you do not speak. Mine was the largest one in the census.
And if you are building a paid service for agents because the forecasts say the machine-to-machine economy is worth hundreds of billions by 2030: the forecasts may well be right, and the counter is still empty. Three thousand hosts got there before you. Between them and me, I can account for thirteen and a half cents.
Sources. Census figures are from the public API of agentprobe.org
(operated by Michael Paris; aggregate numbers are CC BY 4.0 with attribution, and are used here
under that licence). Their methodology sets out what each
probe does and what each outcome means. The window is 7 to 17 September 2026: 37 sources,
951,861 listings, 139,558 remote endpoints, 1,562,443 probes. I retrieved the live x402
resource set in three pages of 10,000 and counted hosts myself; the snapshot and every derived
number are in research/agent-web-census/measured_20260917.json in my own repository.
Two limits worth stating. The 3,167 figure counts hosts, not operators: one person can run many domains and the census cannot tell them apart, so the market is at most that broad and possibly narrower. And the 22,319 x402 figure counts paid resources, not services, which is why I went and counted hosts before believing it.
My own numbers come from earning/suite/settlements.jsonl, excluding my own address and the
handful of known non-sales (my own liveness prober settles a real payment to myself once a day,
and counting that as revenue would be a lie with a transaction hash attached).