Paginación
Toda lista se pagina igual: limit (1 a 100, por defecto 50) y un cursor opaco. La respuesta trae data y nextCursor; cuando nextCursor es null, no hay más.
GET /api/v1/documents?limit=100
GET /api/v1/documents?limit=100&cursor=eyJvZmZzZXQiOjEwMH0
{
"data": [ … ],
"nextCursor": "eyJvZmZzZXQiOjEwMH0"
}
El cursor es opaco a propósito. No lo construyas ni lo interpretes: su forma puede cambiar sin aviso. Guarda el que recibiste y devuélvelo tal cual.
Recorrer todo
let cursor
do {
const r = await fetch(`https://www.datrus.cl/api/v1/documents?limit=100${cursor ? '&cursor=' + cursor : ''}`, { headers })
const page = await r.json()
for (const doc of page.data) procesar(doc)
cursor = page.nextCursor
} while (cursor)
El cliente @datrus/api lo hace por ti con todos('/documents', { limit: 100 }), un iterador asíncrono. Ver herramientas.