The billable unit is the problem: serving one problem counts one request, with its grade and optional help video included. A batch of 5 counts 5; grading and topic listing never count, and every served problem stays gradeable for 31 days. Limits are per account, summed across all your keys; extra keys never raise the ceiling.
| Plan | Quota | Burst |
|---|---|---|
| Free | 300 problems / day (UTC) | 50 / minute |
| Starter ($19/mo) | 25,000 problems / calendar month (UTC) | 1,000 / minute |
| School ($79/mo) | 150,000 problems / calendar month (UTC) | 3,000 / minute |
Paid quotas are a monthly pool, not a daily slice - burn it all in one school week if that is how your usage lands. The generous burst limits only guard against runaway loops.
Requests return 429 with Daily API quota exceeded (free), Monthly API quota exceeded (paid), or Rate limit exceeded (burst). Nothing is billed past the cap - there is no overage. Daily quotas reset at midnight UTC; monthly pools on the first of the month (UTC).
The dashboard charts your last 30 days and current-month total. Upgrading lifts the new quota immediately; if a paid plan lapses, the account returns to free-tier limits after a short grace period. See pricing.