> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plato.ae/llms.txt
> Use this file to discover all available pages before exploring further.

# List CMS Entries

> Fetch a paginated list of entries from a CMS database.

Use list requests to render pages, sync content, or fetch a small page of records.

```text theme={null}
GET /api/public/cms/[modelId]/list
```

## Example

```bash theme={null}
curl "https://api.plato.ae/api/public/cms/products/list?limit=20&offset=0" \
  -H "Authorization: Bearer $PLATO_API_KEY"
```

## Query Parameters

| Parameter       | Type    | Default                          | Notes                                                   |
| --------------- | ------- | -------------------------------- | ------------------------------------------------------- |
| `limit`         | number  | `20`                             | Minimum `1`, maximum `100`.                             |
| `offset`        | number  | `0`                              | Number of entries to skip.                              |
| `fields`        | string  | system fields and visible fields | Select specific fields.                                 |
| `includeHidden` | boolean | `false`                          | Include hidden CMS fields when the key can access them. |
| `maxDepth`      | number  | `3`                              | Relation expansion depth. Maximum `6`.                  |

## Select Fields

Use `fields` to keep responses small:

```bash theme={null}
curl "https://api.plato.ae/api/public/cms/products/list?fields=id,name,price,category(id,name)" \
  -H "Authorization: Bearer $PLATO_API_KEY"
```

Nested relation fields use parentheses:

```text theme={null}
category(id,name)
```

## Response

The response body is an array.

```json theme={null}
[
  {
    "id": "entry_123",
    "name": {
      "en": "Classic Burger",
      "ar": "Classic Burger"
    },
    "price": 38,
    "category": {
      "id": "entry_category_1",
      "name": {
        "en": "Burgers"
      }
    }
  }
]
```

Pagination metadata is returned in headers:

```text theme={null}
x-cms-total: 86
x-cms-limit: 20
x-cms-offset: 0
x-cms-has-more: 1
```

## Next Page

Increase `offset` by the number of rows already loaded:

```bash theme={null}
curl "https://api.plato.ae/api/public/cms/products/list?limit=20&offset=20" \
  -H "Authorization: Bearer $PLATO_API_KEY"
```

## Notes

* Lists are scoped to the workspace attached to the API key.
* Unknown field names return `400`.
* Relation expansion stops at `maxDepth`.
* For public pages, select only the fields needed on that page.
