Daily quotas
Usage is counted per calendar day (UTC) and split into two counters: conversions and premium operations.
| Plan | Conversions / day | Premium ops / day |
|---|---|---|
| Anonymous (guest) | 3 | 3 |
| Free | 3 | 5 |
| Basic | 20 | 20 |
| Pro | Effectively unlimited | Effectively unlimited |
| Team | Effectively unlimited | Effectively unlimited |
"Effectively unlimited"
Pro and Team quotas are set high enough for normal use. Sustained abusive usage may still be throttled.
Upload size limits
| Plan | Max file size |
|---|---|
| Anonymous (guest) | 25 MB |
| Free | 50 MB |
| Basic | 100 MB |
| Pro | 500 MB |
| Team | 1 GB |
Uploads exceeding the limit are rejected with 413.
Texture output limits
| Plan | Max texture output |
|---|---|
| Free | 2K (2048px) |
| Basic | 4K (4096px) |
| Pro | 8K (8192px) |
| Team | 8K (8192px) |
Usage reporting
Check remaining quota with GET /api/user/usage:
json
{
"plan": "pro",
"conversions": { "used": 12, "limit": 999999, "remaining": 999987 },
"premiumOps": { "used": 3, "limit": 999999, "remaining": 999996 },
"date": "2026-09-19"
}
Limit responses
When a quota is reached, the API returns 403:
json
{
"error": "Daily limit of 3 conversions reached for free tier",
"plan": "free",
"limit": 3,
"used": 3,
"upgradePrompt": "upgrade",
"message": "Upgrade to Basic for 20 conversions per day or Pro for unlimited!"
}
Excessive request rates return 429 Too Many Requests.