Skip to content

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:

Add ?page=1 to any affected endpoint to enable pagination.

GET /clients/{domain}/hwi/patients/{id}/measurements/?page=1&page_size=100
ParameterRequiredDefaultMaxDescription
pageYes (to enable pagination)NoneNonePage number. Must be passed to activate pagination.
page_sizeNo1001000Number of results per page.

Adding ?page= to your request changes the shape of the response. Non-paginated and paginated requests return different formats.

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", ... },
...
]

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": [...]
}

Paginated responses include a next field. When next is not null, use it directly as your next request URL. Continue until next returns null.

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)

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=100

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.

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”
EndpointDefault 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

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.