> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

## Resource: list()

## Article: list()

## Article Link: https://dev.wix.com/docs/sdk/host-modules/editor/pages/list.md

## Article Content:

# list()

Lists the pages that the calling app manages, such as the pages from your app's [site page extensions](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/site-extensions/site-pages/about-site-page-extensions.md).

Each returned page exposes `getPageId()`, which returns the page's stable ID. The ID stays the same across page renames, so it's the identifier to persist if you need to refer back to a specific page.

> **Note:** This method is available for site page extensions. It's not available from a site widget or plugin's settings panel. It rejects there with an internal host error. See the [Pages API introduction](https://dev.wix.com/docs/sdk/host-modules/editor/pages/introduction.md) for details.

## Syntax

```js
function list(): Promise<IReadOnlyPage[]>
```

## Parameters

This method doesn't take any parameters.

## Returns

`Promise<IReadOnlyPage[]>`

The pages managed by the calling app. Each `IReadOnlyPage` exposes:

| Method | Type | Description |
|:---|:---|:---|
| `getPageId()` | `Promise<string \| undefined>` | The page's stable ID. |
| `getTitle()` | `Promise<string>` | The page's title. |
| `getSlug()` | `Promise<string>` | The page's URL slug. |
| `getExtensionId()` | `Promise<string \| undefined>` | The page extension's ID, if the page is a page extension. |
| `equals(other)` | `boolean` | Whether `other` refers to the same page. |

## Example

```js
import { pages } from '@wix/editor';

async function listMyPages() {
  const myPages = await pages.list();

  for (const page of myPages) {
    const pageId = await page.getPageId();
    const title = await page.getTitle();
  }
}
```