Rate Limits
To ensure high availability and fair service quality, HtmlToDoc enforces rate limits on public API endpoints.
Dynamic Rate Limiting
To ensure fair service quality, HtmlToDoc isolates API rate limits dynamically based on your account's subscription tier, request complexity, and resource footprint.
Limits by Subscription Tier
API conversions are constrained by both type-specific rates and a combined **Global Convert Cap** per minute, alongside hourly batch files generation quotas:
| Subscription Tier | Sync HTML/URL | Sync Office | Async HTML/URL | Async Office | Global Cap | Hourly Batch Files |
|---|---|---|---|---|---|---|
| Free / Sandbox | 10 / min | 5 / min | 15 / min | 10 / min | 20 / min | 100 / hr |
| Starter | 20 / min | 10 / min | 30 / min | 20 / min | 40 / min | 300 / hr |
| Pro | 50 / min | 25 / min | 75 / min | 50 / min | 80 / min | 1,500 / hr |
| Business | 150 / min | 50 / min | 200 / min | 100 / min | 120 / min | 5,000 / hr |
Quota & Limit Headers
Every successful API response includes custom headers to monitor your request limits and wallet credits balance programmatically:
| Header Key | Description | Example Value |
|---|---|---|
| X-RateLimit-Limit | Maximum API requests allowed in the rate limit window. | 40 |
| X-RateLimit-Remaining | Remaining API requests in the current window before rate-limiting. | 38 |
| X-RateLimit-Reset | UTC Unix epoch timestamp when the current rate limit window resets. | 1783935293 |
| X-Wallet-Credits | Remaining prepaid credits in your wallet balance. | 452 |
| X-User-Tier | The active account tier of the authenticated user. | pro |
Handling Rate Limit Exceptions
If your application exceeds the active rate limit or global cap of your account tier (e.g. 20 requests/minute for Free, 40 requests/minute for Starter), the server will block further requests and return a `429 Too Many Requests` HTTP response. Your application should capture this response status and implement retry-backoff algorithms.