# PageConnection A connection to a list of Page items. ## Connection Structure ```graphql type PageConnection { edges: [PageEdge] nodes: [Page] pageInfo: PageInfo! totalCount: Int } ``` ## Pagination Arguments | Argument | Type | Description | |----------|------|-------------| | first | Int | Returns the first n items from the list | | last | Int | Returns the last n items from the list | | before | String | Returns items before the specified cursor | | after | String | Returns items after the specified cursor | ## PageInfo Structure The `pageInfo` object contains pagination metadata about the current result set. It includes the following fields: - `hasNextPage` (Boolean!): Indicates whether there are more items after the current page - `hasPreviousPage` (Boolean!): Indicates whether there are items before the current page - `startCursor` (String): The cursor of the first item in the current page - `endCursor` (String): The cursor of the last item in the current page ## Example ```graphql query { pages(first: 10, after: "cursor123") { edges { node { id title } cursor } pageInfo { hasNextPage hasPreviousPage startCursor endCursor } totalCount } } ``` ## Edge Type The `PageEdge` type represents a single item in the connection. Each edge contains: - `node`: The actual Page object containing page data - `cursor`: An opaque string used for pagination, allowing you to request items before or after this position ## Related Types - [PageEdge](/reference/storefront/1.3.0/connections/page-edge) - [Page](/reference/storefront/1.3.0/objects/page) - [PageInfo](/reference/storefront/1.3.0/objects/page-info)