All posts

/

Tom Reid

Rate limits should be boring

A quota you cannot predict is a quota you design around. We made ours countable.

Rate limiting is the least glamorous feature an API has, which is exactly why it is worth designing on purpose instead of inheriting by accident.

The old model charged one unit per row written, which meant a batch of 200 rows cost 200 units and a retry could empty an hour’s budget. Since v2.3.2 a batch costs one unit regardless of size, and the quota you spent the old way was credited back.

Limits are per project, not per key. Rotating a key does not reset anything, and a leaked key does not buy an attacker a fresh allowance. Every response carries the remaining quota and the reset time in headers, so a client can slow down before it is told to.

When you do hit the limit, the answer is a 429 with Retry-After. Retrying earlier does not extend the block. Boring, countable, and exactly as advertised.

Landing, docs, changelog, pricing.

Ready to ship the docs?

pages

8

cms collections

2

breakpoints

3

code files

1

licence

unlimited

Refrain

The site your product needs after it ships.

© 2026 Refrain

All product data on this site is demo data.

A Framer template

Demo product

v2.4.0

· released

Buy this template

Create a free website with Framer, the website builder loved by startups, designers and agencies.