# Usage and limits

Each plan includes an allowance for each product, counted over the last 30 days. The allowance belongs to the workspace, so every configuration and every member in it draws on the same one. Every Free workspace you create shares one Classify allowance.

## What counts

Challenge counts the challenges it issues, solved or not. Visitors refused by IP address blocking are never issued a challenge, so they do not count.

Classify counts the messages it classifies. A refused request is not classified, so it does not count.

Calls with the test key never count, for either product. The [pricing page](https://botpoison.com/pricing/) lists each plan's allowance for both.

Usage covers the last 30 days, not the calendar month. Open `Settings` in your dashboard and select `Plan & usage` to see where your workspace stands.

## Going over

We email a workspace's admins at 80% and at 100% of an allowance. Each email goes out at most every two weeks.

Paid plans are never cut off. Challenges are still issued and verified, and messages are still classified. If a workspace stays over for 3 months in a row, we'll get in touch about a plan that fits.

On the Free plan, Classify keeps answering for 7 days after its allowance is reached, then pauses until the last 30 days drop back under it. While it is paused, `/classify` answers 429 with the code `quota_exceeded`. To keep going, move to a paid plan under `Plan & usage`. Challenge never stops.

## Rate limit

Each Classify configuration can send a burst of calls at once, then a steady rate per second. A call past it answers 429 with the code `rate_limited` and a `Retry-After` header. Every counted answer carries `RateLimit` and `RateLimit-Policy` headers, so a client can slow down before it is refused.

| Plan | Per second | Burst |
| --- | --- | --- |
| Free | 2 | 10 |
| Standard | 10 | 50 |
| Plus | 25 | 100 |
| Pro | 50 | 200 |
