---
title: "Api List Paper Challenges"
method: GET
path: "/api/paper/challenges"
---

# Api List Paper Challenges

`GET /api/paper/challenges`

## 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/paper/challenges`
- Auth: none declared

List paper-trading challenges. Optional filters:
  - module_id — match challenges whose module_ids[] includes this
    LEARN module ID (used by the lesson page to find relevant
    challenges)
  - level — beginner | intermediate | advanced

Returns: {"challenges": [...]}

## Query parameters

- `module_id` string, nullable
- `level` string, nullable

## Response `200`

Successful Response

- PaperChallengesListResponse: `GET /api/paper/challenges` — list of challenges, optionally filtered by `?module_id=` or `?level=`. Anonymous-readable (challenges are evergreen content, no per-user state). Frontend iterates `data.challenges.forEach(...)` without a null-check; declared REQUIRED so the error envelope can't drift.
  - `challenges` PaperChallenge[], required: Matching challenges (empty list when no filter matches).
    - `slug` string, required: URL-safe identifier (lowercase + hyphens). Primary key.
    - `title` string, required: One-line challenge title shown on cards.
    - `summary` string, required: 2-4 sentence challenge brief.
    - `level` string, required: beginner | intermediate | advanced.
    - `module_ids` string[], required: LEARN module IDs this challenge maps to (≥1; forcing function in contract test).
    - `journey_slug` string, nullable: Optional curated-journey slug (one of SF-22's 8 journeys).
    - `prefill_thesis` string, required: Pre-filled thesis text the order modal opens with — placeholders in [SQUARE_BRACKETS].
    - `expected_duration_days` integer, required: Recommended hold horizon for the practice exercise.
    - `success_criteria` string, required: Plain-English completion definition (no automated grading at v1).

## Other responses

- `422`: Validation Error

---

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