How do you rate-limit a free tier when there are no accounts to rate-limit?

by

I have a free tier that costs me real money every time someone uses it, and no way

of knowing who's using it. I'm looking for the least invasive way to cap it.

The background: I took the account requirement off the front of my product a few

weeks ago. You can now use the expensive part of it without signing in, and you only

make an account at the point where you'd want to keep the output. That change has

worked better than the version with a wall on the front of it.

The part I didn't think through: the expensive part costs me per run, and now I have

no identity attached to any of those runs.

What I've tried.

IP limits. Simplest thing, and it's what I shipped. It breaks in both directions. An

office, a university, a shared mobile carrier — that's a lot of separate people

behind one address, and the first one through the door locks out the rest. Anyone

who actually wants around it changes network and carries on.

Cookie and localStorage counters. Cleared trivially, so they only stop the people who

weren't trying. Not worthless, but a speed bump rather than a limit.

Browser fingerprinting. Would probably work. I don't want to do it. It feels like a

worse thing to do to a stranger than asking them to sign in, which is the exact thing

I just removed.

Where I'm actually stuck is that I can't tell abuse from enthusiasm. Someone running

it eight times in an hour is either draining the budget or is the most interested

person who's visited all month, and from the server side those two are identical. So

I've set the cap low, which almost certainly punishes the second one.

Two things I'd like from anyone who's run this:

1. If you've had an anonymous free tier that costs you per use, what did you limit on

in the end, and what did it cost you in false positives? I'd rather hear what broke

than what worked.

2. Was there any pre-signup signal that separated a real person from a scraper? I

have request timing and I don't trust it.

Entirely willing to be told the answer is "put the wall back". If that's the

consensus I'd want to know what changed your mind, because the difference in how

people behave on the way in has been the most noticeable thing I've shipped this

year.

19 views

Add a comment

Replies

Best

I've run into this too. the annoying part is that strict limits often hit your best users first.