Lumière PayCheck Free API key

Payments on Base + Solana

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

By Elijah Cordova · · updated · 7 min read

We paid x402 endpoints 45,152 times. 95% of endpoints we could pay delivered, 49% of payment attempts never went through, 2,307 sellers and 37,812 endpoints tested.

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

MetricResult
Test attempts126,291
Endpoints tested37,812
Sellers (domains)2,307
Payments that settled45,152
Total paid to endpoints (including seller-funded tests)$394.44
Average price per call0.87¢
Endpoints that delivered on their latest graded test95.1%
Payment attempts that never went through49.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):

ResultEndpointsShare
Delivered what the listing promised29,99095.1%
Bad response (confirmed on re-test)1,3314.2%
The listing's example didn't exist1440.5%
Needed a login after payment550.2%
Needed input we didn't have260.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 completeAttemptsShare
The endpoint asked for payment again after we paid53,34086.1%
Our tester picked a quote option that breaks the x402 spec7,52712.1%
Other errors building the payment920.1%
Other1,0231.7%

One caveat: these are attempts, not endpoints. An endpoint that kept refusing payment was retried and counted each time.

A correction. When we first published this, we called the second row "quote formats our payer didn't support yet". Looking closer, 7,527 of those attempts hit a payment option that breaks the x402 spec, so the official x402 client fails on it exactly as ours did. But it's a small corner of the catalog: 194 endpoints from 13 sellers, out of more than 127,000 we monitor. Retries made it look big; one seller's Solana option alone accounted for 4,678 attempts.

What was wrong with the option (as of November 8; an endpoint can have more than one)EndpointsSellers
Solana option missing extra.feePayer, which x402 on Solana requires431
Network named solana:mainnet instead of solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp1424
x402 version 2 quote using version 1 network names like base (this count can also include networks we simply don't pay on)429
EVM option missing the token's EIP-712 name and version11

Almost all of those endpoints also quote another network, so buyers aren't stuck with the broken option; our tests now pay the other one. When no option in a quote can be paid, PayCheck grades the endpoint D (caution) and shows the seller the exact fix, because an agent can't tell an "almost right" quote from a broken one: its payment just fails.

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 callPaymentsShare
Up to $0.0013,8668.6%
$0.001 to $0.0138,36685.0%
$0.01 to $0.052,8966.4%
Over $0.05240.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 sure a standard client can pay your quote. On Solana, include extra.feePayer and the full network id solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp. On EVM, include the token's name and version in extra. Don't mix versions: x402 version 2 uses CAIP-2 networks (eip155:8453); version 1 uses short names (base).
  • 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.

Check an endpoint before your agent pays it. Free grades and allow-or-deny checks: lumierepaycheck.org · Every x402 endpoint, graded · Docs

More from the blog