# List evidence

URL: https://docs.hanzo.ai/docs/openapi/trust/get-trust-evidence

> Reads the audit rows that stand behind one control, over a window.

`GET /v1/trust/evidence`

> [Trust →](https://docs.hanzo.ai/docs/openapi/trust) · [All API references →](https://docs.hanzo.ai/docs/openapi) · [Get started →](https://docs.hanzo.ai/docs/guides)

|               |                                          |
| ------------- | ---------------------------------------- |
| **Address**   | `https://api.hanzo.ai/v1/trust/evidence` |
| **Method**    | `GET`                                    |
| **Operation** | `get_trust_evidence`                     |
| **Auth**      | `Authorization: Bearer $HANZO_API_KEY`   |

Reads the audit rows that stand behind one control, over a window.

The inventory decides what evidences what: a control names the audit actions
that are its trail, and this resolves the control id to those actions and
reads them. So evidence cannot drift from the inventory, and it is scoped to
your own organization — the query carries no organization field for a caller
to fill in.

A control that nothing in the trail evidences says so plainly rather than
answering an empty page, because an empty page reads like a clean quarter. A
deployment with no audit store answers 501 and says the trail was not read,
for the same reason.

## Request

4 fields.

| Field     | In    | Type   | Required | Description                                                                                              |
| --------- | ----- | ------ | -------- | -------------------------------------------------------------------------------------------------------- |
| `control` | query | string | —        | Control is the control id whose trail to read.                                                           |
| `from`    | query | string | —        | From is the inclusive lower bound, an RFC 3339 date or instant ("2026-01-01" or "2026-01-01T00:00:00Z"). |
| `to`      | query | string | —        | To is the upper bound, same form and same tolerance.                                                     |
| `limit`   | query | string | —        | Limit caps the rows returned, 1..1000, default 100.                                                      |

## Response

| Status    | Body            | Meaning |
| --------- | --------------- | ------- |
| `200`     |                 | ok      |
| `default` | problem-details | refused |

`200` body — 1 field.

| Field    | In   | Type | Always | Description |
| -------- | ---- | ---- | ------ | ----------- |
| `(body)` | body | any  | yes    |             |

Failure carries the platform error shape — see [Errors](https://docs.hanzo.ai/docs/errors).

## Examples

**CLI**

```bash
hanzo trust evidence
```

**SDK**

**.ts**

```ts
import { Configuration, TrustApi } from 'hanzoai';

const api = new TrustApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getTrustEvidence();
```

**.py**

```python
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import TrustApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = TrustApi(client).get_trust_evidence()
```

**.go**

```go
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.TrustAPI.GetTrustEvidence(context.Background()).Execute()
if err != nil {
	return err
}
```

**.rs**

```rust
use hanzo_client::apis::{configuration::Configuration, trust_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = trust_api::get_trust_evidence(&cfg, Default::default()).await?;
```

**.java**

```java
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.TrustApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new TrustApi(client).getTrustEvidence();
```

**HTTP**

```bash
curl https://api.hanzo.ai/v1/trust/evidence \
  -H "Authorization: Bearer $HANZO_API_KEY"
```

**MCP**

Tool `trust`, op `get_trust_evidence` — POST the JSON-RPC envelope to `https://api.hanzo.ai/v1/mcp`.

```bash
curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "trust",
         "arguments": {
           "op": "get_trust_evidence",
           "input": {}
         }
       }
     }'
```

---

[Trust API](https://docs.hanzo.ai/docs/openapi/trust) · [All Hanzo APIs](https://docs.hanzo.ai/docs/openapi) · [Interactive reference](https://docs.hanzo.ai/docs/openapi/reference)
