Skip to content
VestiarionDocs

API reference

Get insights

GET/api/v1/insights

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.

Send a workspace API key as Authorization: Bearer ….

Parameters

No parameters.

Try it

The key is kept in memory only, for this page.

Code samples

cURL
curl "https://www.vestiarion.xyz/api/v1/insights" \
  -H "Authorization: Bearer $VESTIARION_API_KEY"

Response

Example
200 · application/json
{
  "data": {
    "transfers": [
      {
        "id": "359e82e1-958d-4327-9174-e0b885eebe8f",
        "targetType": "invoice",
        "targetId": "1d7e1714-3f84-493e-a3ea-c984a2881100",
        "txRef": "0x36ea71ac97cad3743f227860785207e6f25148251735569be0f6b16c73130343",
        "feeUsd": 0.003248,
        "feeSource": "chain_reported",
        "settledInMs": 5000,
        "chain": "ARC-TESTNET",
        "providerMode": "live",
        "executedAt": "2026-09-24T11:55:24.131+00:00",
        "status": "confirmed"
      }
    ],
    "runs": [
      {
        "id": "8cbcf6ca-2d58-43c9-9237-3000851e7046",
        "startedAt": "2026-09-24T11:53:06.672+00:00",
        "finishedAt": "2026-09-24T11:53:16.101+00:00",
        "durationMs": 9429,
        "decisionCount": 1,
        "paidCount": 0,
        "heldCount": 0,
        "flaggedCount": 0,
        "awaitingInfoCount": 0,
        "releasedCount": 0,
        "modelDecisionCount": 1,
        "heuristicDecisionCount": 0,
        "guardrailOverrideCount": 0,
        "referenceDisagreementCount": null,
        "status": "completed",
        "failedStage": null,
        "errorMessage": null,
        "chainMode": "live",
        "screeningMode": "simulate"
      },
      {
        "id": "bd76f653-4352-42b3-aec5-5ddbbe01c882",
        "startedAt": "2026-09-24T15:22:50.871+00:00",
        "finishedAt": "2026-09-24T15:23:00.617+00:00",
        "durationMs": 9746,
        "decisionCount": 0,
        "paidCount": 0,
        "heldCount": 0,
        "flaggedCount": 0,
        "awaitingInfoCount": 0,
        "releasedCount": 0,
        "modelDecisionCount": 0,
        "heuristicDecisionCount": 0,
        "guardrailOverrideCount": 0,
        "referenceDisagreementCount": 0,
        "status": "partial",
        "failedStage": "ap",
        "errorMessage": "ap: AGENT_LLM_PROVIDER=openai but OPENAI_API_KEY is not set; treasury: AGENT_LLM_PROVIDER=openai but OPENAI_API_KEY is not set",
        "chainMode": "live",
        "screeningMode": "simulate"
      }
    ],
    "snapshots": [
      {
        "id": "352d94e4-a945-420f-a933-34b06b46412b",
        "cycleRunId": "8cbcf6ca-2d58-43c9-9237-3000851e7046",
        "capturedAt": "2026-09-24T11:53:16.101+00:00",
        "totalLiquid": 27.58,
        "openPayables": 10.695,
        "openReceivables": 9,
        "obligationsDue7d": 12.195,
        "obligationsDue14d": 12.195,
        "reservePosition": 0,
        "chainMode": "live"
      }
    ],
    "treasuryMoves": [],
    "screenings": [
      {
        "id": "54d6f2a8-d939-45ef-a41e-61f88fd362ae",
        "counterpartyId": "dc5e5751-3287-46c9-8bd1-83a42ab02699",
        "counterpartyName": "Anthropic API Services",
        "riskLevel": "clear",
        "previousRiskLevel": null,
        "tierChanged": false,
        "mode": "simulate",
        "source": "simulated-sanctions-list",
        "status": "complete",
        "createdAt": "2026-09-24T11:55:11.147351+00:00"
      }
    ]
  }
}
Fields
  • dataobject

    The telemetry behind the Insights charts: the most recent transfers, cycle runs, snapshots, treasury moves and screenings, each oldest first.

    5 fields in data
    • transfersarray of object
      11 fields in transfers
      • idstring
      • targetTypestring

        One ofinvoicemilestone

      • targetIdstring
      • txRefstring
      • feeUsdnumber
      • feeSourcestring

        One ofchain_reportedprovider_estimatesimulated_profile

      • settledInMsnumber · nullable
      • chainstring
      • providerModestring

        One oflivesimulate

      • executedAtstring
      • statusstring
    • runsarray of object
      19 fields in runs
      • idstring
      • startedAtstring
      • finishedAtstring
      • durationMsnumber
      • decisionCountnumber
      • paidCountnumber
      • heldCountnumber
      • flaggedCountnumber
      • awaitingInfoCountnumber
      • releasedCountnumber
      • modelDecisionCountnumber
      • heuristicDecisionCountnumber
      • guardrailOverrideCountnumber
      • referenceDisagreementCountnumber · nullable

        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.

      • statusstring

        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.

        One ofrunningcompletedpartialfailed

      • failedStagestring · nullable
      • errorMessagestring · nullable
      • chainModestring

        One oflivesimulate

      • screeningModestring

        One oflivesimulate

    • snapshotsarray of object
      10 fields in snapshots
      • idstring
      • cycleRunIdstring
      • capturedAtstring
      • totalLiquidnumber
      • openPayablesnumber
      • openReceivablesnumber
      • obligationsDue7dnumber
      • obligationsDue14dnumber
      • reservePositionnumber
      • chainModestring

        One oflivesimulate

    • treasuryMovesarray of object
      4 fields in treasuryMoves
      • idstring
      • actionstring

        One ofsweep_to_usycredeem_from_usycrebalance

      • amountnumber
      • createdAtstring
    • screeningsarray of object
      10 fields in screenings
      • idstring
      • counterpartyIdstring
      • counterpartyNamestring
      • riskLevelstring
      • previousRiskLevelstring · nullable
      • tierChangedboolean
      • modestring

        One oflivesimulate

      • sourcestring
      • statusstring

        One ofcompletefailed

      • createdAtstring

Errors

StatusCodeWhen
401unauthorizedNo key, or a malformed, unknown or revoked one: "A valid API key is required."
403forbiddenThe key's scopes do not cover this route: "This key cannot do that." Or, on a write, the person who created the key can no longer add records: "This key's issuer can no longer add records in this workspace."
500internalAn unexpected server error. Implementation details are not exposed.