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
pageType: Integer
Default: 1
Use page to choose which page of results to return.
GET /api/v1/organizations/me/memberships?page=2If page is omitted, invalid, or less than 1, the API returns the first page.
count
countType: 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=100The count parameter is used by endpoints such as:
| Endpoint | Pagination parameters |
|---|---|
GET /memberships | page, count |
GET /payments | page, count |
GET /groups | page, count |
limit
limitType: 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=25Endpoints 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=100Metadata 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=100When 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.
