---
title: "Usage analytics"
description: "The Activity page of the pirouter console totals this workspace's tokens, spend, requests and duration by time, model and API key. This page covers choosing a time range, reading the four cards and the rankings, filtering, and how fresh the numbers are."
canonical: "https://pirouter.ai/docs/usage"
last-updated: "2026-10-17"
lang: "en"
source: "content/docs/en/(start)/usage.mdx"
---

# Usage analytics

The Activity page of the pirouter console totals this workspace's tokens, spend, requests and duration by time, model and API key. This page covers choosing a time range, reading the four cards and the rankings, filtering, and how fresh the numbers are.

On the **Activity** page of the console you can see this workspace's tokens, spend, requests and duration, by time, model and API key.

## Open the Activity page

Click **Activity** in the console sidebar. The page shows what this workspace used and spent. All times are UTC.

Every member of the workspace can view the Activity page; there are no finer-grained roles. Each workspace sees only its own data.

- [Open the console](https://app.pirouter.ai): app.pirouter.ai

![The Activity page for the last 7 days: token heatmap, the Tokens, Spend, Requests and Duration cards, and the trend stacked by model](/docs/shots/usage-overview.en.webp)

## Choose a time range

Pick a preset under **Time range** in the toolbar: **Today**, **24h**, **7d**, **30d** or **90d**. The default is **Today**. You can also pick a **Custom range** of up to 90 days that ends no later than today (UTC).

| Time range                                 | Chart buckets                                   |
| ------------------------------------------ | ----------------------------------------------- |
| **Today**                                  | UTC hours, from 00:00 today to the current hour |
| **24h**                                    | UTC hours, the last 24 tops of the hour         |
| **7d**, **30d**, **90d**, **Custom range** | UTC days                                        |

On an hourly chart the last bar is the current hour. It is still filling and is drawn hatched.

### How fresh the numbers are

**Data through HH:MM UTC** at the top right of the page is the moment the data actually covers.

Today's numbers come from hourly totals, which are rebuilt every 5 minutes, so a request usually shows up on the Activity page within a few minutes. **Data through** tells you exactly how far the data goes. Before the first hourly sync of the day, the page says "Today's usage is still syncing". That does not mean there were no requests.

While a period is not fully tallied yet, the page says "Your activity is still being tallied" and shows no figures at all, rather than a partial sum.

## Read the four cards

| Card         | Headline figure                                                       | Below it                                                                                                |
| ------------ | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| **Tokens**   | Input plus output tokens; cached input is counted once                | **In**, **Out**, **Cached**, and the **Hit** rate: cached input over all input                          |
| **Spend**    | What requests in the range cost, at the price in effect when each ran | Average spend **Per 1M tokens** and **Per request**                                                     |
| **Requests** | The number of requests                                                | **Succeeded** and **Failed**, and the failed share. Failed includes every request that did not complete |
| **Duration** | Time to first token plus generation time                              | **Avg first token** and **Avg generation**. The averages include failed requests                        |

Spend is in US dollars, shown with `$`. Amounts of $0.01 or more have two decimals; smaller amounts have 4 or 6.

**Requests** counts attempts. When a request fails before the first byte and the platform moves it to another deployment or model, each attempt is counted: the attempt that was taken over counts as one failure, at a cost of 0. So when fallbacks happen, the failed share is higher than a per-request failure rate would be. See [Model fallbacks](https://pirouter.ai/docs/fallbacks.md#billing).

Requests the gateway refused before forwarding them (an invalid key or an insufficient balance, for example) are not counted.

## Read the trend and the rankings

- The **Trend** chart is stacked by model: your top 5 models each get a layer and the rest are grouped as **Other**. You can switch it between Tokens and Cost.
- The **Models** ranking lists the models this workspace called in the range, ranked by Tokens or Cost. It shows 10 rows by default and expands to at most 20.

* The **Tools** ranking lists the apps and clients that sent your requests, up to 20 rows. With **24h** selected, tools cover whole UTC days, and the page states which ones.

- Apps and clients that are recognized appear by name (for example OpenAI Python SDK or curl). The rest are grouped as **Unrecognized apps**, **Other clients** or **Direct API**.

![Models and Tools rankings sorted by tokens, with Direct API as the last Tools row](/docs/shots/usage-rankings.en.webp)

## Filter by model and API key

**Model** in the toolbar takes several models, up to 50; **API key** takes one key at a time. The filters apply to the heatmap, the four cards, the trend and both rankings.

The time range and the filters live in the address bar (`range`, or `from` and `to`, plus `model` and `key`). Send the link to a teammate and they see the same view.

## Jump from a day to its logs

Each cell of the **Token activity** heatmap is the number of requests on one UTC day, over the last 12 months. Click a day to open that day's [request logs](https://pirouter.ai/docs/logs.md), with the current model and key filters carried over.

## Not available today

- **Export.** The Activity page has no export or CSV download.
- **An API for usage.** The public API has inference and model catalog endpoints only; there is no endpoint for usage or logs.

* **Finer hourly views.** Only **Today** and **24h** are charted by hour; a custom range is picked in whole days.

## Next steps

- [Request logs](https://pirouter.ai/docs/logs.md): Look up requests one by one and find a call by its trace ID.
- [Model fallbacks](https://pirouter.ai/docs/fallbacks.md): Switch to another model when the one you asked for is unavailable.
