Analytics API paging returns duplicate rows across pages

Pulling conversation metrics via GET /api/v2/analytics/conversations/details/query in Kotlin. Setting pageSize=1000 and incrementing pageNumber. The pageCount reports 5, but rows repeat between page 2 and 3. Is the API cursor-based or offset-based? My code assumes simple pagination:

val response = client.get("
/api/v2/analytics/conversations/details/query?pageSize=1000&pageNumber=$i"
)

Docs are vague on handling large datasets. What’s the correct way to paginate without duplicates?