# Rate Limiting

The Willow API implements rate limiting to ensure fair usage and maintain service reliability for all users. Rate limits are applied on a per-client basis and help protect the platform from excessive load.

## Rate Limit Configuration

The following endpoints have rate limits applied:

| Endpoint Pattern | Request Limit | Time Window |
|  --- | --- | --- |
| `/v3/time-series/*` | 20 requests | 10 seconds |
| `/v3/twins/*` | 20 requests | 10 seconds |


Rate limits use a **Fixed Window** algorithm, meaning the request count resets at the end of each 10-second interval.

## Handling Rate Limit Responses

When a rate limit is exceeded, the API will return an error response with a 429 HTTP Response Code. The response body will include a message indicating which endpoint was affected and suggestions for reducing API calls.

Example response when the time-series rate limit is exceeded:

```
Rate limit exceeded for time-series endpoint. Consider using bulk queries to reduce API calls.
```

Example response when the twins rate limit is exceeded:

```
Rate limit exceeded for twins endpoint. Consider using bulk twin queries to reduce API calls.
```

## Best Practices

To avoid hitting rate limits, consider the following strategies:

- **Use bulk queries**: Both the [Time Series](/docs/resource-guide-time-series) and [Twins](/docs/resource-guide-digital-twin) endpoints support batch operations. Combine multiple items into a single request where possible.
- **Implement request throttling**: Add delays between requests in your application to stay within the rate limit.
- **Cache responses**: Store frequently accessed data locally to reduce the number of API calls.
- **Handle rate limit errors gracefully**: Implement retry logic with exponential backoff when you receive a rate limit response.


div
If your application consistently requires higher throughput, please contact developer support to discuss your use case.