> ## Documentation Index
> Fetch the complete documentation index at: https://docs.altrum.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Request logs

> See every request and tool call through the AI Gateway, and decide whether Altrum keeps their content.

## What Altrum records

For every request and every MCP tool call:

* when it happened, the key, the AI system and the person behind a personal key,
* the client that sent it, read from what the tool calls itself (its `User-Agent`): for example **Claude Code**, **Cursor**, **Codex CLI** or **API**. **Other** is a client Altrum does not recognise, and **Unknown** a request that named none,
* the provider, the model, and any fallback used,
* the tokens and the cost,
* how long it took,
* the outcome, one of the words in the table below,
* which guardrails checked it and what they found: the guardrail, the direction, the action, and the kind of thing found. Never the matched text.

**AI Gateway**, **Request log** shows your whole organization's traffic, newest first, on two tabs: **Requests** and **Tool calls**. Each AI system's **AI Gateway** tab shows its own requests under **Requests**. Filter **Requests** by date range, project, AI system, key, model, outcome, client, person and guardrail: **Guardrail** shows only the requests that guardrail fired on. Filter **Tool calls** by date range, project, AI system, tool, MCP server, person and guardrail. **Project** appears once your organization has a [project](/projects.md). A row in a [Reporting](/reports.md) ranking opens this page with its filter already set. The **Client** column shows the client; hover it to see the full `User-Agent`.

Select **Details** on a request to see its provider, model, client and `User-Agent`, tokens, cost, latency, any fallback, and whether the prompt and the reply passed the guardrails. Under **Guardrails** it lists each guardrail that fired, with what it checked (**Prompt** or **Reply**), what it did (**Blocked**, **Masked** or **Logged only**) and, when the guardrail says, what it found, such as **Email address**. Where content was kept, owners, admins and Governance Leads select **View content** to read the prompt and the reply on **Prompt** and **Reply** tabs, in the same panel. **Add to incident**, at the foot of the panel, links the request to an open [incident](/incidents.md) or opens a new one with it.

## Health

**AI Gateway**, **Overview** shows, under the connection details, whether the AI Gateway is answering well over the date range. It opens on **Today**. What the traffic cost is in [Reporting](/reports.md).

* Figures: **Requests**, **Success rate**, **Median latency**, **95th percentile latency**, **Error rate** and **Cache hit rate**, each with its change against the same length of time just before.
* **Requests** charts requests by result (succeeded, blocked, failed), and **Latency** the median and 95th percentile.
* **Providers** lists each provider with its requests, error rate, failed requests and average latency. The error rate is marked green up to 2%, amber above 2% and red above 10%.

A request counts as succeeded when it was answered, from the model or the cache, including with text masked. It counts as blocked when Altrum refused it on purpose: a guardrail, a budget, a rate limit, or what the key may use. Everything else failed. Times are grouped by hour or day in UTC.

## Date range, filters and sharing

* Pick a date range from **Today**, **7 days**, **30 days**, **This month**, **Last month** and **This quarter**, or pick a range of your own on the calendar: the first day, then the last, then **Apply**. Ranges are whole days that start at midnight in your browser's time zone, up to 92 days. Pages open on **30 days**.
* The range and the filters are part of the page's address, so a link you share opens the same view.
* On a phone the filters are behind **Filters**, which shows how many are set.
* **Export CSV** saves the requests loaded in the log. A cell that starts with `=`, `+`, `-` or `@` is saved with an apostrophe in front, so a spreadsheet does not run it as a formula. Content is never exported.
* **Print** prints the page in black on white, without the navigation.
* Each health figure shows its change against the same length of time just before: green when it is better, red when it is worse, grey for figures with no better direction, such as requests.

## Outcomes

| Outcome | Shown as | What happened |
| - | - | - |
| `ok` | Succeeded | The request was answered. |
| `cache_hit` | From the cache | The answer came from the cache. |
| `masked` | Masked | A guardrail masked part of the request or the answer, and the rest went through. |
| `blocked_input` | Blocked: prompt | A guardrail blocked the request. It was not sent to the model. |
| `blocked_output` | Blocked: reply | A guardrail blocked the answer. It was not returned. |
| `guardrail_check_failed` | Guardrail check failed | A guardrail check could not be completed, so the request or the answer was held back. |
| `budget_exceeded` | Over budget | A budget was used up. |
| `rate_limited` | Rate limited | A rate limit was reached. |
| `model_blocked` | Model not allowed | The key may not use that model, provider or tool, or your organization serves [approved models only](/model-catalog.md#serve-approved-models-only) and the model is not approved. |
| `key_refused` | Key refused | The key may not make this request, or its organization or AI system is switched off. |
| `provider_error` | Provider error | The model provider returned an error. |
| `provider_timeout` | Provider timed out | The model provider took too long. |
| `client_aborted` | Caller stopped | The caller stopped waiting. |
| `invalid_request` | Invalid request | The request could not be understood or named a model that does not exist. |
| `gateway_error` | AI Gateway error | The AI Gateway failed to handle the request. |

## Content is off by default

Altrum does not keep what was sent or answered unless your organization chooses to.

* An owner or admin switches it on in **AI Gateway**, **Settings**, **Content logging**: **Keep prompts and replies**, for the organization's keys. Each AI system can choose differently on its **AI Gateway** tab under **Content logging**: **Follow the organization**, **On** or **Off**.
* Kept content is the content after masking: text a guardrail masked is never stored.
* The request record itself never holds the content. It stays apart, under your organization only, and a record says whether content was kept for it.
* Content is kept for 30 days by default. Set **Keep for (days)** to any number from 1 to 365. When the time is up the content is deleted and the record says none is kept.
* Only owners, admins and Governance Leads can read stored content, inside Altrum, and every read is written to your organization's [audit trail](/audit-trail.md).

## How long records are kept

Request records without content are kept for 13 months, so you can compare a month with the same month a year earlier. Tool call records and guardrail findings are kept for the same time.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.