---
title: "List all pages in a nation"
method: GET
path: "/api/v2/pages"
tags: ["Pages"]
---

# List all pages in a nation

`GET /api/v2/pages`

## Request

- Base URL: `https://yournation.nationbuilder.com`
- URL: `https://yournation.nationbuilder.com/api/v2/pages`
- Auth: HTTP bearer

Lists all pages

## Query parameters

- `page[number]` string
- `page[size]` string

## Response `200`

A page of matching pages.

- PageIndexResponse: The JSON:API top-level document shape for paginated collection responses, with resource objects under data and pagination links.
  - `data` PageResponseData[], required: The page of resource objects for this collection; each resource binds its concrete item schema here via allOf composition.
    - `id` string, required: Unique identifier of the resource.
    - `type` 'pages', required: The JSON:API resource type.
    - `attributes` object: The read-only attributes of a page.
      - `author_id` string, nullable: The author of the page.
      - `excerpt` string, nullable: Longer page description used for search engine optimization.
      - `external_id` string, nullable: Optional reference for pages imported from an external service.
      - `headline` string, nullable: This is a header rendered above the page content.
      - `name` string: The name of the page.
      - `page_type_name` 'Basic': The name of the type of page to create. Must be 'Basic' for this endpoint.
      - `parent_id` string, nullable: The parent page ID (null for top-level pages).
      - `permission_level` 'anyone' | 'logged_in' | 'members' | 'control_panel_users' | 'admins': The permission level required to view this page. Options: "anyone" (public access), "logged_in" (any authenticated user), "members" (site members only), "control_panel_users" (users with control panel access), "admins" (site administrators only).
      - `site_id` string: The site this page belongs to.
      - `slug` string: A unique identifier that also makes up the url of the page. www.yoursite.com/[slug]
      - `status` 'archived' | 'deleted' | 'expired' | 'hidden' | 'published' | 'rule_violated' | 'unlisted': The page status - describing the visibility of the page.
      - `title` string: Brief page description seen on search engines.
      - `ancestors_permission_level` string, nullable: The most restrictive permission level inherited from parent pages in the hierarchy. Returns null if the page has no parent.
      - `effective_permission_level` string: The actual permission level that will be enforced for this page. This is the most restrictive level between the page itself and its ancestors, ensuring users need the highest required access level to view the page.
      - `parent_slug` string, nullable: The parent page slug (null for top-level pages).
      - `published_at` string, date-time, nullable: When this page was published.
      - `url_path` string: URL to the page.
  - `links` PaginationLinks: JSON:API pagination links for the pages of a collection. A key whose page is unavailable, or that the server's pagination strategy does not provide, is omitted or null.
    - `self` string: Link to the current page.
    - `first` string, nullable: Link to the first page.
    - `last` string, nullable: Link to the last page.
    - `prev` string, nullable: Link to the previous page.
    - `next` string, nullable: Link to the next page.
  - `included` Resource[]: Sideloaded resources requested via the include query parameter. Each entry is a full resource object whose shape is documented under its own resource type.
    - `id` string, required: Unique identifier of the resource.
    - `type` string, required: The JSON:API resource type.
    - `attributes` object: The attributes of the resource, as documented for its resource type.
    - `relationships` object: References from this resource to other resources in the document.
  - `meta` object: Non-standard information about the document, such as requested statistics. Empty unless the endpoint has metadata to convey.

## Other responses

- `401`: The access token is missing, expired, or not authorized to access this resource.
- `429`: The access token has exceeded its request quota for the current rate-limit window.

## Changes

- **2026-11-05** `d5c88ca497ac`: 4 breaking, 1 warning, 4 info
  - for the `query` request parameter `page[number]`, default value `1` was added
  - for the `query` request parameter `page[size]`, default value `20` was added
  - the response's body type changed from `object` to no type for status `200`
  - removed the required property `data` from the response with the `200` status
  - …5 more
- **2026-02-14** `31995b0a1e61`: 5 info
  - added the optional property `data/items/attributes/allOf[#/components/schemas/page_read_only_attributes]/ancestors_permission_level` to the response with the `200` status
  - added the optional property `data/items/attributes/allOf[#/components/schemas/page_read_only_attributes]/effective_permission_level` to the response with the `200` status
  - added the optional property `data/items/attributes/allOf[#/components/schemas/page_read_only_attributes]/parent_slug` to the response with the `200` status
  - added the optional property `data/items/attributes/allOf[#/components/schemas/page_read_write_attributes]/parent_id` to the response with the `200` status
  - …1 more

[Operation history](https://skmtc.dev/nationbuilder/apis/nationbuilder-v2-api/changes/api/v2/pages/get.md)

---

[API](https://skmtc.dev/nationbuilder/apis/nationbuilder-v2-api.md) - [All operations](https://skmtc.dev/nationbuilder/apis/nationbuilder-v2-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nationbuilder/apis/nationbuilder-v2-api/revisions/d5c88ca497ac?raw)
