Skip to content
AnalysisXP-2026-0087

The status code that waited thirty years

HTTP reserved a response for payment required and never used it. Machine clients gave it a reason to exist.

SpansAISECFIN

10 minMachine Micro-Payments

The specification has carried a reserved status code for payment since the beginning, and it sat unused because the human web settled on subscriptions and advertising. Neither works when the client is a program making a thousand requests an hour on behalf of somebody else.

An autonomous client cannot enter card details and should not hold a subscription to every service it might need once. Per-request payment fits the access pattern exactly, and it only became practical when settlement got cheap enough that the fee was smaller than the thing being bought.

What a working implementation needs

  • A price quoted in the response, machine-readable, before the client commits.
  • Settlement cheaper than the resource, or the whole arrangement inverts.
  • A spending policy the client cannot exceed, enforced outside the client.
  • A record tying the payment to the decision that caused it, retained as long as the payment.

Where it is actually running

Paid API access for agents, metered data lookups, and inference capacity sold per call. All three share a property: the buyer is a program, the amounts are small, and no prior relationship exists. That last point is what conventional payment rails handle worst.

Our largest customer signed no contract and has no account. It is a process, and it pays per call.
Founder, market data provider

What to watch

Refunds. Every deployment we looked at handles the happy path and improvises when the resource fails after payment. That gap will decide whether serious providers adopt it.

Read next

Across the network

Desks that share a zone with this one on the BITBRIEF coverage map.

Terms defined