---
title: "List published library articles"
method: GET
path: "/api/articles"
---

# List published library articles

`GET /api/articles`

## Request

- Base URL: `https://mcp.rrmacademy.org`
- URL: `https://mcp.rrmacademy.org/api/articles`
- Auth: none required

Returns a paginated list of published, non-retracted research articles from the RRM Academy library. Public, unauthenticated. Rate limited to 30 requests per minute per IP. Responses are edge-cached for 1 hour.

Two interchangeable pagination modes: classic `page`+`limit` (unchanged, still supported), or opaque `cursor`. Each response returns `nextCursor` (null when the list is exhausted); pass it back as `cursor` to fetch the next page. When `cursor` is supplied, `page` and `limit` query params are ignored (the cursor carries the limit). The cursor is an encoded offset over the library's default sort, not a keyset position, so it is stable within a request session but not a durable bookmark across corpus changes.

## Query parameters

- `page` integer
- `limit` integer
- `cursor` string

## Response `200`

Paginated article list.

- ArticleList
  - `page` integer, required
  - `limit` integer, required
  - `total` integer, required
  - `total_pages` integer, required
  - `nextCursor` string, nullable: Opaque cursor for the next page, or null when the list is exhausted. Pass back as the `cursor` query param. Present on every response (offset and cursor modes alike).
  - `results` ArticleSummary[], required
    - `id` string, required
    - `slug` string, required
    - `url` string, uri, required
    - `title` string, required
    - `authors` string
    - `year` integer, nullable
    - `journal` string
    - `doi` string
    - `pmid` string
    - `abstract` string
    - `topics` string[]
    - `is_open_access` boolean
    - `date_added` string, date, nullable

## Other responses

- `400`: Invalid pagination parameters (`invalid_pagination`) or an undecodable/out-of-range `cursor` (`invalid_cursor`).
- `429`: Rate limited (30 req/min per IP)
- `503`: Upstream library service unavailable

---

[API](https://skmtc.dev/rrmacademy/apis/rrm-academy-agent-api.md) · [All operations](https://skmtc.dev/rrmacademy/apis/rrm-academy-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rrmacademy/apis/rrm-academy-agent-api/revisions/0e3589a38b0c?raw)
