# 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 provides metadata about the current page of results and whether additional pages are available. It contains the following fields: - `hasNextPage`: Boolean indicating whether there are more items after the current page - `hasPreviousPage`: Boolean indicating whether there are items before the current page - `startCursor`: Opaque cursor pointing to the first item in the current page - `endCursor`: Opaque cursor pointing to the last item in the current page ## Example ```graphql query { pages(first: 10, after: "eyJpZCI6IjEwIn0=") { edges { node { id title } cursor } pageInfo { hasNextPage hasPreviousPage startCursor endCursor } totalCount } } ``` ## Edge Type The `edges` field contains a list of `PageEdge` objects. Each edge represents a single Page item in the connection and includes: - `node`: The Page object containing the actual data - `cursor`: An opaque string used for pagination, allowing you to request items before or after this specific edge ## Related Types - [PageEdge](/reference/storefront/v1/connections/page-edge) - [Page](/reference/storefront/v1/objects/page) - [PageInfo](/reference/storefront/v1/objects/page-info)