What AI agents actually paid for in our first day of selling x402 APIs ($0.175, 18 calls, 2 wallets)
Disclosure: I'm the maker of ScrapeMole, the API this post is about. Every number below comes from our own Cloudflare logs and the public Base blockchain. Yesterday we put a set of pay-per-call APIs online for AI agents
Disclosure: I'm the maker of ScrapeMole, the API this post is about. Every number below comes from our own Cloudflare logs and the public Base blockchain.
Yesterday we put a set of pay-per-call APIs online for AI agents. There are no accounts and no API keys: an agent calls an endpoint, gets HTTP 402 Payment Required with a price, pays with a signed USDC authorization over x402, and gets the data. (The build itself is in the previous post.)
About 20 hours after launch, here's what agents actually paid for, what they only looked at, and what we changed because of it.
The numbers so far
- Revenue: $0.175 USDC, settled on Base to our receive address.
- 18 paid calls from 2 different wallets. Neither wallet is ours.
- What they bought: YouTube search 16 times, YouTube channel lookup once, a YouTube transcript once. Every paid call was a $0.005 or $0.01 endpoint.
- What nobody has paid for yet: the 25 endpoints we added last night (web reader, DNS/WHOIS, onchain prices, SEC company data, Wikipedia). They're less than a day old.
$0.175 isn't a business. But it shows the loop working: real agents found the API through directories with no human in between, paid, and came back.
Lesson 1: being listed early mattered more than the product itself
The paid calls all went to the origin that had been listed the longest: our first worker, registered on x402scan, x402dash, Agent402 and 402 Index about 8 hours before the others. Wikipedia lookups or DNS records aren't less useful than YouTube search. Agents just hadn't seen them yet.
So the first rule of selling to agents seems to be the same as selling to people: be where they look, and be there early. We now list every new endpoint on four x402 directories and the official MCP Registry within the hour.
Lesson 2: one agent doing a task is worth more than many browsing
One wallet made 15 calls in 13 minutes, all to the same search endpoint with different queries. That looks like an agent working through a research task in a loop, not someone kicking the tires. A tool that's cheap, fast and predictable inside a loop gets reused.
That's why we keep prices at $0.001 to $0.01 and settle only when the response is a 200. If the upstream fails, times out or the input is bad, the agent pays nothing. An agent (or the person who set its budget) can't easily tell a bad result from a bad tool, so we take that risk instead of the agent.
Lesson 3: discovery traffic dwarfs paid traffic
Across our seven origins, Cloudflare's logs show about 6,100 requests since launch against 18 paid calls, so roughly 340 free requests for every paid one. Most of it is automated discovery and monitoring:
- roughly 10 to 12 unpaid 402 probes per endpoint on the new origins in their first night. That's directories and crawlers checking the price and payment details;
-
about 2,800 POSTs to the remote MCP endpoints (
/mcp), 300+ per origin, from MCP indexes and clients connecting and listing tools. None of them has turned into a paid tool call yet; - about 740 fetches of
openapi.jsonand 200 ofllms.txt, plus a steady trickle of POST/PUT/DELETE guesses at the paid routes. Agents and scanners probing what the API accepts.
The takeaway: your machine-readable surfaces (OpenAPI, the 402 body, MCP tool descriptions) are your storefront. Write them for a model that decides in one pass whether your tool fits its task. Say when to use the tool, not only what it returns.
What we shipped because of this: ScrapeMole Pulse
Language models are frozen in time. They don't know today's date in Tokyo, this morning's EUR/USD rate, or whether it'll rain in Vilnius tomorrow. Those are small, boring, constant needs, which makes them a good fit for pay-per-call. So today we launched ScrapeMole Pulse:
| Endpoint | What it returns | Price |
|---|---|---|
/v1/fx/latest |
ECB reference rates for ~30 currencies, any base | $0.001 |
/v1/fx/convert |
Convert an amount at the latest or a historical ECB rate (since 1999) | $0.001 |
/v1/fx/history |
Daily rate series up to a year, with min/max/change | $0.002 |
/v1/time/now |
Current local time, offset and DST in up to 20 time zones | $0.001 |
/v1/time/convert |
DST-aware conversion for scheduling ("15:00 New York" in Vilnius and Tokyo) | $0.001 |
/v1/weather |
MET Norway forecast by coordinates or place name: now, hourly, 9 days | $0.002 |
/v1/news/hn |
Hacker News top/new/best/ask/show lists with points and comments | $0.002 |
Every response names its source and licence: ECB data via the open-source Frankfurter API, weather from MET Norway (CC BY 4.0), place names resolved through Wikidata (CC0), and the official Hacker News API (we leave out usernames). Time-zone math runs on the IANA tz database built into the runtime, so it has no upstream to fail.
Before going live, Pulse passed a paid end-to-end test on Base Sepolia: 19 of 19 checks, $0.010 spent by the test buyer and $0.010 received, and $0 charged for the three calls designed to fail.
The full lineup
All on the Cloudflare Workers free plan, all with openapi.json, llms.txt and a remote MCP server at /mcp:
- YouTube + Google Trends: search, channels, transcripts, interest over time — https://scrapemole-api-mainnet.scrapemole.workers.dev
- Reader: any page as Markdown, link previews, RSS feeds, links, sitemaps — https://reader.scrapemole.workers.dev
- Domains: DNS, RDAP/WHOIS, availability, email security, SSL, subdomains — https://domains.scrapemole.workers.dev
- Onchain: Base/Ethereum prices, DEX prices, ENS/Basenames, gas, balances, transactions — https://onchain.scrapemole.workers.dev
- Companies: SEC EDGAR profiles, XBRL financials, filings — https://companies.scrapemole.workers.dev
- Wiki: Wikipedia summaries and search, Wikidata facts (attributed) — https://wiki.scrapemole.workers.dev
- Pulse: FX, time zones, weather, Hacker News — https://pulse.scrapemole.workers.dev
Try one from the terminal without paying. You'll get the 402 with the exact price:
curl -i "https://pulse.scrapemole.workers.dev/v1/fx/convert?from=USD&to=EUR&amount=250"
Then retry with any x402 client (for example @x402/fetch) to pay and get the result.
What's next
Our 30-day goal is modest and public: at least 3 different paying wallets and $100 in total. We're at 2 wallets and $0.175. Next up are more listings for the new origins and Solana USDC as a second payment network (code is done and tested on devnet). We'll keep adding small tools in the categories agents actually pay for.
If you're building agents and want a data source we don't have, say so in the comments. If it's public, non-personal data and we can serve it reliably, we'll build it.
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.