# Rate limits & quotas

> Monthly plan quotas, burst concurrency, and zero-429 Prepaid Micro-USD Wallet overflow.

Every API plan includes a predictable monthly lookup quota with generous burst capacity. When your monthly quota is exhausted, you choose whether requests stop cleanly (`429 quota_exceeded`) or continue seamlessly via your **Prepaid Micro-USD Wallet** (`$0.10 / 1,000 lookups`).

## Monthly quotas by plan

| Plan | Monthly quota | Sustained / Burst RPS | Price | Included field families |
| --- | --- | --- | --- | --- |
| Free | 30,000 / month | 5 / 20 req/s | $0 | `geo_country`, `network` |
| Starter | 250,000 / month | 10 / 50 req/s | $12 / mo | `geo_country`, `geo_city`, `network`, `connection` |
| Pro | 2,000,000 / month | 30 / 150 req/s | $39 / mo | `geo_country`, `geo_city`, `network`, `connection`, `anonymity`, `security_extensions` |
| Business | 10,000,000 / month | 100 / 500 req/s | $99 / mo | `geo_country`, `geo_city`, `network`, `connection`, `anonymity`, `security_extensions` |
| Enterprise | 50,000,000 / month | 500 / 2500 req/s | $299 / mo | `geo_country`, `geo_city`, `network`, `connection`, `anonymity`, `security_extensions` |

## Prepaid Micro-USD Wallet (`$0.10 / 1,000 lookups`)

If you experience a traffic spike or DDoS event and want **zero `429` interruptions**, fund your **Prepaid Micro-USD Wallet** in the [dashboard](https://dashboard.ipscope.io). Overflow lookups beyond your monthly plan quota are metered at a flat **$0.10 per 1,000 requests** (`1,000 micro-USD` per lookup) with sub-cent precision. If your wallet balance is `$0`, the API simply returns `429 quota_exceeded`, so you are never billed surprise post-paid overage invoices.

## How lookups are counted

- A `200 OK` response from `/v1/ip/{ip}` or `/v1/ip/me` counts as **1 lookup**.
- A `POST /v1/ip/batch` call counts **1 lookup per unique resolved IP** in the batch (up to 100 per call). All [official SDKs](https://ipscope.io/docs/sdks) deduplicate and check their local LRU cache before sending a batch.
- `4xx` client errors, `429` responses, and `GET /v1/status` health checks **never** count against your quota.
- Filtering with `?field_families=` reduces payload size but still counts as 1 lookup.
