Pagination
All list endpoints in the Patholytix API return paginated results. This guide explains the pagination parameters and response format.
Request parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 0 | Zero-based page number. Page 0 is the first page. |
size | integer | 10 | Number of items per page. Maximum is 20. |
sort | string | varies | Sort field. Valid values are documented per endpoint. |
sortDirection | integer | 1 | 1 for ascending, -1 for descending. |
Response format
All list endpoints return a page result object:
{
"elements": [ ... ],
"totalElements": 143,
"totalPages": 15,
"pageNumber": 0,
"pageSize": 10
}
| Field | Type | Description |
|---|---|---|
elements | array | The items on this page |
totalElements | integer | Total number of matching items across all pages |
totalPages | integer | Total number of pages |
pageNumber | integer | The current page (zero-based) |
pageSize | integer | The 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 value | Description |
|---|---|
name | Sort by study name (default) |
createdDate | Sort by creation timestamp |
updatedDate | Sort 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.