---
title: "content.list()"
description: "List lightweight entries for every document, read straight from the manifest."
canonical_url: "https://content.comark.dev/reference/content/list"
---
# content.list()

> List lightweight entries for every document, read straight from the manifest.

## `content.list()`

Returns the lightweight [`ContentListFile`](https://content.comark.dev/reference/types/content#contentlistfiletdata) entry (no parsed `nodes`) for every document, read straight from the manifest, so it never parses a body.

Only `document` entries are returned. When the instance name is in the [generated registry](https://content.comark.dev/guide/typescript), each item's `data` is narrowed to that instance's type.

**Returns:** `Promise<`[`ContentListFile[]`](https://content.comark.dev/reference/types/content#contentlistfiletdata)`>`

```ts [usage.ts]
const all = await content.list() // every document in this instance
all[0].data.title // narrowed by the generated types
```

Trim which `data` fields are kept with [`addListingFields`](https://content.comark.dev/reference/content/add-listing-fields). For filtered, sorted, paginated queries over `data.*`, use the [`sqlQuery`](https://content.comark.dev/plugins/built-in/sql-query) plugin's `content.query()`. With the [`references`](https://content.comark.dev/plugins/built-in/references) plugin installed, it also accepts `{ populate }` to inline reference fields.

## Usage

```ts [usage.ts]
const posts = await blog.list()
const published = posts.filter((post) => !post.data.draft)
```


## Sitemap

See the full [sitemap](https://content.comark.dev/sitemap.md) for all pages.
