---
title: "Record Faithfulness"
method: POST
path: "/model/{env}/faithfulness"
---

# Record Faithfulness

`POST /model/{env}/faithfulness`

## Request

- Base URL: `https://api-docs.session-exchange.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api-docs.session-exchange.com/model/{env}/faithfulness`
- Auth: none declared

Record/refresh a held-out faithfulness reading. When a GOVERNED FaithfulnessSpec
exists for (env, scope) the collector RECOMPUTES the reading from the schema
projection vs. independent ground truth (1a) and IGNORES any caller-supplied
score/threshold. With no spec it falls back to the legacy caller-reported reading
(backward-compatible). Either way it folds the latest + emits
model.faithfulness.measured.

## Path parameters

- `env` string, required

## Request body

- FaithfulnessRequest: A held-out model-faithfulness reading (environment-model v0.1 S4). `scope` is a process id, or '_model' for the env-wide model. `score` ∈ [0,1] is the held-out agreement with independent ground truth. NOTE (Phase 1, 1a): when a governed FaithfulnessSpec exists for (env, scope) the collector RECOMPUTES the reading and IGNORES `score`/`threshold` here — they are retained only for the legacy (no-spec) path and are deprecated.
  - `score` number, required
  - `threshold` number
  - `scope` string
  - `n_test` integer, nullable
  - `held_out` boolean, nullable
  - `ground_truth_event_types` string[]
  - `note` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/session-exchange/apis/a4sx.md) · [All operations](https://skmtc.dev/session-exchange/apis/a4sx/llms.txt) · [OpenAPI document](https://skmtc.dev/session-exchange/apis/a4sx/revisions/abaefc33dfc7?raw)
