> ## Documentation Index
> Fetch the complete documentation index at: https://developer.zeckta.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate Limiting

> Understand API throughput limits, throttling behavior, and rate limit headers.

Zeckta applies rate limits to protect platform stability and ensure fair usage across all customers.

Rate limits are enforced on a per API key basis.

***

## Transactions Per Second (TPS)

Each API key is assigned a maximum throughput measured in **Transactions Per Second (TPS)**.

For example:

| API Key               | TPS    |
| --------------------- | ------ |
| OTP API Key           | 10 TPS |
| Notifications API Key | 25 TPS |

The configured TPS determines how many requests can be processed each second.

***

## Viewing Your Limits

You can view the throughput limit assigned to each API key from the Zeckta Dashboard.

Navigate to:

```text theme={null}
API Keys menu under the Settings section.
```

The **TPS** column displays the current throughput configured for each key.

***

## Rate Limit Headers

Every request includes standard rate limit headers.

| Header                  | Description                                                    |
| ----------------------- | -------------------------------------------------------------- |
| `X-RateLimit-Limit`     | Maximum requests allowed per second.                           |
| `X-RateLimit-Remaining` | Remaining requests available in the current window.            |
| `X-RateLimit-Reset`     | Unix timestamp when the current window resets.                 |
| `Retry-After`           | Seconds to wait before retrying (returned with 429 responses). |

Example:

```http theme={null}
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 94
X-RateLimit-Reset: 1781023456
```

***

## Exceeding Limits

When your application exceeds the configured TPS limit, requests are rejected.

Response:

```http theme={null}
429 Too Many Requests
```

Example:

```json theme={null}
{
  "success": false,
  "message": "Rate limit exceeded. Try again in 1 second."
}
```

The response includes:

```http theme={null}
Retry-After: 1
```

indicating how long to wait before retrying.

***

## Abuse Protection

Repeated rate limit violations may trigger temporary protection measures.

In these cases, requests may continue to receive:

```http theme={null}
429 Too Many Requests
```

with a longer retry period.

Example:

```http theme={null}
Retry-After: 3600
```

***

## Recommended Practices

### Implement Retries

Use exponential backoff when retrying failed requests.

### Use Campaigns for Bulk Messaging

For large recipient volumes, prefer SMS Campaigns over individual message requests.

### Monitor Throughput

Ensure your application does not consistently operate at its maximum TPS allocation.

### Respect Retry Headers

Always honor the `Retry-After` header before retrying requests.

***

## Need Higher Limits?

If your application requires additional throughput, contact Zeckta support to discuss higher TPS allocations.
