---
title: "List Pages"
method: GET
path: "/v3/portals/{portalId}/pages"
tags: ["Pages"]
---

# List Pages

`GET /v3/portals/{portalId}/pages`

## Request

- Base URL: `https://global.api.konghq.com`
- URL: `https://global.api.konghq.com/v3/portals/{portalId}/pages`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - HTTP bearer
  - HTTP bearer

Returns the tree view of custom pages that have been created for this portal. The full tree is returned in one response; this endpoint is not paginated.

## Path parameters

- `portalId` string, uuid, required

## Query parameters

- `sort` string
- `filter` PortalPagesFilterParameters
  - `id` UuidFieldFilter: Filter using **one** of the following operators: `eq`, `oeq`, `neq`
    - `eq` string: The field exactly matches the provided value.
    - `oeq` string: The field matches any of the provided values.
    - `neq` string: The field does not match the provided value.
  - `slug` StringFieldFilter: Filter using **one** of the following operators: `eq`, `oeq`, `neq`, `contains`, `ocontains`
    - `eq` string: The field exactly matches the provided value.
    - `contains` string: The field contains the provided value.
    - `ocontains` string: The field contains any of the provided values.
    - `oeq` string: The field matches any of the provided values.
    - `neq` string: The field does not match the provided value.
  - `title` StringFieldFilter: Filter using **one** of the following operators: `eq`, `oeq`, `neq`, `contains`, `ocontains`
    - `eq` string: The field exactly matches the provided value.
    - `contains` string: The field contains the provided value.
    - `ocontains` string: The field contains any of the provided values.
    - `oeq` string: The field matches any of the provided values.
    - `neq` string: The field does not match the provided value.
  - `visibility` StringFieldFilter: Filter using **one** of the following operators: `eq`, `oeq`, `neq`, `contains`, `ocontains`
    - `eq` string: The field exactly matches the provided value.
    - `contains` string: The field contains the provided value.
    - `ocontains` string: The field contains any of the provided values.
    - `oeq` string: The field matches any of the provided values.
    - `neq` string: The field does not match the provided value.
  - `created_at` union: Filters on the given datetime (RFC-3339) field value.
    - object
      - `eq` string, date-time, required: Value strictly equals given RFC-3339 formatted timestamp in UTC
    - object
      - `lt` string, date-time, required: Value is less than the given RFC-3339 formatted timestamp in UTC
    - object
      - `lte` string, date-time, required: Value is less than or equal to the given RFC-3339 formatted timestamp in UTC
    - object
      - `gt` string, date-time, required: Value is greater than the given RFC-3339 formatted timestamp in UTC
    - object
      - `gte` string, date-time, required: Value is greater than or equal to the given RFC-3339 formatted timestamp in UTC
  - `updated_at` union: Filters on the given datetime (RFC-3339) field value.
    - object
      - `eq` string, date-time, required: Value strictly equals given RFC-3339 formatted timestamp in UTC
    - object
      - `lt` string, date-time, required: Value is less than the given RFC-3339 formatted timestamp in UTC
    - object
      - `lte` string, date-time, required: Value is less than or equal to the given RFC-3339 formatted timestamp in UTC
    - object
      - `gt` string, date-time, required: Value is greater than the given RFC-3339 formatted timestamp in UTC
    - object
      - `gte` string, date-time, required: Value is greater than or equal to the given RFC-3339 formatted timestamp in UTC

## Response `200`

Tree of custom pages in a portal (nested `children`). Not paginated.

- ListPortalPagesResponse: Tree of custom pages in a portal. Not paginated.
  - `data` PortalPageInfo[], required
    - `id` string, uuid, required: Contains a unique identifier used for this resource.
    - `slug` string, required: The slug of a page in a portal, used to compute its full URL path within the portal hierarchy. When a page has a `parent_page_id`, its full path is built by joining the parent’s slug with its own. For example, if a parent page has the slug `slug1` and this page’s slug is `slug2`, the resulting path will be `/slug1/slug2`. This enables nested page structures like `/slug1/slug2/slug3`.
    - `title` string, required: The title of a page in a portal.
    - `visibility` 'public' | 'private', required: Whether the resource is publicly accessible to non-authenticated users.
    - `status` 'published' | 'unpublished', required: Whether the resource is visible on a given portal. Defaults to unpublished.
    - `description` string
    - `parent_page_id` string, uuid, nullable, required: Pages may be rendered as a tree of files. Specify the `id` of another page as the `parent_page_id` to add some hierarchy to your pages.
    - `children` PortalPageInfo[], required: children of the page
    - `created_at` string, date-time, required: An ISO-8601 timestamp representation of entity creation date.
    - `updated_at` string, date-time, required: An ISO-8601 timestamp representation of entity update date.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `404`: Not Found

## Changes

- **2026-10-15** `7aab863a6daa`: 1 breaking, 2 warning
  - added `#/components/schemas/InvalidParameterMinimumTime, #/components/schemas/InvalidParameterMaximumTime` to the `invalid_parameters/items/` response property `oneOf` list for the response status `400`
  - added the new `key_invalid` enum value to the `invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterStandard]/rule` response property for the response status `400`
  - added the new `unique` enum value to the `invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterStandard]/rule` response property for the response status `400`
- **2026-09-25** `68d43091b84d`: 2 warning
  - added the new `400.00` enum value to the `status` response property for the response status `400`
  - added the new `404.00` enum value to the `status` response property for the response status `404`
- **2026-09-18** `f324fb7610e4`: 2 breaking, 18 info
  - the response's body type changed from no type to `object` for status `400`
  - the response's body type changed from no type to `object` for status `404`
  - removed `#/components/schemas/BaseError, subschema #2` from the response body `allOf` list for the response status `400`
  - removed `#/components/schemas/BaseError, subschema #2` from the response body `allOf` list for the response status `401`
  - …16 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/kong/apis/konnect-api-go-sdk/changes/v3/portals/:portalId/pages/get.md)

---

[API](https://skmtc.dev/kong/apis/konnect-api-go-sdk.md) · [All operations](https://skmtc.dev/kong/apis/konnect-api-go-sdk/llms.txt) · [OpenAPI document](https://skmtc.dev/kong/apis/konnect-api-go-sdk/revisions/7aab863a6daa?raw)
