Skip to main content

Pagination

All list endpoints in the Patholytix API return paginated results. This guide explains the pagination parameters and response format.

Request parameters

ParameterTypeDefaultDescription
pageinteger0Zero-based page number. Page 0 is the first page.
sizeinteger10Number of items per page. Maximum is 20.
sortstringvariesSort field. Valid values are documented per endpoint.
sortDirectioninteger11 for ascending, -1 for descending.

Response format

All list endpoints return a page result object:

{
"elements": [ ... ],
"totalElements": 143,
"totalPages": 15,
"pageNumber": 0,
"pageSize": 10
}
FieldTypeDescription
elementsarrayThe items on this page
totalElementsintegerTotal number of matching items across all pages
totalPagesintegerTotal number of pages
pageNumberintegerThe current page (zero-based)
pageSizeintegerThe page size used for this response

Worked example

List studies — first page of 10:

curl "https://api.dev.patholytix.com/api/v1/studies?page=0&size=10" \
-H "Authorization: Bearer YOUR_TOKEN"

Response:

{
"elements": [
{
"id": "5cd97ae75fdbf7000143cb30",
"name": "Phase II Oncology Study",
...
}
],
"totalElements": 25,
"totalPages": 3,
"pageNumber": 0,
"pageSize": 10
}

Get the next page:

curl "https://api.dev.patholytix.com/api/v1/studies?page=1&size=10" \
-H "Authorization: Bearer YOUR_TOKEN"

Iterating all pages

import requests

def get_all_studies(token: str) -> list:
base_url = "https://api.dev.patholytix.com/api"
headers = {"Authorization": f"Bearer {token}"}
page = 0
size = 20
all_items = []

while True:
resp = requests.get(
f"{base_url}/v1/studies",
params={"page": page, "size": size},
headers=headers,
)
resp.raise_for_status()
data = resp.json()

all_items.extend(data["elements"])

if page >= data["totalPages"] - 1:
break

page += 1

return all_items

Sorting

Endpoints support sorting by multiple fields. Check the API Reference for the valid sort values per endpoint. For example, listing studies supports:

sort valueDescription
nameSort by study name (default)
createdDateSort by creation timestamp
updatedDateSort by last update timestamp
# Most recently updated studies first
curl "https://api.dev.patholytix.com/api/v1/studies?sort=updatedDate&sortDirection=-1" \
-H "Authorization: Bearer YOUR_TOKEN"

Page size limits

The maximum size per request is 20. Requests exceeding this limit will receive a 400 Bad Request response. If you need to retrieve large datasets, iterate through pages as shown in the Python example above.