Skip to content

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.

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.

With a key or token that has limits:read:

Terminal window
# A limit's use over time, by day (the default) or by hour
curl "https://api.limitry.com/v1/usage?limitId=$LIMIT_ID&granularity=day" \
-H "Authorization: Bearer $LIMITRY_API_KEY"
# Who is using it in the current window
curl "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.

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.