# List usage events

> Returns the raw usage events the caller can access, most recent first, narrowed by any combination of the same filters the aggregate takes — agent, generation, trace, actor, session, AI provider, orchestration run, orchestration, trigger, action, meter type, model or `source` — so a rollup and the events behind it are addressed the same way. Each event is the per-generation token usage as reported by the provider, for audit and reconciliation.

<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"List usage events"}
>
</Heading>

<MethodEndpoint
  method={"get"}
  path={"/api/v1/usage/events"}
  context={"endpoint"}
>
  
</MethodEndpoint>

Returns the raw usage events the caller can access, most recent first, narrowed by any combination of the same filters the aggregate takes — agent, generation, trace, actor, session, AI provider, orchestration run, orchestration, trigger, action, meter type, model or `source` — so a rollup and the events behind it are addressed the same way. Each event is the per-generation token usage as reported by the provider, for audit and reconciliation.

An id naming nothing in scope yields an empty page rather than dropping the filter, so a mistyped narrowing can never widen the list past what was asked for.

<Heading
  id={"request"}
  as={"h2"}
  className={"openapi-tabs__heading"}
>
  <Translate id="theme.openapi.request.title">Request</Translate>
</Heading>

<ParamsDetails
  {...require("./list-usage-events.ParamsDetails.json")}
>
  
</ParamsDetails>

<RequestSchema
  {...require("./list-usage-events.RequestSchema.json")}
>
  
</RequestSchema>

<StatusCodes
  {...require("./list-usage-events.StatusCodes.json")}
>
  
</StatusCodes>
