Paginate with Record Connections

API v56.0 and later

Paging uses the first and after arguments based on relay record connections, which follows the specification for forward pagination arguments.

To retrieve more than 2,000 records, we recommend using an upper-bound limit. Using pagination without an upper-bound limit lets you retrieve up to 4,000 records only. In API v60.0 and later, you can switch from record connection pagination to upper-bound limit pagination, allowing you to retrieve more than 4,000 records.

  • The first argument is the maximum number of records to fetch as part of your query.

  • The after argument is a cursor used to page through the result set. Use a returned cursor to continue paging through the result set from that cursor position. The after argument is typically set to the value of the endCursor field on the relay connection's PageInfo. If you want to page from a particular element in the result set, use the cursor field from a relay edge.

This example returns the next 5 results after the djE6OQ== end cursor from the previous example.

The query results are as follows.

The previous query is similar to the following SOQL statement.

LIMIT and OFFSET clauses can work for up to 2,000 results only.

Here's an example query for accounts with cursors using variables.

The query returns the account IDs and names with cursor information.

You can page through the child records on a queried parent record. Paging on the parent and children records at the same time isn't supported. The child relationships records in the response are paginated and include cursor and pagination information. Use the first argument to specify the number of records to return. The default is 10.

The query results are as follows.

The previous query is similar to the following SOQL statement.

The maximum number of child relationship records to return can be specified using the first argument. However, if supplying a cursor value to the after argument of a child relationship, then the parent record must be limited to a single result. For example:

LIMIT Clause