---
title: "Update Bonus Points"
method: PUT
path: "/copy-correction/{session_id}/bonus-points"
tags: ["Copy Correction"]
---

# Update Bonus Points

`PUT /copy-correction/{session_id}/bonus-points`

## Request

- Base URL: `https://api.excellence-ai.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.excellence-ai.com/copy-correction/{session_id}/bonus-points`
- Auth: OAuth 2 (password, token URL `api/login`)

Declare how many points of the barème are bonus: they count in a copy's
score but not in the /20 denominator. Allowed while the barème is locked
and after publication, since no raw point changes.

## Path parameters

- `session_id` string, required

## Request body

- CopyCorrectionBonusPointsUpdate
  - `bonus_points` number, required

## Response `200`

Successful Response

- CopyCorrectionBonusPointsResponse: `denominator` is the number of raw points that make 20/20 (barème total minus bonus); `bonus_applies` is false when a stored bonus no longer fits a barème that shrank since, in which case grades ignore it.
  - `bonus_points` number, required
  - `max_total` number, required
  - `denominator` number, nullable, required
  - `bonus_applies` boolean, required

## Other responses

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

## Changes

> 55 revisions in range; 1 not diffed.

- **2026-10-11** `271be6884523`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/excellence-ai/apis/excellence-learning/changes/copy-correction/:session_id/bonus-points/put.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/379e4a57dee8?raw)
