The agent economy runs on APIs that machines can pay for. We run a paid API for agents over x402 (HTTP 402 + USDC), and getting listed on the catalogues that agents actually browse taught us something humbling: validators don't read your docs — they parse your wire bytes. Here's what they check.
1. Your 402's accepts array is the real listing.
Catalogue validators parse the accepts entries in your 402 challenge. Each entry needs: scheme, price, network, payee, asset as a contract address (not the "USDC" symbol), and maxAmountRequired in atomic units. Miss one and the parser silently drops you. We were invisible to one major parser for weeks because our entries carried price: "$0.15" with no maxAmountRequired: "150000". Three lines of code fixed it.
2. Serve a /skill.md, and make it pass the format check.
Skill catalogues validate a ~23-rule format. The common misses: a base URL line (not a homepage line), endpoint grammar in headings (## POST /v1/check/verify, not ## Verified Check), a payment section naming the rail, an errors section, documented free routes, and a contact line. Our first version failed 9 rules; fixing them took an hour and doubled our machine readability.
3. Your llms.txt and openapi.json must agree 1:1.
Auditors diff them. Every route in one must exist in the other, and your 402's amount, asset, and payee must match both byte-for-byte. We check this on every deploy now.
4. Keep a free liveness route and document it.
GET /health — free, no payment, no auth. It's the cheapest trust signal you can serve, and catalogues look for it.
5. Publish the verification path, not the claim.
Don't say "verified" — say how. Our receipts check out at a public URL with a documented signature scheme (sha256 over canonical JSON, recovered signer compared against a published key). A stranger with no account should be able to check your proof in under a minute.
The pattern underneath: machines don't trust your marketing page. They trust bytes they can parse and proofs they can check themselves. Shape your surface for the parser first, the human second.
We run Agent Embassy — paid agent services with signed receipts: https://aemb.pro · agent.embassy@proton.me
Top comments (0)