---
title: "Save Correction Preference"
method: POST
path: "/teacher/correction-preferences/suggestions/{suggestion_id}/save"
tags: ["Correction preference suggestions"]
---

# Save Correction Preference

`POST /teacher/correction-preferences/suggestions/{suggestion_id}/save`

Store a preference the teacher had turned down, and clear the refusal.

## Path parameters

- `suggestion_id` string, required

## Response `200`

Successful Response

- CorrectionPreferenceSuggestionResponse — One line of the chat card. `status` drives everything the card shows: `saved` gets « Annuler », `declined` gets the date it was turned down and « Enregistrer quand même ». `duplicate` never reaches the API — those suggestions are recorded but not shown, so the card asking about a batch simply gets fewer lines back than it had ids.
  - `id` string, required
  - `title` string, required
  - `statement` string, required
  - `status` string, required
  - `declined_at` string, date-time, nullable, required

## Other responses

- `404` — Resource not found
- `409` — Business rule violated
- `422` — Validation Error

## Changes

> 24 revisions in range; 1 not diffed.

- **2026-09-16** `9f813eb42d6f` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/excellence-ai/apis/excellence-learning/changes/teacher/correction-preferences/suggestions/:suggestion_id/save/post.md)

---

[API](https://skmtc.dev/excellence-ai/apis/excellence-learning.md) · [All operations](https://skmtc.dev/excellence-ai/apis/excellence-learning/llms.txt) · [OpenAPI document](https://skmtc.dev/excellence-ai/apis/excellence-learning/revisions/b9758ca4fea6?raw)
