Rate Limiting
PromptJang enforces rate limits using Cloudflare KV with sliding window counters.
Default Limits
| Endpoint | Limit | Window |
|---|---|---|
Ingest (POST /e/:id) | 100 requests | 60 seconds |
| API endpoints | 60 requests | 60 seconds |
Rate limits are per-organization (based on API key → org mapping).
Rate Limit Headers
Every response includes rate limit headers:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Rate Limit Exceeded
When the limit is exceeded, the API returns:
HTTP 429
{"detail": "Rate limit exceeded"}Back off and retry after the X-RateLimit-Reset timestamp.
Increasing Limits
Rate limits vary by plan:
| Plan | Ingest Limit | API Limit |
|---|---|---|
| Free | 100/min | 60/min |
| Starter ($29/mo) | 1,000/min | 300/min |
| Pro ($99/mo) | 10,000/min | 1,000/min |
Contact support for custom limits.