---
title: "Api Learning Feature Flags"
method: GET
path: "/api/learning/feature-flags"
tags: ["Education"]
---

# Api Learning Feature Flags

`GET /api/learning/feature-flags`

## 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/feature-flags`
- Auth: none declared

Expose A3 rollout flags to the client so it can decide whether to
POST /submit-quiz (server-graded) or fall back to local grading.

Response:
  {
    "server_side_mastery": bool,
    "raw_flag": str,     # "on"/"off"/"25" etc — for diagnostics only
  }

The `server_side_mastery` bool is per-user (respects percentage
rollouts). Anonymous calls get the non-user-scoped default.

## Response `200`

Successful Response

- LearningFeatureFlagsResponse: `GET /api/learning/feature-flags` — A3 rollout flags exposed to the client so it can decide between server-side grading (POST /submit-quiz) vs local-only grading. Anonymous-friendly (anon users get the default rollout state).
  - `server_side_mastery` boolean, required: Per-user resolved bool — respects percentage rollouts via _is_server_side_mastery_enabled_for_user.
  - `raw_flag` string, required: Diagnostic — raw env-var value ('on' / 'off' / '25' etc.). FE shouldn't depend on it.

---

[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)
