---
title: "Client Quotas - Pilot Docs"
description: "Kafka client quota management and throttling analysis"
url: "https://docs.calinora.io/features/quotas/"
---

# Client Quotas

Pilot provides a UI and API for managing Kafka client quotas and analyzing quota utilization and violations.

## Quota Types

Kafka supports quotas at multiple entity levels:

| Entity Type | Description |
| - | - |
| **Default** | Cluster-wide default quotas |
| **Default User** | Default quotas for all users |
| **Default Client ID** | Default quotas for all client IDs |
| **User** | Quotas for a specific user |
| **Client ID** | Quotas for a specific client ID |
| **User + Client ID** | Quotas for a specific user and client ID combination |

## Quota Properties

Common quota properties include:

- `producer_byte_rate` - maximum bytes/sec a producer can publish
- `consumer_byte_rate` - maximum bytes/sec a consumer can fetch
- `request_percentage` - request processing time per broker, summed across network and I/O threads. 100% represents one fully utilized thread; values above 100% are valid (1500% represents 15 threads).

## API Endpoints

### Read Operations (Free)

| Method | Path | Description |
| - | - | - |
| `GET` | `/api/v1/quotas` | List all quotas |
| `POST` | `/api/v1/quotas/resolve` | Resolve effective quotas for a user/client pair |

### Entity-Specific Operations

Each entity type supports GET (free), PUT (licensed), and DELETE (licensed):

| Entity | Path |
| - | - |
| Default | `/api/v1/quotas/default` |
| Default User | `/api/v1/quotas/default-user` |
| Default Client ID | `/api/v1/quotas/default-client-id` |
| User | `/api/v1/quotas/user/{user}` |
| Client ID | `/api/v1/quotas/client-id/{clientId}` |
| User + Client ID | `/api/v1/quotas/user/{user}/{clientId}` |

### Example: Set Producer Quota

```bash
curl -X PUT http://localhost:8080/api/v1/quotas/user/my-producer \
  -H "Content-Type: application/json" \
  -d '{"producer_byte_rate": 10485760}'
```
