Rate Limits
tPay365 enforces rate limits to ensure fair usage and platform stability. All limits are per API key.
Default Limits
| Tier | Requests/sec | Burst |
|---|---|---|
| Standard | 100 | 500 |
| Enterprise | 1,000 | 5,000 |
| Sandbox | 1,000 | 10,000 |
Rate Limit Headers
Every response includes rate limit headers so you can track your usage.
Rate limit response headers
http
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1707580800Handling 429 Responses
When you exceed the rate limit, implement exponential backoff with the Retry-After header.
Exponential backoff implementation
typescript
async function fetchWithRetry(url: string, options: RequestInit, maxRetries = 3): Promise<Response> {
for (let attempt = 0; attempt <= maxRetries; attempt++) {
const response = await fetch(url, options)
if (response.status !== 429) return response
const retryAfter = response.headers.get("Retry-After")
const delay = retryAfter
? parseInt(retryAfter, 10) * 1000
: Math.pow(2, attempt) * 1000
await new Promise((resolve) => setTimeout(resolve, delay))
}
throw new Error("Max retries exceeded")
}Respect rate limits
Repeatedly exceeding rate limits may result in temporary key suspension. Contact support if you need higher limits.