--- title: pages - GraphQL Admin description: >- A paginated list of pages from the online store. [`Page`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page) objects are content pages that merchants create to provide information to customers, such as "About Us", "Contact", or policy pages. The query supports filtering with a [search query](https://shopify.dev/docs/api/usage/search-syntax) and sorting by various criteria. Advanced filtering is available through saved searches using the [`savedSearchId`](https://shopify.dev/docs/api/admin-graphql/latest/queries/pages#arguments-savedSearchId) argument. api_version: 2026-01 api_name: admin type: query api_type: graphql source_url: html: 'https://shopify.dev/docs/api/admin-graphql/latest/queries/pages' md: 'https://shopify.dev/docs/api/admin-graphql/latest/queries/pages.md' --- # pages query A paginated list of pages from the online store. [`Page`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page) objects are content pages that merchants create to provide information to customers, such as "About Us", "Contact", or policy pages. The query supports filtering with a [search query](https://shopify.dev/docs/api/usage/search-syntax) and sorting by various criteria. Advanced filtering is available through saved searches using the [`savedSearchId`](https://shopify.dev/docs/api/admin-graphql/latest/queries/pages#arguments-savedSearchId) argument. ## PageConnection arguments [PageConnection!](https://shopify.dev/docs/api/admin-graphql/latest/connections/PageConnection) * after * before * first * last * query * reverse * savedSearchId * sortKey *** ## Possible returns * edges * nodes * pageInfo *** ## Examples * ### Retrieves a list of pages #### Query ```graphql query PageList { pages(first: 10) { edges { node { id } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } } ``` #### cURL ```bash curl -X POST \ https://your-development-store.myshopify.com/admin/api/2026-01/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "query PageList { pages(first: 10) { edges { node { id } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } }" }' ``` #### React Router ```javascript import { authenticate } from "../shopify.server"; export const loader = async ({request}) => { const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql query PageList { pages(first: 10) { edges { node { id } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } }`, ); const json = await response.json(); return json.data; } ``` #### Ruby ```ruby session = ShopifyAPI::Auth::Session.new( shop: "your-development-store.myshopify.com", access_token: access_token ) client = ShopifyAPI::Clients::Graphql::Admin.new( session: session ) query = <<~QUERY query PageList { pages(first: 10) { edges { node { id } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } } QUERY response = client.query(query: query) ``` #### Node.js ```javascript const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: `query PageList { pages(first: 10) { edges { node { id } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } }`, }); ``` #### Response ```json { "pages": { "edges": [ { "node": { "id": "gid://shopify/Page/602767277" } }, { "node": { "id": "gid://shopify/Page/905192165" } } ], "pageInfo": { "endCursor": "eyJsYXN0X2lkIjo5MDUxOTIxNjUsImxhc3RfdmFsdWUiOiI5MDUxOTIxNjUifQ==", "hasNextPage": false, "hasPreviousPage": false, "startCursor": "eyJsYXN0X2lkIjo2MDI3NjcyNzcsImxhc3RfdmFsdWUiOiI2MDI3NjcyNzcifQ==" } } } ```