Pagination

Learn more about how Join It's API handles pagination

Pagination

Some Join It API endpoints return lists of objects, such as Memberships or Payments. These endpoints support pagination so you can request results in smaller batches instead of loading every record at once.

Join It uses page-number pagination. The first page is page=1.

Pagination Parameters

Paginated endpoints accept pagination values as query parameters.

page

Type: Integer
Default: 1

Use page to choose which page of results to return.

GET /api/v1/organizations/me/memberships?page=2

If page is omitted, invalid, or less than 1, the API returns the first page.


count

Type: Integer
Default: 50
Maximum: 1000

Most object-list endpoints use count to control how many records are returned per page.

GET /api/v1/organizations/me/memberships?page=1&count=100

The count parameter is used by endpoints such as:

EndpointPagination parameters
GET /membershipspage, count
GET /paymentspage, count
GET /groupspage, count

limit

Type: Integer
Default: 25
Maximum: 100

Some newer reporting-style endpoints use limit instead of count.

GET /api/v1/organizations/me/org_metrics?page=1&limit=25

Endpoints that use limit return pagination metadata in the response.

Response Formats

Array responses

Most paginated list endpoints return an array of objects.

[
  {
    "_id": "abc123",
    "email": "[email protected]",
    "status": 100
  }
]

These responses do not include a total count or total page count. To retrieve all records, continue requesting pages until the response contains fewer records than your requested count, or until it returns an empty array.

Example:

GET /api/v1/organizations/me/memberships?page=1&count=100
GET /api/v1/organizations/me/memberships?page=2&count=100
GET /api/v1/organizations/me/memberships?page=3&count=100

Metadata responses

Some endpoints return a pagination object with results, page, limit, and totalPages.

{
  "results": [
    {
      "organization_id": "abc123",
      "metric_period_key": 202405,
      "active_memberships": 125
    }
  ],
  "page": 1,
  "limit": 25,
  "totalPages": 4
}

When no records match the request, results will be an empty array and totalPages will be 0.

Filtering and Pagination

Filters are applied before pagination.

For example, this request returns the second page of active memberships, with up to 100 records per page:

GET /api/v1/organizations/me/memberships?status=100&page=2&count=100

When fetching multiple pages, keep the same filters on every request so each page belongs to the same result set.

Best Practices

Use the largest page size that makes sense for your integration, up to the endpoint maximum.

For full syncs, start at page=1 and keep requesting the next page until there are no more results.

For recurring syncs, combine pagination with filters such as status, date range, or membership type where available.

Avoid assuming that every list endpoint uses the same page-size parameter. Check the endpoint documentation for whether it expects count or limit.