# ArticleConnection A connection to a list of Article items. ## Connection Structure ```graphql type ArticleConnection { edges: [ArticleEdge] nodes: [Article] pageInfo: PageInfo! totalCount: Int } ``` ## Pagination Arguments | Argument | Type | Description | |----------|------|-------------| | first | Int | Returns the first n items from the connection | | last | Int | Returns the last n items from the connection | | before | String | Returns items before the specified cursor | | after | String | Returns items after the specified cursor | ## PageInfo Structure The `pageInfo` object contains pagination state information. It includes fields to determine if there are more items available in the connection and provides cursors for fetching additional pages. The `pageInfo` object is required and will always be present in the response. ## Example ```graphql query { articles(first: 10, after: "eyJkaXJlY3Rpb24iOiJhZnRlciIsImxhc3RJZCI6IjEyMzQ1In0=") { edges { cursor node { id title } } nodes { id title } pageInfo { hasNextPage hasPreviousPage startCursor endCursor } totalCount } } ``` ## Edge Type An `ArticleEdge` represents a single edge in the ArticleConnection. Each edge contains a `node` field that holds the actual Article object, and a `cursor` field that represents the position of this edge in the connection. Cursors are opaque strings that can be used with pagination arguments to fetch items before or after a specific position. ## Related Types - [ArticleEdge](/reference/storefront/v1/connections/article-edge) - [Article](/reference/storefront/v1/objects/article) - [PageInfo](/reference/storefront/v1/objects/page-info)