rate limiting vs payment gating

Rate limiting and payment gating are two different answers to the same request. A rate limit says a client has asked too often and may ask again later; a payment gate says the resource has a price and names it. They arrive as different status codes, and reading them as one refusal loses the difference between a wall and a price.

The two codes are defined in different documents and report different things. 429 comes from RFC 6585, which says the code indicates that the user has sent too many requests in a given amount of time — rate limiting, in that document's own gloss. The response may carry a Retry-After field saying how long to wait. The same document states that it does not define how the origin server identifies the user, or how it counts requests. What is being counted is the server's business, and is not legible from one response.

A payment gate answers with HTTP 402 and a payment challenge: a machine-readable statement of price, asset and destination that a client can act on without a person. Cloudflare's pay per crawl is the plainest form of it on the open web. A crawler that has not paid receives 402 with a price header, from a site that could have refused it outright instead.

The difference is what the caller can do next. A rate limit is answered by waiting; a payment gate is answered by paying, and the terms are in the response. The pay-per-crawl documentation frames the same choice from the operator's side — a site owner controls crawler access or monetizes it — and pricing is the branch that leaves the caller something to do.

→ probe402 keeps the two apart in what it publishes about each check, and the words it uses are set out in the rubric.

Sources

Related status class · HTTP 402 · payment challenge · pay per crawl

Glossary