Rate Limits & Quotas
Rate limits are applied per IP for public routes and per API key for authenticated routes. Monthly quotas limit the total number of conversions per billing period.
Rate Limits by Plan
Rate limits control how many requests you can make in a fixed 60-second window. The window resets at a fixed point in time (see the X-RateLimit-Reset header).
| Plan | Requests / 60s |
|---|---|
| Public endpoints (no auth) | 30 |
| Free | 30 |
| Pro | 200 |
| Business | 500 |
| Enterprise | 1000 |
Test keys (fc_test_)
| 30 (all plans) |
Monthly Quotas
Monthly quotas limit the total number of conversions (POST /v1/convert and POST /v1/parse) per billing period.
| Plan | Monthly Conversions |
|---|---|
| Free | 100 |
| Pro | 5,000 |
| Business | 50,000 |
| Enterprise | Unlimited |
Test keys (fc_test_)
| 200 / month (all plans) |
Response Headers
Every response includes headers to help you track your usage.
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the current window |
X-RateLimit-Remaining | Remaining requests in the current window |
X-RateLimit-Reset | Unix timestamp when the rate limit window resets |
X-Quota-Reset | Unix timestamp (seconds) when the monthly quota resets |
Retry-After | Seconds to wait before retrying (only on 429 responses) |
429 Responses
When you exceed a rate limit or monthly quota, you receive a 429 status. The response body distinguishes between the two cases.
429 — Rate limit exceeded
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1711324800
Retry-After: 42
{
"error": "Too many requests",
"code": "RATE_LIMITED"
} 429 — Monthly quota exceeded
HTTP/1.1 429 Too Many Requests
X-Quota-Reset: 1746057600
Retry-After: 86400
{
"error": "Monthly conversion quota exceeded",
"code": "QUOTA_EXCEEDED"
} Handling 429 responses
Always check the
Retry-After header and wait the specified number of seconds
before retrying. Use the code field to distinguish between rate limiting
(RATE_LIMITED) and quota exhaustion (QUOTA_EXCEEDED).
Ready to get started?
Get your API key from the dashboard and start converting bank statements.
Go to Dashboard