Usage and reports
Limitry counts every check per limit, per subject, per hour. Reports in the app and the API are at most about a minute behind.
In the app
Section titled “In the app”The Usage page shows, for the limit you pick:
- Last 30 days: units used per day (UTC), across all subjects.
- Right now: the subjects in the current window, most used first, with what each has used and has left. Anyone who was turned away shows as Over, with how many checks were denied.
Through the API
Section titled “Through the API”With a key or token that has limits:read:
# A limit's use over time, by day (the default) or by hourcurl "https://api.limitry.com/v1/usage?limitId=$LIMIT_ID&granularity=day" \ -H "Authorization: Bearer $LIMITRY_API_KEY"
# Who is using it in the current windowcurl "https://api.limitry.com/v1/usage/subjects?limitId=$LIMIT_ID" \ -H "Authorization: Bearer $LIMITRY_API_KEY"/v1/usage returns every bucket in the range, zeros included, each with
used, allowed and denied. Add subjectKind and subjectId for one
subject, and from and to (ISO times) for a different range. The
default range is the last 30 days. used is net: Limitry gives back the unused part of a reservation, and all of a released one.
For a balance (window total), what’s left includes the credits you’ve
added.
How far back you can look depends on your plan: 7 days on Free, 90 days on Pro, 13 months on Growth.
Webhook: limit.exceeded
Section titled “Webhook: limit.exceeded”The first time a limit turns a subject away in a window, your webhook
endpoints receive limit.exceeded:
{ "type": "limit.exceeded", "data": { "limit": "lim_…", "subject": { "kind": "user", "id": "u_42" }, "windowStart": "2026-10-05T00:00:00.000Z", "resetsAt": "2026-10-06T00:00:00.000Z" }}It’s sent once per subject, limit and window, not on every denied check.
resetsAt is null for a balance. A budget is a limit too, so an agent
running out of budget sends this event as well. Add an endpoint under
Settings → Webhooks.