Wikipedia / MediaWiki Reading lists API

Private lists of selected pages

OpenAPI Specification

wikipedia-reading-lists-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: MediaWiki Action articles Reading lists API
  description: 'The MediaWiki Action API is the original programmatic interface to MediaWiki, exposed under /w/api.php on every MediaWiki installation. All operations dispatch via the ?action= query parameter. The API supports JSON, XML, and PHP serialization; JSON is the recommended format.


    Wikimedia projects strongly recommend serial (not parallel) calls, the use of maxlag for non-interactive jobs, and a contactable User-Agent header. The Action API remains the primary write interface (edit, upload, login, patrol) even where the Core REST API is also available.'
  version: '1.45'
  x-generated-from: documentation
  x-source-url: https://www.mediawiki.org/wiki/API:Main_page
  x-last-validated: '2026-05-29'
  contact:
    name: Wikimedia Foundation
    url: https://www.mediawiki.org/wiki/API:Etiquette
  license:
    name: CC BY-SA 4.0
    url: https://creativecommons.org/licenses/by-sa/4.0/
servers:
- url: https://en.wikipedia.org/w
  description: English Wikipedia
- url: https://{lang}.wikipedia.org/w
  description: Per-language Wikipedia
  variables:
    lang:
      default: en
      description: Language code
- url: https://commons.wikimedia.org/w
  description: Wikimedia Commons
- url: https://www.wikidata.org/w
  description: Wikidata
- url: https://www.mediawiki.org/w
  description: MediaWiki.org
tags:
- name: Reading lists
  description: Private lists of selected pages
  externalDocs:
    description: Project documentation
    url: https://www.mediawiki.org/wiki/Reading/Reading_Lists
paths:
  /data/lists/setup:
    post:
      tags:
      - Reading lists
      summary: Wikimedia REST Opt in to Use Reading Lists.
      description: 'Must precede other list operations.


        Request must be authenticated with a MediaWiki session cookie.


        Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)

        '
      parameters:
      - name: csrf_token
        in: query
        required: true
        schema:
          type: string
          example: f63c343876da566045e6b59c4532450559c828d3+\
        description: The CRSF edit token provided by the MediaWiki API
      responses:
        '200':
          description: Success.
          content:
            application/json; charset=utf-8:
              schema:
                type: object
        default:
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem'
      x-monitor: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /data/lists/teardown:
    post:
      tags:
      - Reading lists
      summary: Wikimedia REST Opt Out from Using Reading Lists.
      description: 'Deletes all data. User needs to opt in again before being able to do anything.


        Request must be authenticated with a MediaWiki session cookie.


        Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)

        '
      parameters:
      - name: csrf_token
        in: query
        required: true
        schema:
          type: string
          example: f63c343876da566045e6b59c4532450559c828d3+\
        description: The CRSF edit token provided by the MediaWiki API
      responses:
        '200':
          description: Success.
          content:
            application/json; charset=utf-8:
              schema:
                type: object
        default:
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem'
      x-monitor: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /data/lists/:
    get:
      tags:
      - Reading lists
      summary: Wikimedia REST Get All Lists of the Current User.
      description: 'Returns metadata describing the lists of the current user. Might be truncated and include

        a continuation token.


        Request must be authenticated with a MediaWiki session cookie.


        Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)

        '
      parameters:
      - name: next
        in: query
        description: Continuation parameter from previous request
        schema:
          type: string
      - name: sort
        in: query
        description: 'Sort order

          - `name`: by name, ascending;

          - `updated`: by last modification date, descending.

          '
        schema:
          type: string
          default: updated
          enum:
          - name
          - updated
      responses:
        '200':
          description: An array of list metadata.
          content:
            application/json; charset=utf-8; profile="https://www.mediawiki.org/wiki/Specs/Lists/0.1":
              schema:
                type: object
                properties:
                  lists:
                    type: array
                    items:
                      $ref: '#/components/schemas/list_read'
                  next:
                    type: string
                    description: Continuation token.
                  continue-from:
                    type: string
                    format: date-time
                    description: 'Timestamp to sync from, to be used with the `GET /lists/changes/since/{date}`

                      endpoint.

                      '
        default:
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem'
      x-monitor: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      tags:
      - Reading lists
      summary: Wikimedia REST Create a New List for the Current User.
      description: 'Creates a new empty list. On name conflict, does nothing and returns the data of an

        existing list.


        Request must be authenticated with a MediaWiki session cookie.


        Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)


        This endpoint is deprecated and might be removed without warning. Use the batch version

        instead.

        '
      x-maxsize: 5000
      parameters:
      - name: csrf_token
        in: query
        required: true
        schema:
          type: string
          example: f63c343876da566045e6b59c4532450559c828d3+\
        description: The CRSF edit token provided by the MediaWiki API
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/list_write'
        required: true
      responses:
        '200':
          description: The data for the new list.
          content:
            application/json; charset=utf-8:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: 'List ID.


                      Deprecated, will be removed. Use the full list object.

                      '
                    example: 7
                  list:
                    $ref: '#/components/schemas/list_read'
                required:
                - id
                - list
        default:
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem'
      x-monitor: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /data/lists/{id}:
    put:
      tags:
      - Reading lists
      summary: Wikimedia REST Update a List.
      description: 'List must belong to current user and request must be authenticated with

        a MediaWiki session cookie. If the name is changed, the new name must not be in use.


        Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)

        '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          example: 42
      - name: csrf_token
        in: query
        required: true
        schema:
          type: string
          example: f63c343876da566045e6b59c4532450559c828d3+\
        description: The CRSF edit token provided by the MediaWiki API
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/list_write'
        required: false
      responses:
        '200':
          description: The updated data for the list.
          content:
            application/json; charset=utf-8:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: 'List ID.


                      Deprecated, will be removed. Use the full list object.

                      '
                    example: 7
                  list:
                    $ref: '#/components/schemas/list_read'
                required:
                - id
                - list
        default:
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem'
      x-monitor: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      tags:
      - Reading lists
      summary: Wikimedia REST Delete a List.
      description: 'List must belong to current user and request must be authenticated with

        a MediaWiki session cookie.


        Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)

        '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          example: 42
      responses:
        '200':
          description: Success.
          content:
            application/json; charset=utf-8:
              schema:
                type: object
        default:
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem'
      x-monitor: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /data/lists/batch:
    post:
      tags:
      - Reading lists
      summary: Wikimedia REST Create Multiple New Lists for the Current User.
      description: 'See `POST /lists/`.


        Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)

        '
      x-maxsize: 5000
      parameters:
      - name: csrf_token
        in: query
        required: true
        schema:
          type: string
          example: f63c343876da566045e6b59c4532450559c828d3+\
        description: The CRSF edit token provided by the MediaWiki API
      requestBody:
        content:
          '*/*':
            schema:
              title: batch
              required:
              - batch
              type: object
              properties:
                batch:
                  maxItems: 500
                  type: array
                  items:
                    $ref: '#/components/schemas/list_write'
        required: true
      responses:
        '200':
          description: The data for the new lists (in the same order as the inputs).
          content:
            application/json; charset=utf-8:
              schema:
                title: list_create_batch
                type: object
                properties:
                  batch:
                    type: array
                    description: Deprecated, will be removed. Use the full list objects instead.
                    items:
                      title: list_id
                      type: object
                      required:
                      - id
                      properties:
                        id:
                          type: integer
                          description: List ID
                          example: 7
                  lists:
                    type: array
                    items:
                      $ref: '#/components/schemas/list_read'
                required:
                - batch
                - lists
        default:
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem'
      x-monitor: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /data/lists/{id}/entries/:
    get:
      tags:
      - Reading lists
      summary: Wikimedia REST Get All Entries of a Given List.
      description: 'Returns pages contained by the given list. Might be truncated and include

        a continuation token.


        List must belong to current user and request must be authenticated with

        a MediaWiki session cookie.


        Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)

        '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          example: 42
      - name: next
        in: query
        description: Continuation parameter from previous request
        schema:
          type: string
      - name: sort
        in: query
        description: 'Sort order

          - `name`: by page title, ascending;

          - `updated`: by last modification date, descending.

          '
        schema:
          type: string
          default: updated
          enum:
          - name
          - updated
      responses:
        '200':
          description: An array of list entries.
          content:
            application/json; charset=utf-8; profile="https://www.mediawiki.org/wiki/Specs/Lists/0.1":
              schema:
                type: object
                properties:
                  entries:
                    type: array
                    items:
                      $ref: '#/components/schemas/list_entry_read'
                  next:
                    type: string
                    description: Continuation token.
        default:
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem'
      operationId: getListEntries
      x-monitor: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      tags:
      - Reading lists
      summary: Wikimedia REST Create a New List Entry.
      description: 'Creates a new list entry in the given list. On conflict, does nothing and returns the

        data of an existing list.


        The list must belong to the current user and the request must be

        authenticated with a MediaWiki session cookie.


        Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)


        This endpoint is deprecated and might be removed without warning. Use the batch version

        instead.

        '
      x-maxsize: 100
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          example: 42
      - name: csrf_token
        in: query
        required: true
        schema:
          type: string
          example: f63c343876da566045e6b59c4532450559c828d3+\
        description: The CRSF edit token provided by the MediaWiki API
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/list_entry_write'
        required: true
      responses:
        '200':
          description: The data for the new list entry.
          content:
            application/json; charset=utf-8:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: 'List entry ID


                      Deprecated, will be removed. Use the full entry object instead.

                      '
                    example: 13
                  entry:
                    $ref: '#/components/schemas/list_entry_read'
                required:
                - id
                - entry
        default:
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem'
      x-monitor: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /data/lists/{id}/entries/{entry_id}:
    delete:
      tags:
      - Reading lists
      summary: Wikimedia REST Delete a List Entry.
      description: 'Deletes a given list entry.


        The list must belong to the current user and the request must be

        authenticated with a MediaWiki session cookie.


        Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)

        '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          example: 42
      - name: entry_id
        in: path
        required: true
        schema:
          type: integer
          example: 64
      responses:
        '200':
          description: Success.
          content:
            application/json; charset=utf-8:
              schema:
                type: object
        default:
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem'
      x-monitor: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /data/lists/{id}/entries/batch:
    post:
      tags:
      - Reading lists
      summary: Wikimedia REST Create Multiple New List Entries.
      description: 'See `POST /lists/{id}/entries/`.


        Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)

        '
      x-maxsize: 100
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          example: 42
      - name: csrf_token
        in: query
        required: true
        schema:
          type: string
          example: f63c343876da566045e6b59c4532450559c828d3+\
        description: The CRSF edit token provided by the MediaWiki API
      requestBody:
        content:
          '*/*':
            schema:
              type: object
              required:
              - batch
              properties:
                batch:
                  title: list_entries
                  type: array
                  maxItems: 500
                  items:
                    $ref: '#/components/schemas/list_entry_write'
        required: true
      responses:
        '200':
          description: The data for the new list entries (in the same order as the inputs).
          content:
            application/json; charset=utf-8:
              schema:
                type: object
                properties:
                  batch:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: List entry ID
                          example: 13
                  entries:
                    type: array
                    items:
                      $ref: '#/components/schemas/list_entry_read'
                required:
                - entries
                - batch
        default:
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem'
      x-monitor: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /data/lists/pages/{project}/{title}:
    get:
      tags:
      - Reading lists
      summary: Wikimedia REST Get Lists of the Current User Which Contain a Given Page.
      description: 'Request must be authenticated with a MediaWiki session cookie.


        Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)

        '
      parameters:
      - name: project
        in: path
        schema:
          type: string
          description: Domain of the wiki containing the page.
          example: https://en.wikipedia.org
        required: true
      - name: title
        in: path
        schema:
          type: string
          description: Title of the page containing the page, in database format.
          example: Barack_Obama
        required: true
      - name: next
        in: query
        description: Continuation parameter from previous request
        schema:
          type: string
      responses:
        '200':
          description: An array of list metadata.
          content:
            application/json; charset=utf-8; profile="https://www.mediawiki.org/wiki/Specs/Lists/0.1":
              schema:
                type: object
                properties:
                  lists:
                    type: array
                    items:
                      $ref: '#/components/schemas/list_read'
                  next:
                    type: string
                    description: Continuation token.
        default:
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem'
      x-monitor: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /data/lists/changes/since/{date}:
    get:
      tags:
      - Reading lists
      summary: Wikimedia REST Get Recent Changes to the Lists
      description: 'Returns metadata describing lists and entries which have changed. Might be truncated

        and include a continuation token.


        Request must be authenticated with a MediaWiki session cookie.


        For safe synchronization, the date parameter should be taken from the `continue-from`

        field of a previous `GET /lists/` or `GET /lists/changes/since/{date}` request. This will

        ensure that no changes are skipped, at the cost of sometimes receiving the same change

        multitple times. Clients should handle changes in an idempotent way.


        Stability: [unstable](https://www.mediawiki.org/wiki/API_versioning#Unstable)

        '
      parameters:
      - name: date
        in: path
        description: 'Cutoff date (in ISO 8601). To ensure reliable synchronization, the API

          might return changes which are slightly older than the cutoff date.

          '
        schema:
          type: string
          format: date-time
        required: true
      - name: next
        in: query
        description: Continuation parameter from previous request
        schema:
          type: string
      responses:
        '200':
          description: An array of list and entry metadata.
          content:
            application/json; charset=utf-8; profile="https://www.mediawiki.org/wiki/Specs/Lists/0.1":
              schema:
                type: object
                properties:
                  lists:
                    type: array
                    items:
                      $ref: '#/components/schemas/list_read'
                  next:
                    type: string
                    description: Continuation token.
                  continue-from:
                    type: string
                    format: date-time
                    description: 'Timestamp to sync from, to be used with the `GET /lists/changes/since/{date}`

                      endpoint.

                      '
        default:
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem'
      x-monitor: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    list_entry_read:
      title: list_entry
      type: object
      properties:
        id:
          type: integer
          example: 64
        project:
          type: string
          description: Domain of the wiki containing the page.
          example: https://en.wikipedia.org
        title:
          type: string
          description: Title of the page containing the page, in database format.
          example: Barack_Obama
        created:
          type: string
          format: date-time
          description: Creation date (in ISO 8601)
        updated:
          type: string
          format: date-time
          description: Last modification date (in ISO 8601)
    list_write:
      title: list
      type: object
      properties:
        name:
          type: string
          example: Planets
        description:
          type: string
          example: Planets of the Solar System
      required:
      - name
    problem:
      required:
      - type
      type: object
      properties:
        type:
          type: string
        title:
          type: string
        detail:
          type: string
        instance:
          type: string
    list_read:
      title: list
      type: object
      properties:
        id:
          type: integer
          example: 42
        name:
          type: string
          example: Planets
        description:
          type: string
          example: Planets of the Solar System
        created:
          type: string
          format: date-time
          description: Creation date (in ISO 8601)
        updated:
          type: string
          format: date-time
          description: Last modification date (in ISO 8601)
      required:
      - id
      - name
      - created
      - updated
    list_entry_write:
      type: object
      properties:
        project:
          type: string
          description: Domain of the wiki containing the page.
          example: https://en.wikipedia.org
        title:
          type: string
          description: Title of the page containing the page, in database format.
          example: Barack_Obama
      required:
      - project
      - title
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 bearer token from meta.wikimedia.org
    CookieAuth:
      type: apiKey
      in: cookie
      name: '{wiki}wikiUserID'
      description: Session cookie obtained via action=login or action=clientlogin