---
title: "Get AI-visibility trust metrics for an application"
method: GET
path: "/v1/admin/metrics/trust"
tags: ["Metrics"]
---

# Get AI-visibility trust metrics for an application

`GET /v1/admin/metrics/trust`

## Request

- Base URL: `https://api.prod.keyban.io`
- URL: `https://api.prod.keyban.io/v1/admin/metrics/trust`
- Auth: `X-Api-Key` (a scheme the document does not define)

Retrieve aggregated AI-visibility audit results for the tracked products of an application: current per-axis scores, movement since each product's baseline audit, and a weekly history. Backed by the persisted weekly audit snapshots — no live scraping happens on this call.

## Query parameters

- `startDate` string, date
- `endDate` string, date
- `applicationId` string, uuid

## Response `200`

Trust metrics retrieved successfully

- TrustMetricsDto
  - `applicationId` string, uuid, required: Application the metrics are scoped to. Trust audits track one application's product catalogue, so this is never aggregated across applications.
  - `sampleSize` integer, required: Number of tracked products (audit subjects) currently `active` for this application — recruited, baseline captured, and re-audited weekly. This is the population `current`, `deltaSinceBaseline` and `series` are computed over. Subjects still awaiting their baseline, or archived, are excluded.
  - `quotaUsed` integer, required: Non-archived audit subjects across the whole organization (all applications, including `baseline_pending`) — the same tally the recruitment quota is checked against. Wider than `sampleSize`: it is organization-scoped, not application-scoped, and it counts subjects not yet active.
  - `quotaLimit` integer, required: Maximum non-archived audit subjects the organization may hold across all its applications before recruitment stops (`OrganizationQuotas.trustAuditLimit`, defaulting to 10 when the organization has no explicit override).
  - `current` object, required: Per-axis mean, across every active subject, of that subject's most recent snapshot within the queried date range. An axis is null when no active subject has a snapshot inside the range — not the same as a score of 0.
  - `deltaSinceBaseline` integer, nullable, required: Mean, over active subjects that carry both a baseline snapshot and a snapshot within the queried range, of (latest geo score − baseline geo score). Subjects recruited without a captured baseline yet are excluded from the average, not treated as a zero movement. Null when no subject qualifies.
  - `series` object[], required: One entry per ISO week that had at least one audit in the queried range, oldest first. Weeks with no audit are omitted entirely — never zero-filled — since the audit cadence is weekly per subject and subjects are recruited on a rolling basis.
    - `weekStart` string, date, required: Monday (UTC, ISO week start) of the calendar week the snapshots below were audited in.
    - `axes` object, required: Per-axis mean of every snapshot audited during this week, across all active subjects that were audited that week.

## Other responses

- `400`: applicationId is missing
- `401`: Unauthorized
- `403`: Metrics access denied

---

[API](https://skmtc.dev/keyban/apis/keyban-rest-apis.md) · [All operations](https://skmtc.dev/keyban/apis/keyban-rest-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/keyban/apis/keyban-rest-apis/revisions/0bb79a1da961?raw)
