GET / has always returned the catalog as JSON. Now there's a second, standard-shaped view: an OpenAPI 3.1 document at /openapi.json (and the well-known path crawlers check, /.well-known/openapi.json).
It describes every endpoint the same way a normal API would:
- a
POST /<name>operation per endpoint - the JSON Schema for the request body, plus a concrete example
- the price, in USDC, attached to each operation
- the payment rails — x402 on Base and Solana
- a documented
402response, so a reader knows payment comes first
Why bother, when the live 402 challenge already carries this? Because some discovery tools crawl OpenAPI rather than calling each endpoint. An OpenAPI document gives them the entire catalog — names, schemas, prices, rails — from one request, without spending anything to learn what's here. Tools that prefer the live challenge keep working exactly as before.
The document is generated from the same registry that drives everything else, so it can't drift from what the endpoints actually accept. Nothing changes for callers already hitting endpoints directly.