---
title: "Returns reading lists (paginated) for a given user."
method: POST
path: "/api/ReadingList/lists"
tags: ["ReadingList"]
---

# Returns reading lists (paginated) for a given user.

`POST /api/ReadingList/lists`

## Request

- Base URL: `http://localhost:5000`
- URL: `http://localhost:5000/api/ReadingList/lists`
- Auth: API key in header `x-api-key`

## Query parameters

- `PageNumber` integer
- `PageSize` integer
- `includePromoted` boolean
- `sortByLastModified` boolean

## Response `200`

OK

- ReadingListDto[]
  - `id` integer
  - `title` string, nullable
  - `summary` string, nullable
  - `promoted` boolean
  - `coverImageLocked` boolean
  - `coverImage` string, nullable
  - `primaryColor` string, nullable
  - `secondaryColor` string, nullable
  - `itemCount` integer
  - `startingYear` integer
  - `startingMonth` integer
  - `endingYear` integer
  - `endingMonth` integer
  - `ageRating` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -1, required: Members: - `0` — Unknown - `1` — Rating Pending (RatingPending) - `2` — Early Childhood (EarlyChildhood) - `3` — Everyone - `4` — G - `5` — Everyone 10+ (Everyone10Plus) - `6` — PG - `7` — Kids to Adults (KidsToAdults) - `8` — Teen - `9` — MA15+ (Mature15Plus) - `10` — Mature 17+ (Mature17Plus) - `11` — M (Mature) - `12` — R18+ (R18Plus) - `13` — Adults Only 18+ (AdultsOnly) - `14` — X18+ (X18Plus) - `-1` — Not Applicable (NotApplicable)
  - `ownerUserName` string, nullable
  - `sourcePath` string, nullable
  - `downloadUrl` string, nullable
  - `shaHash` string, nullable
  - `provider` 0 | 1 | 2: Members: - `0` — File (None) - `1` — File - `2` — Url
  - `lastSyncCheckUtc` string, date-time, nullable
  - `lastSyncedUtc` string, date-time, nullable
  - `totalItemsAtImport` integer
  - `tags` ReadingListTagDto[], nullable
    - `id` integer
    - `title` string, nullable, required
    - `normalizedTitle` string, nullable, required
  - `canSync` boolean

## Changes

- **2026-04-11** `ad5fe542f4b8`: 9 info
  - added the optional property `items/tags` to the response with the `200` status (media type: text/plain)
  - added the optional property `items/tags` to the response with the `200` status (media type: application/json)
  - added the optional property `items/tags` to the response with the `200` status (media type: text/json)
  - added the optional property `items/totalItemsAtImport` to the response with the `200` status (media type: text/plain)
  - …5 more
- **2026-03-22** `777fe1636b50`: 21 info
  - added the optional property `items/canSync` to the response with the `200` status (media type: text/plain)
  - added the optional property `items/canSync` to the response with the `200` status (media type: application/json)
  - added the optional property `items/canSync` to the response with the `200` status (media type: text/json)
  - added the optional property `items/downloadUrl` to the response with the `200` status (media type: text/plain)
  - …17 more
- **2025-06-14** `2dd2113f7ecd`: 3 info
  - added the optional property `items/ownerUserName` to the response with the `200` status (media type: text/plain)
  - added the optional property `items/ownerUserName` to the response with the `200` status (media type: application/json)
  - added the optional property `items/ownerUserName` to the response with the `200` status (media type: text/json)

[Operation history](https://skmtc.dev/kareadita/apis/kavita/changes/api/ReadingList/lists/post.md)

---

[API](https://skmtc.dev/kareadita/apis/kavita.md) - [All operations](https://skmtc.dev/kareadita/apis/kavita/llms.txt) - [OpenAPI document](https://skmtc.dev/kareadita/apis/kavita/revisions/d266465eeb67?raw)
