---
title: "POST /api/learning-sessions/record"
method: POST
path: "/api/learning-sessions/record"
tags: ["learning-session-controller"]
---

# POST /api/learning-sessions/record

`POST /api/learning-sessions/record`

## Request

- Base URL: `` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/api/learning-sessions/record`
- Auth: none declared

## Query parameters

- `timezone` string, required

## Request body

- RecordLearningSessionRequest
  - `notebookId` integer, required
  - `reportMarkdown` string, required

## Response `200`

OK

- RecordLearningSessionResponse
  - `recordedAt` string, date-time
  - `recordedItems` RecordedLearningSessionItem[], required
    - `noteTitle` string, required
    - `grade` integer, required
    - `memoryTrackerId` integer, required
  - `rejectedEntries` RejectedLearningSessionReportEntry[], required
    - `line` string, required
    - `reason` string, required

## Changes

- **2026-08-20** `405d22528fd9`: 1 breaking, 1 info
  - removed the required property `recordedItems/items/score` from the response with the `200` status
  - added the required property `recordedItems/items/grade` to the response with the `200` status
- **2026-08-10** `1af3c459422f`: 1 breaking, 1 warning
  - removed the required property `status` from the response with the `200` status
  - removed the request property `learningSessionId`
- **2026-08-08** `779a7b9d6288`: 1 info
  - added the new optional request property `learningSessionId`
- **2026-08-08** `2ffd35d3e426`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/nerds-odd-e/apis/odd-e-open-api/changes/api/learning-sessions/record/post.md)

---

[API](https://skmtc.dev/nerds-odd-e/apis/odd-e-open-api.md) - [All operations](https://skmtc.dev/nerds-odd-e/apis/odd-e-open-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nerds-odd-e/apis/odd-e-open-api/revisions/193c5e89085a?raw)
