Paginate with Record Connections

API v56.0 and later

To retrieve more than 200 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.

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

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

    The initial query results can return any number of records up to the number you specify in the first argument. For example, if you request five records and the initial query result returns four records, use the after argument to page to the remaining record.

  • 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.

The query results are as follows.

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

The query results are as follows.

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 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: