Pagination

Overview

To enhance API performance, several collection endpoints support pagination. To use this feature add a page and, optionally, a per parameter to the URL's query string. For example, the following url...

https://api.gusto.com/v1/companies/abc123/employees?page=2&per=5

...will return the second page of five employees of the company identified by the UUID abc123. If the per parameter is not provided, the API will return 25 records per page by default, unless otherwise specified.

Information on whether a given endpoint supports pagination parameters can be found on its respective page in the documentation.

Paginated responses

If pagination parameters are provided in the request, some metadata about the paginated collection will be returned in the response's headers.

X-Page: 3
X-Total-Count: 542
X-Total-Pages: 22
X-Per-Page: 25

Here's a summary of the meaning of each of these headers:

HeaderDescriptionExample
X-PageThe current page being returned3
X-Total-CountThe total number of records in the full collection542
X-Total-PagesTotal number of pages for this collection22
X-Per-PageNumer of records currently being returned per page25

Cursor based pagination

Some of our APIs support cursor based pagination in order to ensure more consistent results on some of our more real-time data models. Rather than a page and per parameter, cursor based pagination will use a start_after_uuid and limit parameter. The following API will return the next 5 records after the given UUID:

https://api.gusto.com/v1/events?starting_after_uuid=10ac74e7-d6f0-46c0-9697-8ec77ab475ba&limit=5

Cursor paginated APIs will return the following header

X-Has-Next-Page: true | false

A value of true indicates that there is another page of results. When true, clients may use the UUID of the last record in the response as the starting_after_uuid value to fetch the next page of results.