# Paginate Results

| AVAILABLE API VERSION |
| --------------------- |
| API v56.0 and later   |

GraphQL API returns the first 10 results of a query by default. Based on the [GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm), the Connection object contains the returned object and the `node` (account, for example), `totalCount`, and `resultPageCount` objects. Additionally, the `pageInfo` object contains cursor information and if there are more results to return.

Within [the `RecordQuery` type](/docs/platform/graphql/guide/query-record-objects.md), each field is a [Relay Record Connection](https://relay.dev/graphql/connections.htm) type. Connections enable paging through the result set with ease. Connections are made up of four types:

- `Connection`: The root object for the paged collection, which ties together the result set with the `PageInfo` type. The `Connection` type is specific to the type of resource being paged, for example when paging through `Account` objects the `Connection` type is `AccountConnection`.
- `Edge`: Ties together the actual record result type, for example `Account`. Includes a cursor that points to the specific location in the result set and the `Node` type.
- `Node`: The actual resource being paged.
- `PageInfo`: Contains relative position information, which shows where in the entire result set the current page is located. The `PageInfo` type is the same for every `Connection` type.

Use pagination several ways.

- Paginate using [an upper-bound limit](/docs/platform/graphql/guide/paginate-use-upperbound.md). Available in API version 59.0 and later.
- Paginate by [switching from relay record pagination to upper-bound limit pagination](/docs/platform/graphql/guide/paginate-use-upperbound.md#use-the-upper-bound-limit-in-a-subsequent-query). Available in API version 60.0 and later.
- Paginate using GraphQL [relay record connections](/docs/platform/graphql/guide/paginate-use.md).
