Documentation Index
Fetch the complete documentation index at: https://docs.handtextai.com/llms.txt
Use this file to discover all available pages before exploring further.
Error response format
Error responses return JSON with anerror code and message:
The
X-Request-ID header is always included on all responses. Some error responses may also include a request_id field in the JSON body, but this is not guaranteed for every endpoint/status code. Use the header value when contacting support.Error code reference
401 - Authentication errors
Invalid key format:422 - Validation errors
Validation errors include adetails array with field-level issues:
429 - Rate limit exceeded
Per-endpoint rate limit:500 - Server errors
Server errors includerequest_id for support:
Rate limit headers
When rate limiting applies, responses include:| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the window |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Retry-After | Seconds to wait before retrying (on 429 only) |
Per-endpoint rate limits
Rate limits are enforced per API key:| Endpoint | Limit |
|---|---|
POST /api/v1/generate | 500 requests / minute |
POST /api/v1/preview | 300 requests / minute |
GET /api/v1/fonts | 100 requests / minute |
GET /api/v1/status does not require authentication and is not subject to per-key rate limiting.Request quotas (billing limits)
Accounts may have monthly request quotas. These are enforced on/generate only and return 429 with REQUEST_LIMIT_EXCEEDED.
Request IDs
Every response includes theX-Request-ID header. You can supply your own X-Request-ID header on requests — the API will echo it back. This is useful for correlating requests in your logs with support inquiries.