---
title: "Record Insight Route"
method: POST
path: "/api/v1/nova/insights"
tags: ["nova"]
---

# Record Insight Route

`POST /api/v1/nova/insights`

## Request

- Base URL: `https://cp.xenovia.io` (the document declares no server; this is the origin it was published from)
- URL: `https://cp.xenovia.io/api/v1/nova/insights`
- Auth: none declared

Record Nova's explanation: update the open finding with the same
fingerprint (kind, subject type, subject id), keeping its area, evidence
and trigger; only when none is open (Nova found something itself) a new
one is created, with the area its kind belongs to.

## Headers

- `Authorization` string, nullable
- `X-Request-ID` string, nullable

## Request body

- InsightRecord
  - `kind` string, required
  - `severity` 'info' | 'warning' | 'critical', required
  - `subject` Subject
    - `type` string, required
    - `id` string, required
    - `name` string, nullable
  - `title` string, required
  - `summary` string, required
  - `detail` InsightDetail
    - `ui` string, nullable
    - `why_now` string, nullable
  - `fix` union
    - FixProposal
      - `type` 'proposal', required
      - `proposal_id` string, uuid, required
    - FixForm
      - `type` 'form', required
      - `action` string, required
      - `title` string, required
      - `reason` string
      - `params` object

## Response `200`

Successful Response

- InsightRead
  - `id` string, uuid, required
  - `kind` string, required
  - `area` string, nullable, required
  - `severity` string, required
  - `subject` Subject, required
    - `type` string, required
    - `id` string, required
    - `name` string, nullable
  - `subject_type` string, nullable, required
  - `subject_id` string, nullable, required
  - `subject_name` string, nullable, required
  - `title` string, required
  - `summary` string, required
  - `fix` object, nullable, required
  - `fingerprint` string, required
  - `status` string, required
  - `trigger` string, required
  - `request_id` string, uuid, nullable, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `resolved_at` string, date-time, nullable, required
  - `dismissed_by` string, uuid, nullable, required
  - `detail` object, required
  - `evidence` object, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-26** `3e25bef24f8f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/xenovia/apis/controlplane/changes/api/v1/nova/insights/post.md)

---

[API](https://skmtc.dev/xenovia/apis/controlplane.md) - [All operations](https://skmtc.dev/xenovia/apis/controlplane/llms.txt) - [OpenAPI document](https://skmtc.dev/xenovia/apis/controlplane/revisions/3e25bef24f8f?raw)
