/admin/api-usageAPI traffic over the last days (UTC): totals, the busiest keys, collectors and operations, refusals (429s) and errors, callers blocked right now, and the limits in force (tiers, quotas, block settings). Signed-out callers are counted together; no network addresses are kept.
collector.getAdminApiUsage()admin:ops:readX-Request-IddaysintegerHow many days back (1–90).
1–90 · default 7
200OKThe summary.
API traffic for Admin → API usage: totals, the busiest keys, collectors and operations, blocks, and the limits in force.
sincestring (date)requiredThe first day counted (UTC).
daysintegerrequiredtotalsobjectrequiredrequestsintegerrequiredlimitedintegerrequirederrors4xxintegerrequirederrors5xxintegerrequireddailyarray of objectrequireddaystring (date)requiredrequestsintegerrequiredlimitedintegerrequiredRequests refused by a rate limit (429).
errorsintegerrequiredAnswers with a 4xx (other than our 429s) or a 5xx.
keysarray of objectrequiredThe busiest API keys (top 25).
subjectstringrequiredkeyIdstring (uuid)requirednamestring or nullrequiredprefixstring or nullrequiredkindenum or nullrequiredpersonalstoreadminownerobject or nullrequiredidstring (uuid)requiredlabelstring or nullrequiredrequestsintegerrequiredlimitedintegerrequirederrors4xxintegerrequirederrors5xxintegerrequiredlastDaystring (date)requiredusersarray of objectrequiredThe busiest signed-in collectors in our apps (top 25).
subjectstringrequireduserIdstring (uuid)requiredlabelstring or nullrequiredrequestsintegerrequiredlimitedintegerrequirederrors4xxintegerrequirederrors5xxintegerrequiredlastDaystring (date)requiredanonymousobjectrequiredSigned-out callers, counted together (no network addresses are kept).
requestsintegerrequiredlimitedintegerrequiredroutesarray of objectrequiredThe busiest operations (top 25).
routestringrequiredrequestsintegerrequiredlimitedintegerrequirederrors4xxintegerrequirederrors5xxintegerrequiredblocksarray of objectrequiredCallers blocked right now.
subjectstringrequiredkey:<id>, user:<id> or ip:<address> (a network guessing keys).
labelstring or nullrequiredblockedUntilstring (date-time)requiredlevelintegerrequiredHow many times in a row: each block doubles.
reasonstringrequiredblockedAtstring (date-time)requiredtiersarray of objectrequiredtierenumrequiredanonymousappfreepaidstoreadminperMinuteintegerrequiredperDayinteger or nullrequireddescriptionstringrequiredquotasarray of objectrequiredbucketstringrequiredperDayintegerrequireddescriptionstringrequiredsettingsobjectrequiredpersonalKeysRequirePaidbooleanrequiredblockThresholdintegerrequiredblockWindowMinutesintegerrequiredblockMinutesintegerrequiredblockMaxMinutesintegerrequiredinvalid_request: The query or body doesn’t match the schema (see errors[]).
not_found: Not an admin (moderator): the same 404 as a missing route.
rate_limitedtemporarily_blocked
rate_limited: Over the caller’s limit: the per-minute burst or the per-day quota (RateLimit headers; wait Retry-After seconds).
temporarily_blocked: Too many refused requests in a row: blocked for a while (Retry-After says how long).
internal: Something went wrong on our side (quote the requestId).
not_available: Usage isn’t recorded on this server yet.
/admin/api-usage/blocks/liftEnds a temporary block early (a key, collector or network that kept going after being refused) and clears its count of refusals. Audited.
collector.liftAdminApiBlock()admin:ops:writeX-Request-Idsubjectstringrequired200OKWhether a block was lifted.
liftedbooleanrequiredfalse when it wasn’t blocked (any more).
invalid_request: The query or body doesn’t match the schema (see errors[]).
invalid_json: The body isn’t JSON.
not_found: Not an admin (moderator): the same 404 as a missing route.
payload_too_large: The body is over 1,048,576 bytes, this operation’s limit.
rate_limitedtemporarily_blocked
rate_limited: Over the caller’s limit: the per-minute burst or the per-day quota (RateLimit headers; wait Retry-After seconds).
temporarily_blocked: Too many refused requests in a row: blocked for a while (Retry-After says how long).
internal: Something went wrong on our side (quote the requestId).
not_available: Usage isn’t recorded on this server yet.