DEV Community

Elijah
Elijah

Posted on Originally published at lumierepaycheck.org AI-assisted

We paid x402 endpoints 45,152 times. Here's what we found.

Originally published on lumierepaycheck.org.

x402 lets an AI agent pay for an API call the way a browser loads a page: the endpoint answers 402 Payment Required with a price, the agent pays in USDC, and the endpoint returns the data. No account, no API key, no invoice.

That's the promise. We wanted to know how it holds up when you actually pay. So for six weeks, from September 27 to November 7, 2026, Lumière PayCheck called every x402 endpoint it could find, paid the listed price, and checked what came back.

The short version: once an x402 endpoint takes your money, it almost always delivers. Getting the payment to go through in the first place is the hard part.

The numbers at a glance

Metric Result
Test attempts 126,291
Endpoints tested 37,812
Sellers (domains) 2,307
Payments that settled 45,152
Total paid to endpoints (including seller-funded tests) $394.44
Average price per call 0.87¢
Endpoints that delivered on their latest graded test 95.1%
Payment attempts that never went through 49.1%

How we tested

For every endpoint in the x402 Bazaar and every one we found outside it, PayCheck:

  1. Requested it without paying and read the 402 quote: price, network, token, payout wallet.
  2. Paid that exact quote from a test wallet, on Base or Solana.
  3. Compared the response with what the endpoint's own listing promised: the fields, the shape and, where we could check them, the values.
  4. Re-tested any first failure before counting it, so one bad minute doesn't sink a grade.

Every paid test since November 7 also gets a signed receipt anyone can verify, so these numbers aren't just our word.

Results we can't blame on the seller, like our own network errors or a quote that changed between the check and the payment, are recorded as neutral and never count against an endpoint.

Finding 1: once paid, 95% of endpoints deliver

This is the number that matters most to an agent: if you pay this endpoint, do you get what you paid for?

Looking at each endpoint's latest graded paid test (31,546 endpoints):

Result Endpoints Share
Delivered what the listing promised 29,990 95.1%
Bad response (confirmed on re-test) 1,331 4.2%
The listing's example didn't exist 144 0.5%
Needed a login after payment 55 0.2%
Needed input we didn't have 26 0.1%

That's a better record than most people expect from a protocol this young. But 4.2% of a catalog with tens of thousands of endpoints is still well over a thousand endpoints where paying gets you nothing usable. An agent that pays blindly will hit them.

Finding 2: half of all payment attempts never went through

Of 126,291 test attempts, 61,982 (49.1%) ended before any data came back, because the payment itself didn't complete.

Why the payment didn't complete Attempts Share
The endpoint asked for payment again after we paid 53,340 86.1%
Our side couldn't build a valid payment for that quote 7,619 12.3%
Other 1,023 1.7%

Two honest caveats. These are attempts, not endpoints: an endpoint that kept refusing payment was retried and counted each time. And 12% of the failures were ours, mostly quote formats our payer didn't support yet. We have been fixing those as we find them.

The big one, though, is the first row. The endpoint quotes a price, we pay exactly that, and it answers 402 again. For an agent, that's a dead end: no data, and often no clear reason. In our data it's the single most common way an x402 call fails, by a wide margin.

Finding 3: when a paid call fails, it's usually the wrong data, not no data

When an endpoint did accept payment and still failed, the most common problem by far was a response missing the fields its own listing promised (7,879 cases). It answered, it looked like success, and the data wasn't there.

Smaller groups: server errors after payment (1,564), timeouts after payment (1,239), responses that weren't valid JSON (661), a list where the listing promised a single item or the other way round (391), 404 after payment (227) and empty responses (93).

This is why a status code alone tells an agent very little. A 200 with the wrong body is still money spent on nothing.

Finding 4: failed calls usually still cost money, and refunds are rare

Of the 5,123 paid tests we confirmed as bad responses, 3,151 (61.5%) still charged us. Sellers refunded 87 of those: 2.8%.

That isn't necessarily bad faith. Most x402 sellers settle the payment before they run the request, and few have any refund flow at all. But it means the cost of a bad call lands on the buyer, which is the agent's wallet.

Finding 5: re-tests almost always confirm the first failure

Every first failure gets a second paid test before it counts. Over a 30-day window of 4,937 decided re-tests, 94% confirmed the failure and 6% passed the second time.

So most failures aren't flukes. When an x402 endpoint breaks, it tends to stay broken until someone fixes it.

Finding 6: x402 is a market of sub-cent calls on Base

Price per call Payments Share
Up to $0.001 3,866 8.6%
$0.001 to $0.01 38,366 85.0%
$0.01 to $0.05 2,896 6.4%
Over $0.05 24 0.1%

85% of payments were between a tenth of a cent and a cent. By network, 84.6% settled on Base and 5.7% on Solana. The remaining 9.8% settled without the endpoint sending a transaction reference back, which leaves the buyer without an easy receipt for what it paid.

What this means if you're building an agent that pays

  • Check before you pay. One request to the endpoint's grade costs nothing and skips the 4% that won't deliver. That's what Lumière PayCheck is for: a free grade for every x402 endpoint, and an allow-or-deny check your agent can call with the exact quote before it signs anything.
  • Treat "402 after payment" as a hard failure. Don't retry it in a loop; stop and record it.
  • Validate the body, not just the status. Check for the fields you need before you trust the result.
  • Report outcomes. Every result an agent reports makes the grades better for the next one.

What this means if you sell an x402 endpoint

  • Make your listing match your response. Most paid failures were missing or mismatched fields. If your output schema says it returns an object with price, return that.
  • Confirm your endpoint accepts its own quote. Pay it once yourself, from a wallet that isn't yours, on each network you list.
  • Return the settlement header. Buyers want proof of what they paid.
  • See your grade, and prove it. Every seller's endpoints are graded in the open on the Sellers page. If you've fixed something, you can fund a test and the result updates right away.

Frequently asked questions

What is x402?
An open payment protocol that uses the HTTP 402 Payment Required status. An endpoint quotes a price, the client pays in a stablecoin like USDC (most often on Base), and the endpoint returns the response. It's built for AI agents paying for APIs per call.

How reliable are x402 endpoints?
In our tests, 95.1% of endpoints that accepted payment delivered what their listing promised on their latest graded test. But 49% of all payment attempts didn't complete, mostly because the endpoint asked for payment again after being paid.

How much does an x402 API call cost?
Usually less than a cent. 85% of the payments we made were between $0.001 and $0.01, and the average was 0.87¢.

Do x402 sellers refund failed calls?
Rarely. Of 3,151 bad responses that charged us, 87 were refunded (2.8%).

How can I check an x402 endpoint before paying it?
Look it up on lumierepaycheck.org, or have your agent call the free check_payment tool (API or MCP) with the quote. It returns allow or deny, with the reason.

The data

Every endpoint's grade and test history is public on lumierepaycheck.org, the catalog is browsable by seller on the Sellers page, and new paid tests come with signed receipts. Live totals are on the stats page.

If you're a seller and think a result is wrong, tell us at the address on the site. We'd rather fix a grade than defend a mistake.

Top comments (0)