---
title: "Get insights"
method: GET
path: "/api/v1/insights"
tags: ["Insights"]
---

# Get insights

`GET /api/v1/insights`

## Request

- Base URL: `https://www.vestiarion.xyz`
- URL: `https://www.vestiarion.xyz/api/v1/insights`
- Auth: HTTP bearer

The telemetry behind the Insights page: recent transfers, cycle runs, cycle snapshots, treasury moves and screenings. `referenceDisagreementCount: null` means the cycle predates the comparison, and `status: "partial"` is reported as it is, not rewritten as completed or failed.

## Response `200`

OK

- GetInsightsResponse
  - `data` object, required: The telemetry behind the Insights charts: the most recent transfers, cycle runs, snapshots, treasury moves and screenings, each oldest first.
    - `transfers` object[], required
      - `id` string, required
      - `targetType` 'invoice' | 'milestone', required
      - `targetId` string, required
      - `txRef` string, required
      - `feeUsd` number, required
      - `feeSource` 'chain_reported' | 'provider_estimate' | 'simulated_profile', required
      - `settledInMs` number, nullable, required
      - `chain` string, required
      - `providerMode` 'live' | 'simulate', required
      - `executedAt` string, required
      - `status` string, required
    - `runs` object[], required
      - `id` string, required
      - `startedAt` string, required
      - `finishedAt` string, required
      - `durationMs` number, required
      - `decisionCount` number, required
      - `paidCount` number, required
      - `heldCount` number, required
      - `flaggedCount` number, required
      - `awaitingInfoCount` number, required
      - `releasedCount` number, required
      - `modelDecisionCount` number, required
      - `heuristicDecisionCount` number, required
      - `guardrailOverrideCount` number, required
      - `referenceDisagreementCount` number, nullable, required: Model verdicts that chose a different action from the rule-based policy. Null for cycles run before the comparison existed, never zero, which would claim perfect agreement over decisions never compared.
      - `status` 'running' | 'completed' | 'partial' | 'failed', required: A cycle that failed partway is not a quiet cycle, and must not read as one. Its counts are real but partial: they cover the stages that ran before it stopped, and nothing after.
      - `failedStage` string, nullable, required
      - `errorMessage` string, nullable, required
      - `chainMode` 'live' | 'simulate', required
      - `screeningMode` 'live' | 'simulate', required
    - `snapshots` object[], required
      - `id` string, required
      - `cycleRunId` string, required
      - `capturedAt` string, required
      - `totalLiquid` number, required
      - `openPayables` number, required
      - `openReceivables` number, required
      - `obligationsDue7d` number, required
      - `obligationsDue14d` number, required
      - `reservePosition` number, required
      - `chainMode` 'live' | 'simulate', required
    - `treasuryMoves` object[], required
      - `id` string, required
      - `action` 'sweep_to_usyc' | 'redeem_from_usyc' | 'rebalance', required
      - `amount` number, required
      - `createdAt` string, required
    - `screenings` object[], required
      - `id` string, required
      - `counterpartyId` string, required
      - `counterpartyName` string, required
      - `riskLevel` string, required
      - `previousRiskLevel` string, nullable, required
      - `tierChanged` boolean, required
      - `mode` 'live' | 'simulate', required
      - `source` string, required
      - `status` 'complete' | 'failed', required
      - `createdAt` string, required

## Other responses

- `401`: unauthorized
- `403`: forbidden
- `500`: internal

---

[API](https://skmtc.dev/vestiarion/apis/vestiarion-api.md) · [All operations](https://skmtc.dev/vestiarion/apis/vestiarion-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vestiarion/apis/vestiarion-api/revisions/fd2f589dac9b?raw)
