Each Kameleo team has a requests‑per‑minute limit to keep the service stable and fair. It applies to authenticated Local API calls that reach our backend.

## Counted operations

High-impact endpoints that fetch or bind fresh fingerprint / profile state increment your RPM:

- SearchFingerprints
- CreateProfile
- StartProfile

Other lightweight operations (e.g., stop profile) have negligible cost and are not subject to the same strict counting.

## Plan limits

| Plan       | Requests / minute (RPM) |
| ---------- | ----------------------- |
| Free       | 60                      |
| Startup    | 120                     |
| Business   | 600                     |
| Enterprise | 1200                    |

Enterprise customers needing more can contact support for a tailored allocation.

## What happens when you exceed

If you cross the plan ceiling within the rolling window:

1. Further counted calls return a HTTP 429 error.
2. Retry after a short exponential backoff (e.g., 1s, 2s, 4s, 8s) until within quota again.
3. Persistent saturation indicates you should optimize or upgrade.

## Optimization strategies

| Goal                             | Technique                                                                   | Example                                                       |
| -------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------- |
| Reduce fingerprint searches      | Cache fingerprint IDs per (deviceType, platform, product, versionRange) key | Store the result of `searchFingerprints` and reuse later      |
| Avoid redundant profile creation | Reuse terminated profiles instead of recreating                             | Start/stop same profile instead of recreate+start cycle       |
| Batch automation start           | Stagger launches to smooth peaks                                            | Launch 10 profiles over 30s, not all in one second            |
| Minimize cold starts             | Keep a warm pool of pre-created profiles                                    | Maintain 20 ready profiles; only create when pool < threshold |

## Quick FAQ

| Question                             | Answer                                                                |
| ------------------------------------ | --------------------------------------------------------------------- |
| Are limits per device?               | No, they are aggregated per team.                                     |
| Do retries count again?              | Yes, each distinct request counts if it reaches the API. Use backoff. |
| Does stopping a profile count?       | Not counted toward RPM.                                               |
| Can I burst above the limit briefly? | Short micro-bursts may still be throttled; design for smoothing.      |
