---
title: "List Catalog"
method: GET
path: "/api/learning-plans/catalog"
tags: ["learning-plans"]
---

# List Catalog

`GET /api/learning-plans/catalog`

## Query parameters

- `lang` string, nullable
- `include_reflections` boolean
- `include_premium` boolean
- `include_bodies` boolean
- `include_starter_count` boolean

## Headers

- `x-user-id` string, nullable

## Response `200`

Successful Response

- union
  - Plan[]
    - `key` string, required
    - `title` string, required
    - `author` string, required
    - `duration_days` integer, required
    - `topic` string, required
    - `description` string, required
    - `premium` boolean, nullable
    - `days` PlanDay[], required
      - `day_index` integer, required
      - `segments` union[], required
        - union
          - DevotionalSegment
            - `type` 'devotional', required
            - `title` string, required
            - `body` string, nullable
          - ScriptureSegment
            - `type` 'scripture', required
            - `reference` ScriptureReference, required
              - …
          - ReflectionSegment
            - `type` 'reflection', required
            - `questions` union[], required
              - …
            - `reflection_prompt` string, required
  - LearningPlanCatalog
    - `plans` Plan[], required
      - `key` string, required
      - `title` string, required
      - `author` string, required
      - `duration_days` integer, required
      - `topic` string, required
      - `description` string, required
      - `premium` boolean, nullable
      - `days` PlanDay[], required
        - `day_index` integer, required
        - `segments` union[], required
          - union
            - DevotionalSegment
              - …
            - ScriptureSegment
              - …
            - ReflectionSegment
              - …
    - `starter_count` integer, nullable

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-27** `fa7408e68262` — 1 breaking, 3 info
  - the response's body type/format changed from `array`/`` to ``/`` for status `200`
  - added the new optional `query` request parameter `include_bodies`
  - added the new optional `query` request parameter `include_starter_count`
  - added `#/components/schemas/LearningPlanCatalog, subschema #1` to the response body `anyOf` list for the response status `200`
- **2026-08-20** `39e293adecd1` — 2 info
  - added the new optional `query` request parameter `include_premium`
  - added the optional property `items/premium` to the response with the `200` status

[Change history](https://skmtc.dev/usecreed/apis/creed-api/changes/api/learning-plans/catalog/get.md)

---

[API](https://skmtc.dev/usecreed/apis/creed-api.md) · [All operations](https://skmtc.dev/usecreed/apis/creed-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/usecreed/creed-api/revisions/fa7408e68262/schema)
