title: "Usage limits & warnings" description: "How Zenovay tracks usage against your plan and notifies you at 80% / 95% so you don't hit your limit by surprise."
Usage limits & warnings
Every Zenovay paid plan has three pay-as-you-go (PAYG) resources that are tracked monthly:
| Resource | Free quota | What counts |
|---|---|---|
| Website events | varies by plan | pageviews + custom events + goals |
| API requests | varies by plan | calls authenticated with ZV_* API keys |
| First-party proxy events | varies by plan | events routed via your custom CF Worker proxy |
When you cross 80% of any of these, the dashboard fires a one-time toast notification. A second toast fires at 95%. After the warning has been shown for the period, it won't fire again until the first day of the next calendar month (UTC).
Reading current usage
GET /api/billing/usage
Authorization: Bearer ZV_xxx
Returns current usage with limits and percentage:
{
"success": true,
"data": {
"websites": { "used": 2, "limit": 5, "percentage": 40 },
"visitors": { "used": 18234, "limit": 100000, "percentage": 18 },
"tier": { "name": "Pro 100K", "price": 35, "features": ["..."] },
"period": {
"start": "2026-04-01T00:00:00.000Z",
"end": "2026-04-30T00:00:00.000Z"
}
}
}
Reading which warnings have already fired
GET /api/billing/usage-warnings?teamId=<team-uuid>
Authorization: Bearer ZV_xxx
{
"success": true,
"data": {
"billing_period_start": "2026-04-01",
"warnings_shown": {
"events": [80],
"apiEvents": [],
"proxyEvents": []
}
}
}
warnings_shown is keyed by resource. The array contains the
percentage thresholds (80 and/or 95) that have already fired this
billing period.
Acknowledging a warning programmatically
The dashboard does this automatically when a toast is shown. If you're building a custom UI you can POST it yourself:
POST /api/billing/usage-warning-acknowledge
Authorization: Bearer ZV_xxx
Content-Type: application/json
{ "teamId": "<uuid>", "resource": "events", "threshold": 80 }
The endpoint is idempotent — if the (team, period, resource,
threshold) combination has already been recorded, you still get a
200 OK.
What happens at 100%
| Plan | Behavior at 100% |
|---|---|
| Free | Tracking stops; visitors log a 429. Upgrade to keep tracking. |
| Pro + Scale | PAYG kicks in (see PAYG pricing). Tracking continues; overage billed at end of month. |
| Enterprise | Soft cap; account manager notifies you ahead of time. |