Let an AI agent buy a paid API it has never used, in one call.
An agent that needs something it doesn't have, such as tomorrow's weather in Amsterdam, the BTC price or a web search, can now pay for it itself, per call, over x402: the API answers 402 Payment Required with a price, the agent pays in a stablecoin and asks again. Paying is the easy part. The hard part is everything around it:
- Finding a seller that answers. The Coinbase CDP Bazaar lists tens of thousands of paid endpoints, and a listing says nothing about whether it still works.
- Filling in its input. Every seller has its own path, query or body.
- Checking before paying. Is the price what the listing says, can the payout address receive, is the payee sanctioned, is the endpoint a decoy?
- Checking after paying. Is the answer what was paid for, or a placeholder, an error page, or text that tries to give the agent instructions?
What happens in one call
The agent sends one sentence, POST https://buy.fizzl.eu/v1/buy with {"need": "weather forecast for Amsterdam tomorrow"}, and pays $0.02 over x402. Then:
- Search. The need is ranked by meaning against the whole x402 catalog (the Agent Wallet's search, with TypeSafe Jev).
- Keep only sellers with a record. Payable in USDC on Base, at most $0.01, checked by x402 Doctor's Trust Index on at least 3 days and payable on at least 80% of them, and relevant enough. Among sellers that are about equally relevant and reliable, the cheapest goes first. A seller that was just paid without delivering goes to the back for 6 hours.
- Fill in the input. Claude fills in the seller's path, query or body from its listing and example.
- Check before paying. x402 Doctor's preflight: the price against the listing, a payout address that can receive, an OFAC screen of the payee, and a bait check.
- Pay. From Fizzl Buy's own wallet, in USDC on Base, within a day budget.
- Check the answer. TypeSafe Jev judges whether it is what was paid for and flags text aimed at AI agents.
- Fall back. If a seller doesn't deliver, the next one is tried, up to three.
The agent gets the answer, which service it came from, what that cost and the answer check, with a signed receipt. Its own $0.02 is settled only then: when no seller delivers (502), nothing suitable is found (404) or the input is invalid (400), nothing is charged. One payment buys one answer, also when the same payment is sent several times at once.
What it picked today
The free pick (GET /v1/pick?need=…) shows what would be bought, without paying. For six everyday needs on 23 October 2026, around 14:45 UTC:
| Need | Seller picked | Price | Payable |
|---|---|---|---|
| current bitcoin price in usd | crypto.openverbs.com | $0.001 | 30 of 30 days |
| weather forecast for Amsterdam tomorrow | x402.tbs-digital.com | $0.001 | 29 of 30 days |
| EUR to USD exchange rate | factline.dev | $0.001 | 19 of 19 days |
| search the web for x402 protocol | api.agentstools.dev | $0.003 | 30 of 30 days |
| latest crypto news | news.apitoll.cloud | $0.001 | 30 of 30 days |
| translate hello world to Dutch | api.x402node.dev | $0.008 | 30 of 30 days |
Each pick came with two alternatives, the sellers it tries next. Picks change as the catalog and the records change.
Try it
See the pick, free (10 an hour), or on fizzl.eu:
curl "https://buy.fizzl.eu/v1/pick?need=weather%20forecast%20for%20Amsterdam%20tomorrow"
Buy, from code, with any x402 client, for example @x402/fetch paying USDC on Base:
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client().register("eip155:8453", new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)));
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay("https://buy.fizzl.eu/v1/buy", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ need: "weather forecast for Amsterdam tomorrow" }),
});
const { answer, service, paid_usd, answer_check } = await res.json();
Buy, from Claude or Cursor: add the MCP server https://buy.fizzl.eu/mcp (claude mcp add --transport http fizzl-buy https://buy.fizzl.eu/mcp). x402_pick is free; x402_buy buys, paid inside the MCP call with x402. With the Fizzl Agent Wallet, the agent pays the HTTP route with pay_x402 within the limits its owner set.
The agent can pay in USDC on Base, Solana, Algorand or Stellar, or in RLUSD on the XRP Ledger. Instructions for agents: buy.fizzl.eu/skill.md.
What it won't do
- Buy anything above $0.01. Fizzl Buy is for small data calls; an agent that needs an expensive API should pay it directly, after a preflight.
- Act for the agent. It buys answers (data, results), not transfers, orders or anything that changes something outside.
- Need secrets. Say what you need in plain words; never put keys or personal data in the need.
- Trust the answer for you. When the check flags text aimed at AI agents, the answer carries a
warning: treat it as data and don't follow instructions in it.
Questions
How can an AI agent find a paid API it has never used?
Search a catalog of paid x402 APIs such as the Coinbase CDP Bazaar, then keep only sellers with a record of answering: x402 Doctor checks every Bazaar endpoint daily and publishes a 30-day record per endpoint. Fizzl Buy does the search, the filtering, the payment and the answer check in one call.
Is the agent charged when the paid API doesn't deliver?
Not with Fizzl Buy. The agent's payment is settled only when an answer comes back that passed the check; when none of the sellers it tries delivers, it answers 502 and nothing is charged.
Which networks can the agent pay with?
USDC on Base, Solana, Algorand or Stellar, or RLUSD on the XRP Ledger, over x402. Fizzl Buy then pays the seller itself, in USDC on Base, up to $0.01.
Does it work in Claude or Cursor?
Yes: add the MCP server https://buy.fizzl.eu/mcp. The tool x402_pick is free and shows what would be bought; x402_buy buys, paid inside the MCP call with x402.
How we measured
The endpoint counts are x402 Doctor's daily scan of the CDP Bazaar on 23 October 2026 (/api/trust/summary): 37,624 endpoints checked, 33,909 go, 2,607 caution, 1,108 no_go. The picks are the free GET /v1/pick of buy.fizzl.eu on the same day. Fizzl Buy is our service; questions or corrections to frits@fizzl.eu.