HTTP 402 sat unused for 25 years. Then three different camps decided it was time. L402 shipped first, from Lightning Labs in 2020. x402 came next, from Coinbase in 2025. Pay-per-crawl landed last, from Cloudflare in late 2025. Same status code. Very different bets on how machine payments should work.
I've written integrations against all three. Here's where each one actually sits.
Auth model
L402 bolts onto LSAT, which is a macaroon plus a Lightning invoice. Server hands you back WWW-Authenticate: LSAT macaroon="...", invoice="...". You pay the invoice over Lightning, get a preimage back, then resend the request with Authorization: LSAT <macaroon>:<preimage>. The macaroon carries caveats. You can scope it to a single endpoint, a time window, a request count.
x402 is simpler and more boring. Server returns 402 with a JSON body describing the price and the chain. You sign an EIP-3009 transferWithAuthorization over USDC. Send the signature back in X-PAYMENT. A facilitator (CDP's, by default) actually settles it on-chain. No macaroons, no caveats. Just a signed authorization for one payment.
Pay-per-crawl is the weirdest of the three because it doesn't really specify settlement. Cloudflare brokers it. Your bot signs requests with a Web Bot Auth keypair (an HTTP message signature), and Cloudflare bills your account on the back end. The site sets a price. Cloudflare clears it. From the bot's view there's no invoice to pay inline at all.
Settlement latency
Lightning settles in well under a second when channels are healthy. The catch is "when channels are healthy". If liquidity is wrong-way or your node has to multipath through three hops, you can sit there for 10+ seconds or fail. For an agent making 200 calls a minute that variance hurts.
x402 settles in ~2 seconds on Base. The facilitator submits the transferWithAuthorization and waits one block. It's slower than a happy-path Lightning payment, but the tail is tighter. I've never seen it take more than 4 seconds.
Pay-per-crawl is the fastest at request time, because there is no payment at request time. Cloudflare lets the request through if your account is good and reconciles later. Hidden behind that, though, is the fact that you have to be on Cloudflare's side of the bargain to play. No standalone site can offer pay-per-crawl without going through them.
Asset choice
L402 is Lightning-only, which means BTC. You're carrying sats. For an agent that wants to spend on a hundred APIs, BTC volatility against USD is a real operational headache. Treasury swings 4% in a day and your unit economics swing with it.
x402 picked USDC and is multi-chain (Base, Avalanche, Solana via Solana Pay-style flows, more on the way). USDC is the boring correct answer for agent payments. Stable, deep, KYB'd issuers, and the same 1 USDC is the same 1 USDC on any chain the facilitator settles on.
Pay-per-crawl prices in USD on your Cloudflare bill. No crypto involved from the bot operator's side at all, which is either a feature or a tell depending on your priors.
Ecosystem traction
L402 has had five years. The catalog is small. A handful of API providers, mostly Lightning-adjacent. It never crossed into mainstream agent tooling, partly because Lightning UX for non-BTC-native devs is rough.
x402 is one year old and has roughly 600 listed endpoints across Bazaar and the Coinbase directory, with new clusters landing every week. Anthropic's agent SDK ships with x402 client support out of the box. Bankr indexes the catalog. The momentum is real and visible on-chain.
Pay-per-crawl is brand new and skewed toward publishers wanting bot revenue, not toward agents wanting APIs. The use case is "OpenAI's crawler paid the New York Times 3 cents to read this page", which is fine, but it's a content licensing play wearing a payments hat.
Where this actually nets out
If you're an agent that wants to call 50 APIs an hour and reconcile spending in USD, x402 is the path of least resistance today. If you're moving BTC between Lightning-native services, L402 still works. If you're a publisher and you want bots to pay before they read your site, pay-per-crawl is the only one of the three that solves that specific problem.
Three protocols, three different assumptions about what HTTP 402 is even for. The interesting question isn't which one wins. It's whether any of them ever has to.