---
title: "Readinglist"
method: GET
path: "/api/readinglist"
tags: ["readinglist"]
---

# Readinglist

`GET /api/readinglist`

Retrieve the list of articles saved to the authenticated user's reading list.

        ### Integration Guidance:
        - Requires authentication.
        - Under the hood, this endpoint retrieves articles that the user has reacted to with the `"save"` reaction category.
        - Supports pagination, defaulting to 30 articles per page.
        - Returned objects conform to the standard `ArticleIndex` schema.

## Query parameters

- `page` integer
- `per_page` integer

## Response `200`

A list of articles in the users readinglist

- ArticleIndex[]
  - `type_of` string, required
  - `id` integer, required
  - `title` string, required
  - `description` string, required
  - `cover_image` string, url, nullable, required
  - `readable_publish_date` string, required
  - `social_image` string, url, required
  - `tag_list` string[], required
  - `tags` string, required
  - `slug` string, required
  - `path` string, path, required
  - `url` string, url, required
  - `canonical_url` string, url, required
  - `positive_reactions_count` integer, required
  - `public_reactions_count` integer, required
  - `created_at` string, date-time, required
  - `edited_at` string, date-time, nullable, required
  - `crossposted_at` string, date-time, nullable, required
  - `published_at` string, date-time, required
  - `last_comment_at` string, date-time, required
  - `published_timestamp` string, date-time, required — Crossposting or published date time
  - `reading_time_minutes` integer, required — Reading time, in minutes
  - `ai_disclosure_level` 'not_disclosed' | 'no_ai' | 'some_ai' | 'fully_autonomous' — Level of AI tooling usage disclosure
  - `ai_disclosure_label` string — Human-readable label of AI disclosure
  - `user` SharedUser, required — The resource creator
    - `name` string
    - `username` string
    - `twitter_username` string, nullable
    - `github_username` string, nullable
    - `website_url` string, url, nullable
    - `profile_image` string — Profile image (640x640)
    - `profile_image_90` string — Profile image (90x90)
  - `flare_tag` ArticleFlareTag — Flare tag of the article
    - `name` string
    - `bg_color_hex` string, nullable — Background color (hexadecimal)
    - `text_color_hex` string, nullable — Text color (hexadecimal)
  - `organization` SharedOrganization — The organization the resource belongs to
    - `name` string
    - `username` string
    - `slug` string
    - `profile_image` string, url — Profile image (640x640)
    - `profile_image_90` string, url — Profile image (90x90)

## Other responses

- `401` — Unauthorized

## Changes

- **2026-08-17** (v1) `32364ddfcc63` — 2 info
  - added the optional property `items/ai_disclosure_label` to the response with the `200` status
  - added the optional property `items/ai_disclosure_level` to the response with the `200` status
- **2026-07-13** (v1) `189b62b952ea` — 1 breaking
  - removed the media type `application/json` for the response with the status `401`
- **2026-07-13** (v1) `7db6ba099285` — 1 breaking
  - removed the media type `application/json` for the response with the status `401`
- **2026-05-28** (v1) `6550ad7be94f` — 1 info
  - added the media type `application/json` for the response with the status `401`
- **2026-03-03** (v1) `c9e7662755c2` — 1 breaking
  - removed the media type `application/json` for the response with the status `401`

[Full history](https://skmtc.dev/forem/apis/forem-api-v1/changes/api/readinglist/get.md)

---

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