---
title: "Api Learning Daily Practice Session"
method: GET
path: "/api/learning/daily-practice/session"
tags: ["Education"]
---

# Api Learning Daily Practice Session

`GET /api/learning/daily-practice/session`

## Request

- Base URL: `https://www.oxfordledge.com` (the document declares no server; this is the origin it was published from)
- URL: `https://www.oxfordledge.com/api/learning/daily-practice/session`
- Auth: none declared

Build a 5-question daily-practice session (Phase 10).

Weighted pull — 40% user's weakest concepts, 30% decay-eligible,
20% calibration, 10% new — with graceful degradation to random
when 7a data is sparse.

Self-only per OWNER decision #4. Each call builds a fresh session;
idempotent if client retries (server doesn't persist the session
until /complete is posted).

## Response `200`

Successful Response

- DailyPracticeSessionResponse: `GET /api/learning/daily-practice/session` — build a fresh 5-question session via the weighted pull (40% weakest + 30% decay + 20% calibration + 10% new). Returns `questions=[]` when PG is unavailable; FE tolerates the empty list.
  - `questions` DailyPracticeQuestion[], required: Session questions in display order.
    - `module_id` string, required: LEARN module the question belongs to.
    - `path_id` string, nullable: Parent path slug; null if module is unattached.
    - `title` string, required: Module title (display label on the practice card).
    - `quiz` object, required: Question object (text + choices + correct_idx). Calibration entries carry NO correct_idx — they grade server-side via /api/learning/calibration/submit.
    - `category` string, required: Source bucket: weakest | decay | calibration | new | random.
    - `is_recall` boolean, required: True if category is in RECALL_SOURCES (weakest|decay).
    - `calibration_id` integer, nullable: Phase 9b: learn_calibration_questions.id for category='calibration' entries; null otherwise.
  - `count` integer, required: len(questions); convenience for the FE counter.

---

[API](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api.md) · [All operations](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/revisions/e832a1260f0b?raw)
