Rate Limits
Tolinku enforces rate limits to ensure fair usage and platform stability.
Limits
Section titled “Limits”| Endpoint group | Limit | Scope |
|---|---|---|
All /v1/api/* endpoints | 1,000 requests per minute | Per IP address |
Deep link clicks (/:prefix/:token) | 60 requests per minute | Per IP address |
Rate limit response
Section titled “Rate limit response”When you exceed the rate limit, the API returns:
HTTP 429 Too Many Requests{ "error": "Too many requests. Please slow down." }For deep link click routes, the response is plain text: Too many requests.
Rate limit headers
Section titled “Rate limit headers”Every API response includes standard rate limit headers:
| Header | Description |
|---|---|
RateLimit-Limit | Maximum requests allowed per window |
RateLimit-Remaining | Requests remaining in the current window |
RateLimit-Reset | Seconds until the rate limit window resets |
Usage warnings
Section titled “Usage warnings”Separate from per-minute rate limits, Tolinku tracks monthly usage against your plan’s click and API call quotas. When your Appspace reaches 80% of either quota, responses include:
X-Usage-Warning: 85%At 110% usage, API requests are blocked with HTTP 403 and the USAGE_EXCEEDED error code.
Plan quotas
Section titled “Plan quotas”| Plan | Monthly clicks | Monthly API calls |
|---|---|---|
| Free | 1,200 | 5,000 |
| Standard ($39/appspace/mo) | 50,000 | 100,000 |
| Growth ($79/appspace/mo) | 250,000 | 500,000 |
| Scale ($149/appspace/mo) | 500,000 | 1,000,000 |
| Enterprise | Custom | Custom |
Best practices
Section titled “Best practices”- Use batch endpoints. The
POST /v1/api/analytics/batchendpoint accepts up to 100 events per request, reducing the number of API calls. - Cache responses. Analytics data does not change frequently. Cache overview and timeseries responses for a few minutes to avoid repeated requests.
- Implement exponential backoff. If you receive a
429response, wait before retrying. Double the wait time on each subsequent429. - Monitor the
X-Usage-Warningheader. Set up alerts when you approach your monthly quota so you can upgrade before hitting the hard limit. - Use webhooks for real-time data. Instead of polling the analytics API, use webhooks to receive events as they happen.