Pagination
Pagination is available on all measurement, device, and supply order endpoints. Use of pagination enables you to fetch large datasets in a performant manner.
The following API endpoints will use pagination by default:
hwi/patients/{id}/measurements/hwi/hwi-devices/{id}/measurements/hwi/hwi-devices/hwi/hwi-hardware-uuid-logs/hwi/hwi-replacements/asr/supply-requests/
How to Use Pagination
Section titled “How to Use Pagination”Add ?page=1 to any affected endpoint to enable pagination.
GET /clients/{domain}/hwi/patients/{id}/measurements/?page=1&page_size=100Parameters
Section titled “Parameters”| Parameter | Required | Default | Max | Description |
|---|---|---|---|---|
page | Yes (to enable pagination) | None | None | Page number. Must be passed to activate pagination. |
page_size | No | 100 | 1000 | Number of results per page. |
Response Formats
Section titled “Response Formats”Adding ?page= to your request changes the shape of the response. Non-paginated and paginated requests return different formats.
Non-Paginated (default)
Section titled “Non-Paginated (default)”Without ?page=, results are returned as a flat JSON array. This behavior is unchanged from today. Starting May 5, 2026, this array will be truncated at 1,000 results (or 30 days for measurement endpoints).
[ { "id": 1, "metric_type": "blood_pressure", ... }, { "id": 2, "metric_type": "blood_pressure", ... }, ...]Paginated
Section titled “Paginated”When ?page= is included, the response is wrapped in a pagination object.
{ "count": 255, "next": "https://api.tenovi.com/clients/{client_domain}/hwi/patients/{id}/measurements/?page=3&page_size=100", "previous": "https://api.tenovi.com/clients/{client_domain}/hwi/patients/{id}/measurements/?page=1&page_size=100", "results": [...]}Iterating Through Pages
Section titled “Iterating Through Pages”Paginated responses include a next field. When next is not null, use it directly as your next request URL. Continue until next returns null.
Release Timeline
Section titled “Release Timeline”Tenovi will be releasing this feature in two phases:
- Phase 1 - April 13, 2026: Pagination available on all affected endpoints (opt-in, non-breaking)
- Phase 2 - May 5, 2026: Response length defaults enforced on all affected endpoints (breaking)
Phase 1 - April 13, 2026
Section titled “Phase 1 - April 13, 2026”Non-Enforced, Opt-in, Non-Breaking
No changes to your existing requests. If you want to start using pagination now, add ?page=1 to your request. Use ?page_size= to control result size (default: 100, max: 1000). Iterate using the next field in the response.
GET /clients/{domain}/hwi/patients/{id}/measurements/?page=1&page_size=100Phase 2 - May 5, 2026
Section titled “Phase 2 - May 5, 2026”Enforced Defaults, Breaking
For measurement endpoints, if no time range or pagination is specified, the response will default to only include measurements from the last 30 days. Requests without pagination that span more than 30 days will be truncated at 1,000 results.
For hwi-devices, hwi-hardware-uuid-logs, and hwi-replacements non-paginated responses will be truncated at 1,000 results.
Non-Paginated Requests (Phase 2 Defaults)
Section titled “Non-Paginated Requests (Phase 2 Defaults)”For non-paginated requests (no ?page= parameter), the response remains a flat JSON array. However, the following limits apply:
Measurement Endpoints
- If no time range is specified, results default to the last 30 days.
- If the time range exceeds 30 days, the flat array is truncated at 1,000 results.
Device, Log, and Supply Endpoints
- The flat array is truncated at 1,000 results.
To retrieve complete datasets beyond these limits, adopt pagination (see How to Use Pagination).
Impacted API Endpoints & Default Behaviour
Section titled “Impacted API Endpoints & Default Behaviour”| Endpoint | Default Behavior - May 5, 2026 |
|---|---|
GET /clients/{client_domain}/hwi/patients/{id}/measurements/ | Last 30 days if no time range specified |
GET /clients/{client_domain}/hwi/hwi-devices/{id}/measurements/ | Last 30 days if no time range specified |
GET /clients/{client_domain}/hwi/hwi-devices/ | Truncated at 1,000 results |
GET /clients/{client_domain}/hwi/hwi-hardware-uuid-logs/ | Truncated at 1,000 results |
GET /clients/{client_domain}/hwi/hwi-replacements/ | Truncated at 1,000 results |
GET /clients/{client_domain}/asr/supply-requests/ | Truncated at 1,000 results |
Timestamp Filtering
Section titled “Timestamp Filtering”If you need to backfill historical data before the pagination goes live by default, timestamp filtering is already available on measurement endpoints. You can pull data in time-based chunks without waiting for pagination to go live. Example of timestamp filtering can be found on our Backfill Measurement Data Recipe.