Here are one hundred APIs.json files. Not a hundred companies we believe have one, and not a hundred entries copied out of somebody else's list — a hundred URLs that were requested on 2026-09-03, answered with bytes that parsed, and had an apis array inside. The 80 organizations behind them describe 178 APIs.
We publish the list rather than the number because a number cannot be checked. Every row below is a link. Click one and you get the raw index that host serves, right now, with nothing of ours in between.
What had to be true to make the table
Two rules, and the first is the one the specification already states in section 3.2.1: the index is served from the same domain as the APIs it describes. A copy of your APIs.json in a GitHub repository is a file. The same document at yourdomain.com/apis.json is a discovery endpoint, because a machine that knows your domain can find it without being told anything else. That rule threw out more candidates than it kept.
The second rule is that a status code is not a document. Hosts that answer 200 to everything will happily return their HTML shell for /apis.json, and several pointers that providers gave us themselves turned out to aim at an OpenAPI rather than an index. Every URL here was parsed, not pinged. Four candidates were dropped on this pass for failing exactly that check.
One hundred documents is not one hundred organizations
It is 80. The table counts files, and 20 organizations serve the same index at more than one location — usually /apis.json and /.well-known/apis.json together, which is the belt-and-braces move and a sensible one while the convention is still settling. Those appear twice below, because two URLs that both answer are two places a machine can succeed.
Counted as organizations instead of files, 94 publish an authoritative index today, and 119 URLs answer for them. The home page grid is the organization-shaped view of this same data — one tile per provider, 94 tiles.
The versions are the interesting column
Across the hundred: 0.21 (38), 0.14 (16), 0.16 (10), 0.19 (9), 0.18 (7), 0.15 (5), 0.22 (4), 1.0 (4), 0.23 (2), 0.17 (1), 0.20 (1). That is every one of the 10 released versions of APIs.json from 0.14 on, all in production at the same time, the oldest of them a decade old and still parsing. It is also the wild in miniature: 4 documents declare 1.0, a version that has never existed, and 3 declare no version at all — and their apis arrays parse fine anyway, which tells you which fields readers actually depend on.
Nobody had to upgrade. An index written against 0.14 is still valid today and the tooling still reads it, because every release since has added vocabulary rather than moved the furniture. That is the entire argument for keeping the format small, and this column is the evidence for it rather than the claim.
The other thing worth noticing is who is here. Weather data, postal code lookups, disc golf, debt collection, a city council. Most are small. Almost none are the companies that would appear on a list of the largest API providers — and the largest API providers are, with a few exceptions, absent. The organizations that publish a machine-readable index of their APIs are overwhelmingly the ones for whom being found is the whole business.
The list
Fetched and parsed 2026-09-03. 119 URLs passed; the 100 above are the first 100 alphabetically by provider, and the remaining 19 are reachable from the home page grid.
If you publish one and you are not on it
You are almost certainly not missing because we judged you. You are missing because nobody asked your server. For most of this list's history the only route onto it was to tell us, which meant it measured who had heard of us rather than who had done the work. When we finally sent the request to every host we knew about, nearly half of the organizations on this list came back from servers that had been quietly answering it for years.
So: put an apis.json at the root of the domain your APIs live on, or at /.well-known/apis.json, or both, and open an issue. It gets fetched and parsed and added, or it gets turned down with the reason.