**Version: 202601**

# List articles

**GET** `/openapi/2026-01/articles`

Retrieve a list of articles with optional filtering.

## Request

**Query Parameters**

- `cursor` string

  Cursor for pagination
- `page_size` int32

  Page size, default 10
- `author` string

  Optional filter for author name
- `keyword` string

  Optional keyword to fuzzy-match article title/content
- `published` boolean

  Optional published-status filter: true = published only, false = drafts only, omit = all
- `page` int32

  Page number (1-based). Mutually exclusive with cursor

## Responses

**200**

OK

**application/json**

**Schema | Example**

**Schema**

- `code` string

  error code
- `message` string

  error message
- `data` object

  - `articles` object[]

    List of articles

    *   Array \[

    - `id` string

      Article ID
    - `title` string

      Title of the article
    - `excerpt` string

      Short summary or preview of the article content
    - `content` string

      Full content of the article
    - `image` object

      Image associated with the article containing src, width, height, and alt

      - `src` string

        Image URL
      - `width` int32

        Width
      - `height` int32

        Height
      - `path` string

        Path
    - `published` boolean

      Whether the article is published or not
    - `handle` string

      URL-friendly identifier for the article
    - `seo_title` string

      Custom SEO title
    - `seo_description` string

      SEO meta description
    - `seo_keywords` string[]

      SEO keywords
    - `author` string

      Author of the article
    - `published_at` string

      ISO 8601 timestamp when article was published
    - `blog_ids` string[]

      Array of blog IDs this article belongs to
    - `created_at` string

      ISO 8601 timestamp when article was created
    - `updated_at` string

      ISO 8601 timestamp when article was last updated
    *   \]
  - `cursor` string

    Cursor for the next page
  - `has_more` boolean

    Whether there are more records
  - `count` int32

    Total number of articles (from the backend)

```json
{
  "code": "string",
  "message": "string",
  "data": {
    "articles": [
      {
        "id": "string",
        "title": "string",
        "excerpt": "string",
        "content": "string",
        "image": {
          "src": "string",
          "width": 0,
          "height": 0,
          "path": "string"
        },
        "published": true,
        "handle": "string",
        "seo_title": "string",
        "seo_description": "string",
        "seo_keywords": [
          "string"
        ],
        "author": "string",
        "published_at": "string",
        "blog_ids": [
          "string"
        ],
        "created_at": "string",
        "updated_at": "string"
      }
    ],
    "cursor": "string",
    "has_more": true,
    "count": 0
  }
}
```
