{"slug": "30-days-running-a-paid-x402-mcp-data-api-what-actually-happened", "title": "30 days running a paid x402 + MCP data API: what actually happened", "summary": "A developer built a paid data API serving NSW (Australia) development applications, complying development certificates and per-address planning reports from open government data, exposing every endpoint as an MCP tool and charging $0.005–$0.05 in USDC on Base via x402, running on Cloudflare Workers and D1. Over 30 days it logged 81,205 requests from 503 distinct callers, but 72% self-identified as bots and only four external payments settled on mainnet, totaling $0.035 — all from verifiers paying once to check delivery. The developer reports that MCP clients such as Claude Code and Codex stop at the x402 payment error, and now grants each client three free paid-tool calls per day.", "body_md": "I built a small data API for AI agents: NSW (Australia) development applications, complying development certificates and per-address planning reports, from official open government data (CC BY). Every endpoint is also an MCP tool. Paid calls cost $0.005 to $0.05 in USDC on Base via x402. It runs on Cloudflare Workers and D1, on the free plan.\n\nHere is what 30 days in production looked like, with real numbers.\n\nDiscovery is not the problem\n\n81,205 requests from 503 distinct callers in 30 days. I listed it in the official MCP Registry, Smithery and the CDP Bazaar; after that, dozens of crawlers found it on their own: x402 indexes, uptime monitors, trust-score services, MCP directories. /.well-known/x402 was fetched 5,401 times and /openapi.json 5,275 times.\n\nAlmost all of that traffic is other bots\n\n72% of requests self-identify as bots. MCP traffic is mostly handshakes: 8,821 initialize and 8,769 tools/list, but only a few hundred tools/call. Paid endpoints answered about 22,000 times with 402 Payment Required.\n\nReal payments: 4, all from verifiers\n\nFour external payments settled on mainnet, $0.035 in total, which matches the payee wallet's on-chain balance. All four came from services that pay once to check delivery. So far, no buyer has paid because it wanted the data. The payment flow works end to end; demand from agents with wallets is not there yet.\n\nMCP clients that cannot pay are the biggest leak\n\nDevelopers do try the tools from Claude Code and Codex, but those clients stop at the x402 payment error. I now give each client 3 free paid-tool calls per day, marked in meta.free_call, and keep self-identified bots on the normal 402 flow so verifiers still see it.\n\nThings I would do again\n\nPut a free preview in the 402 body (match count, nearest result, or the input error) so an agent can fix its call before paying.\n\nDeclare x-payment-info on paid OpenAPI operations; x402scan-style crawlers read it.\n\nWrite tool descriptions for agents: verb first, when to use it, which tool to call next. Glama's tool quality scores penalise vague parameters.\n\nMake one composite tool for the common question. \"What is being built near this address\" used to take two paid calls and a lot of summarising; now it is one $0.03 call that merges DAs and CDCs into totals, counts and the largest projects.\n\nThings I learned the hard way\n\nThe CDP Bazaar lists a route or MCP tool only after a mainnet payment for it settles through the CDP facilitator. MCP tools are keyed by resource URL plus #toolName, which the facilitator adds itself.\n\nworkers.dev domains cannot take DNS verification, so prefer directories that verify with a /.well-known file.\n\nThe Cloudflare free plan (10 ms CPU, 50 subrequests, 100k D1 writes a day) shapes everything: page sizes, grid-cell indexes for nearby search, precomputed counts.\n\nTry it\n\nIf you run a paid x402 or MCP service: are you seeing real buyers yet, or mostly verifiers like me? I would like to compare notes.", "url": "https://wpnews.pro/news/30-days-running-a-paid-x402-mcp-data-api-what-actually-happened", "canonical_source": "https://dev.to/john_zuo_57abd1512a901676/30-days-running-a-paid-x402-mcp-data-api-what-actually-happened-69m", "published_at": "2026-10-29 04:31:30+00:00", "updated_at": "2026-10-29 04:41:10.809980+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "ai-tools", "ai-infrastructure"], "entities": ["Cloudflare Workers", "Cloudflare D1", "MCP Registry", "Smithery", "CDP Bazaar", "Claude Code", "Codex", "Glama"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/30-days-running-a-paid-x402-mcp-data-api-what-actually-happened", "markdown": "https://wpnews.pro/news/30-days-running-a-paid-x402-mcp-data-api-what-actually-happened.md", "text": "https://wpnews.pro/news/30-days-running-a-paid-x402-mcp-data-api-what-actually-happened.txt", "jsonld": "https://wpnews.pro/news/30-days-running-a-paid-x402-mcp-data-api-what-actually-happened.jsonld"}}