---
title: "List recommendation sets"
method: GET
path: "/api/sets"
tags: ["picks"]
---

# List recommendation sets

`GET /api/sets`

## Request

- Base URL: `https://leafle.org` (the document declares no server; this is the origin it was published from)
- URL: `https://leafle.org/api/sets`
- Auth: HTTP bearer

**Access: read token.**

Returns newest-first set summaries and pick counts. Use `offset` and `limit` to page; fetch a set by ID for its books. The effective limit is clamped to 1–50.

## Query parameters

- `offset` integer
- `limit` integer
- `reader_id` integer, nullable

## Response `200`

Successful Response

- SetsIndexPage: `GET /api/sets` — the lightweight listing (see `RecSetIndex`).
  - `sets` RecSetIndex[], required
    - `id` integer, required
    - `created_at` string, nullable, required
    - `library_authority` string, nullable, required
    - `source` 'library' | 'buy' | 'shelf', required
    - `note` string, nullable, required
    - `pick_count` integer, required
  - `offset` integer, required
  - `limit` integer, required

## Other responses

- `401`: Missing or unusable credential.
- `403`: Insufficient token scope or the reader is outside your account.
- `422`: Validation Error

---

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