> ## Documentation Index
> Fetch the complete documentation index at: https://api-documentation.kare-app.fr/llms.txt
> Use this file to discover all available pages before exploring further.

# Trainings

> API changes for the Trainings module.

<Update label="2026-09-15 (#1196)">
  **1 API change(s)**

  **`PATCH /rs/trainings/v1/exercise/{id}`**

  * added the new optional request property `complianceIds`
</Update>

<Update label="2026-09-15">
  **2 API change(s)**

  **`GET /rs/trainings/v1/`**

  * removed the `late` enum value from the `data/items/status` response property for the response status `200`

  **`GET /rs/trainings/v1/{id}`**

  * removed the `late` enum value from the `status` response property for the response status `200`
</Update>

<Update label="2026-09-11">
  **2 API change(s)**

  **`GET /rs/trainings/v1/`**

  * removed the `executed` enum value from the `data/items/status` response property for the response status `200`

  **`GET /rs/trainings/v1/{id}`**

  * removed the `executed` enum value from the `status` response property for the response status `200`
</Update>

<Update label="2026-09-07">
  **4 API change(s) - ⚠️ includes 4 breaking change(s)**

  **`GET /rs/trainings/v1/`**

  * for the `query` request parameter `whereAssignedContact`, the type/format of property `items/` was specialized from `string`/\`\` to `string`/`uuid`
  * for the `query` request parameter `whereAssignedUser`, the type/format of property `items/` was specialized from `string`/\`\` to `string`/`uuid`
  * for the `query` request parameter `whereRuleId`, the type/format of property `items/` was specialized from `string`/\`\` to `string`/`uuid`
  * for the `query` request parameter `whereUnitIds`, the type/format of property `items/` was specialized from `string`/\`\` to `string`/`uuid`
</Update>

<Update label="2026-09-01">
  **1 API change(s)**

  **`GET /rs/trainings/v1/`**

  * added the enum value `updatedAt` to the property `items/field` of the `query` request parameter `orderBy`
</Update>

<Update label="2026-08-28">
  **4 API change(s) - ⚠️ includes 2 breaking change(s)**

  **`POST /rs/trainings/v1/{id}/archive`**

  * api path removed without deprecation

  **`POST /rs/trainings/v1/{id}/unarchive`**

  * api path removed without deprecation

  **`POST /rs/trainings/v1/batch-archive`**

  * endpoint added

  **`POST /rs/trainings/v1/batch-unarchive`**

  * endpoint added
</Update>

<Update label="2026-08-26 (#673)">
  **1 API change(s)**

  **`GET /rs/trainings/v1/`**

  * added the new optional `query` request parameter `countOnly`
</Update>

<Update label="2026-08-26">
  **30 API change(s)**

  **`GET /rs/trainings/v1/`**

  * added the new optional `query` request parameter `whereRuleId`
  * added the enum value `counts` to the property `items/` of the `query` request parameter `extend`
  * added the enum value `rules` to the property `items/` of the `query` request parameter `extend`
  * added the enum value `title` to the property `items/field` of the `query` request parameter `orderBy`
  * added the enum value `verification` to the property `items/` of the `query` request parameter `extend`
  * added the optional property `data/items/_count` to the response with the `200` status
  * added the optional property `data/items/rule` to the response with the `200` status
  * added the optional property `data/items/rules` to the response with the `200` status
  * added the optional property `data/items/rulesCount` to the response with the `200` status
  * added the optional property `data/items/verifiedBy` to the response with the `200` status
  * added the required property `data/items/title` to the response with the `200` status
  * added the required property `data/items/verifiedAt` to the response with the `200` status
  * added the required property `data/items/verifiedByUserId` to the response with the `200` status

  **`POST /rs/trainings/v1/exercise`**

  * added the new optional request property `title`

  **`PATCH /rs/trainings/v1/exercise/{id}`**

  * added the new optional request property `title`

  **`POST /rs/trainings/v1/qualification`**

  * added the new optional request property `title`

  **`PATCH /rs/trainings/v1/qualification/{id}`**

  * added the new optional request property `title`

  **`POST /rs/trainings/v1/session`**

  * added the new optional request property `title`

  **`PATCH /rs/trainings/v1/session/{id}`**

  * added the new optional request property `title`

  **`GET /rs/trainings/v1/{id}`**

  * added the enum value `counts` to the property `items/` of the `query` request parameter `extend`
  * added the enum value `rules` to the property `items/` of the `query` request parameter `extend`
  * added the enum value `verification` to the property `items/` of the `query` request parameter `extend`
  * added the optional property `_count` to the response with the `200` status
  * added the optional property `rule` to the response with the `200` status
  * added the optional property `rules` to the response with the `200` status
  * added the optional property `rulesCount` to the response with the `200` status
  * added the optional property `verifiedBy` to the response with the `200` status
  * added the required property `title` to the response with the `200` status
  * added the required property `verifiedAt` to the response with the `200` status
  * added the required property `verifiedByUserId` to the response with the `200` status
</Update>

<Update label="2026-08-06">
  **25 API change(s) — ⚠️ includes 18 breaking change(s)**

  **`GET /rs/trainings/v1/`**

  * removed the enum value `unit` from the property `items/` of the `query` request parameter `extend`
  * removed the required property `data/items/unitId` from the response with the `200` status
  * removed the optional property `data/items/unit` from the response with the `200` status
  * added the enum value `units` to the property `items/` of the `query` request parameter `extend`
  * added the optional property `data/items/units` to the response with the `200` status

  **`POST /rs/trainings/v1/exercise`**

  * the request property `complianceIds` became required
  * the `complianceIds` request property's minItems was increased to `1`
  * removed the request property `unitId`
  * the `complianceIds` request property default value `[]` was removed

  **`POST /rs/trainings/v1/qualification`**

  * the request property `complianceIds` became required
  * the `complianceIds` request property's minItems was increased to `1`
  * removed the request property `unitId`
  * the `complianceIds` request property default value `[]` was removed

  **`POST /rs/trainings/v1/session`**

  * the request property `complianceIds` became required
  * the `complianceIds` request property's minItems was increased to `1`
  * removed the request property `unitId`
  * the `complianceIds` request property default value `[]` was removed

  **`GET /rs/trainings/v1/{id}`**

  * removed the enum value `unit` from the property `items/` of the `query` request parameter `extend`
  * removed the required property `unitId` from the response with the `200` status
  * removed the optional property `unit` from the response with the `200` status
  * added the enum value `units` to the property `items/` of the `query` request parameter `extend`
  * added the optional property `units` to the response with the `200` status

  **`PATCH /rs/trainings/v1/exercise/{id}`**

  * removed the request property `unitId`

  **`PATCH /rs/trainings/v1/qualification/{id}`**

  * removed the request property `unitId`

  **`PATCH /rs/trainings/v1/session/{id}`**

  * removed the request property `unitId`
</Update>

<Update label="2026-08-03">
  **3 API change(s) — ⚠️ includes 2 breaking change(s)**

  **`GET /rs/trainings/v1/`**

  * added the new `audit` enum value to the `data/items/type` response property for the response status `200`
  * added the new optional `query` request parameter `whereHistorized`

  **`GET /rs/trainings/v1/{id}`**

  * added the new `audit` enum value to the `type` response property for the response status `200`
</Update>

<Update label="2026-07-31">
  **22 API change(s) — ⚠️ includes 11 breaking change(s)**

  **`GET /rs/trainings/v1/`**

  * removed the required property `data/items/assignedCompanyContactId` from the response with the `200` status
  * deleted the `query` request parameter `whereAssignedCompanyContact`
  * removed the optional property `data/items/assignedCompanyContact` from the response with the `200` status
  * added the new optional `query` request parameter `whereAssignedContact`
  * added the optional property `data/items/assignedContact` to the response with the `200` status
  * added the required property `data/items/assignedContactId` to the response with the `200` status

  **`GET /rs/trainings/v1/{id}`**

  * removed the required property `assignedCompanyContactId` from the response with the `200` status
  * removed the optional property `assignedCompanyContact` from the response with the `200` status
  * added the optional property `assignedContact` to the response with the `200` status
  * added the required property `assignedContactId` to the response with the `200` status

  **`POST /rs/trainings/v1/exercise`**

  * removed the request property `assignedCompanyContactId`
  * added the new optional request property `assignedContactId`

  **`PATCH /rs/trainings/v1/exercise/{id}`**

  * removed the request property `assignedCompanyContactId`
  * added the new optional request property `assignedContactId`

  **`POST /rs/trainings/v1/qualification`**

  * removed the request property `assignedCompanyContactId`
  * added the new optional request property `assignedContactId`

  **`PATCH /rs/trainings/v1/qualification/{id}`**

  * removed the request property `assignedCompanyContactId`
  * added the new optional request property `assignedContactId`

  **`POST /rs/trainings/v1/session`**

  * removed the request property `assignedCompanyContactId`
  * added the new optional request property `assignedContactId`

  **`PATCH /rs/trainings/v1/session/{id}`**

  * removed the request property `assignedCompanyContactId`
  * added the new optional request property `assignedContactId`
</Update>

<Update label="2026-07-27">
  **1 API change(s)**

  **`GET /rs/trainings/v1/`**

  * added the new optional `query` request parameter `whereAssignedToMe`
</Update>

<Update label="2026-07-23">
  **11 API change(s) — ⚠️ includes 4 breaking change(s)**

  **`GET /rs/trainings/v1/`**

  * removed the required property `data/items/trainedUsers/items/attendanceProof/storageKey` from the response with the `200` status
  * removed the required property `data/items/trainingProof/storageKey` from the response with the `200` status
  * added the enum value `createdBy` to the property `items/field` of the `query` request parameter `orderBy`
  * added the enum value `status` to the property `items/field` of the `query` request parameter `orderBy`
  * added the enum value `type` to the property `items/field` of the `query` request parameter `orderBy`
  * added the required property `data/items/trainedUsers/items/attendanceProof/downloadUrl` to the response with the `200` status
  * added the required property `data/items/trainingProof/downloadUrl` to the response with the `200` status

  **`GET /rs/trainings/v1/{id}`**

  * removed the required property `trainedUsers/items/attendanceProof/storageKey` from the response with the `200` status
  * removed the required property `trainingProof/storageKey` from the response with the `200` status
  * added the required property `trainedUsers/items/attendanceProof/downloadUrl` to the response with the `200` status
  * added the required property `trainingProof/downloadUrl` to the response with the `200` status
</Update>

<Update label="2026-07-22">
  **2 API change(s) — ⚠️ includes 1 breaking change(s)**

  **`GET /rs/trainings/v1/`**

  * deleted the `query` request parameter `whereUnit`
  * added the new optional `query` request parameter `whereUnitIds`
</Update>

<Update label="2026-07-17">
  **11 API change(s)**

  **`GET /rs/trainings/v1/`**

  * endpoint added

  **`POST /rs/trainings/v1/exercise`**

  * endpoint added

  **`PATCH /rs/trainings/v1/exercise/{id}`**

  * endpoint added

  **`POST /rs/trainings/v1/qualification`**

  * endpoint added

  **`PATCH /rs/trainings/v1/qualification/{id}`**

  * endpoint added

  **`POST /rs/trainings/v1/session`**

  * endpoint added

  **`PATCH /rs/trainings/v1/session/{id}`**

  * endpoint added

  **`DELETE /rs/trainings/v1/{id}`**

  * endpoint added

  **`GET /rs/trainings/v1/{id}`**

  * endpoint added

  **`POST /rs/trainings/v1/{id}/archive`**

  * endpoint added

  **`POST /rs/trainings/v1/{id}/unarchive`**

  * endpoint added
</Update>
