Rate Limits
Rate limits protect the API from abuse and ensure fair usage across all accounts.
Limits by plan
| Plan | Requests per minute | Requests per day |
|---|---|---|
| Free | 60 | 1,000 |
| Starter | 60 | 1,000 |
| Pro | 300 | 10,000 |
Limits apply per API key. Form submission endpoints (/f/{formId}) have separate limits.
Rate limit headers
Every API response includes headers showing your current usage:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the current window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Example:
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 287
X-RateLimit-Reset: 1710512400Handling 429 responses
When you exceed the limit, the API returns 429 Too Many Requests with a Retry-After header indicating how many seconds to wait:
HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-RateLimit-Reset: 1710512400const res = await fetch("https://api.formtorch.com/v1/forms", {
headers: { Authorization: `Bearer ${process.env.FORMTORCH_API_KEY}` },
});
if (res.status === 429) {
const retryAfter = parseInt(res.headers.get("Retry-After") ?? "60", 10);
console.warn(`Rate limited. Retry after ${retryAfter}s`);
// Queue the request or surface an error to the user
}If you need higher limits for a batch migration or data export, use the CSV export feature in the dashboard or contact support to discuss a custom arrangement.
Last updated on