# Rate limits and quotas

> How many requests per minute the free tier, pay per use and each plan allow, how the daily quota of successful solves works, and how to stay inside both.

Two limits apply to your key: a rate limit per minute and a quota per day.

## Daily quota

- Only **successful solutions** count. A request that could not be answered is not charged.
- A job is charged once, when the first poll returns its answer. Fetching the same answer again is free.
- The quota resets every day at **00:00 UTC**. `GET /v1/status` shows `lastreset`, `ttl` and `duration` for the UTC day.
- Jobs that you created and that have no answer yet hold a place in your quota for up to 5 minutes. A burst of requests cannot go far above your daily quota.
- A plan has a daily quota. Without a plan, the free tier gives 100 successful solves per UTC day.
- When the daily quota is used up, your key continues from the balance if there is one. See [Plans and billing](https://solvecha.com/docs/plans-and-billing.md) for the order.
- With no quota and no balance left, new requests fail with error `16`, *Out of credit*, until the reset or until you top up.

## Rate limits per minute

Limits are per key and depend on how it pays. Requests above a limit get error `11`, *Rate limit reached*, with HTTP status `429`.

| Plan | Successful solves per day | Create requests per minute | Poll requests per minute |
|---|---:|---:|---:|
| Starter | 2,000 | 60 | 1200 |
| Basic | 20,000 | 300 | 6000 |
| Professional | 80,000 | 600 | 12000 |
| Enterprise | 200,000 | 1200 | 24000 |

- **Create requests** (`POST`) and **feedback** requests use the create limit.
- **Poll requests** (`GET` with an `id`) are limited to 20 times the create limit. A client that polls each open job once per second stays far below it.
- **Status requests** are limited to 600 per minute.
- A key that only has the **free tier** can send up to **10** create requests per minute.
- A key that pays from a **balance** (pay per use) can send up to **300** create requests per minute.
- A key with an active plan uses the limit of its plan from the table.

## Wrong keys

Requests with a missing or wrong key are counted per address: more than 600 per minute from one address get error `11`. Requests with a valid key are never limited by address, because many customers share one proxy.

## Stay inside the limits

- Poll once per second per job. Do not poll faster.
- Back off when you get error `11`: wait a few seconds, then retry with a longer pause each time.
- Keep a counter of open jobs in your code, and do not create more jobs than you can poll.
- Check `GET /v1/status` before a large batch. `credit` is what your key can still solve: the rest of today's quota plus the balance.

## More quota

Pay per use has no daily quota: you can use as much as your balance pays for, within the create limit. Plans have fixed quotas. See [Plans and billing](https://solvecha.com/docs/plans-and-billing.md) for the four plans. If you need more than the largest plan, write to us through the [contact form](https://solvecha.com/contact).
