links.next hasta que sea null:
Trata el cursor como opaco
No parsees, construyas ni guardes un cursor. Su contenido es un detalle de implementación y va a cambiar cuando los endpoints pasen a paginación por keyset — perolinks.next seguirá funcionando, que es el punto de darte una
URL en vez de un offset.
Pasar un cursor que construiste tú, o uno de otro endpoint, devuelve
400 invalid_cursor.
No hay un total
La respuesta te dice si existe otra página (meta.has_more), no cuántos
registros hay en total. Contar el conjunto filtrado significaría un segundo
scan completo en cada página, que se pone más lento justo cuando el workspace
crece.
Si necesitas un conteo, pagina y cuenta lo que recibes.
Ordenamiento
Pasasort para ordenar una colección, por ejemplo sort=-created_at para
los más nuevos primero. Mantén sort idéntico en cada página de un mismo
recorrido — cambiarlo a mitad invalida el cursor.
Cómo elegir un limit
limit por defecto es 25 y acepta hasta 100. Páginas más grandes significan
menos round trips; páginas más chicas, respuestas individuales más rápidas.
Para un sync masivo, 100 suele ser lo correcto.