Returns the SAME report GET /most-used-keys serves on this plane, rendered as an
RFC 4180 CSV attachment, for the same tenantIds filter and the same limit the JSON
endpoint accepts.
One computation, two representations. The figures are produced once, by the same
service call the JSON endpoint makes, and then written.
What the file states about itself. A #-led preamble carries the report name, the
scope — ALL tenants or the explicit filtered set, named — the population (the top
limit keys of the whole inventory in scope, ranked by usageCount descending, plus a
note that totalUsageCount covers the WHOLE inventory and not only the rows listed),
the completeness (BOUNDED: the top N the request asked for, a complete answer to
THAT question and not a page of a longer one), and then EVERY member the JSON response
publishes under its own JSON name — including usageWindow and usageWindowKey, so the
total never appears without the span it is measured over, the two served band
boundaries, and generatedAt, which is the report's own instant.
The header row IS KeyUsageInfo's member list in declaration order. An unlimited key
renders an EMPTY usagePercentage cell, never a zero — a percentage of an absent limit
does not exist. The file terminates with # EXPORT COMPLETE; its ABSENCE means the
stream broke before the end.
Why produces names application/json as well as text/csv: the success
representation is CSV, but every refusal is an RFC 9457 application/problem+json body,
which a text/csv-only mapping would make unselectable.
Authorization: the report's own scope — platform.analytics.read.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||