---
title: "Record Correction Internal"
method: POST
path: "/v1/sessions/internal/{session_id}/corrections"
tags: ["sessions"]
---

# Record Correction Internal

`POST /v1/sessions/internal/{session_id}/corrections`

Trainee write-through ledger (behavior-modes §3). The agent calls this
the MOMENT an overseer utterance is classified — synchronously, before
absorption or acknowledgment — so a correction can never be lost to a
downstream failure. Returns the row id so the agent can stamp the
acknowledgment later (PATCH not needed for v1; ack filled by sweep).

## Path parameters

- `session_id` string, required

## Request body

- CorrectionPayload
  - `utterance_text` string, required
  - `classification` string, required
  - `overseer_participant_id` string, nullable
  - `overseer_name` string, nullable
  - `classifier_reasoning` string, nullable
  - `preceding_agent_text` string, nullable
  - `context_snapshot` object, nullable
  - `turn_index` integer, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/roxels/apis/interviewer.md) · [All operations](https://skmtc.dev/roxels/apis/interviewer/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/roxels/interviewer/revisions/4ef48ed226e1/schema)
