Skip to main content
Toda colección devuelve el mismo sobre:
links.next es un cursor. Devuélvelo en el parámetro cursor — en un POST /search, como cursor en el cuerpo — hasta que sea null:

Las páginas no se mueven mientras los registros cambian

Contactos, organizaciones y negocios se paginan a partir del último registro que recibiste, no por posición. Un registro creado o eliminado durante el recorrido nunca hace que veas un registro dos veces ni que te saltes uno, y un registro editado a mitad de camino vuelve a aparecer más adelante con sus valores nuevos. Eso es lo que hace seguro un sync con updated_since — mira Sincronización.

Trata el cursor como opaco

No parsees, construyas ni guardes un cursor más allá de un recorrido. Su contenido es un detalle de implementación y cambia sin aviso. Un cursor solo vale para la consulta que lo generó. Envíalo con los mismos filtros y el mismo sort; cualquier otra cosa — un cursor que armaste tú, uno de otro endpoint o uno reutilizado con otros filtros — 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 recorrido completo en cada página, que se vuelve más lento justo cuando el workspace crece. Si necesitas un conteo, pagina y cuenta lo que recibes.

Ordenamiento

Pasa sort para ordenar una colección, por ejemplo sort=-created_at para los más nuevos primero o sort=updated_at para recorrer los cambios en orden. Antepón - a la clave para orden descendente; los registros sin valor quedan al final en ambos sentidos.

Cómo elegir un limit

limit vale 50 por defecto y acepta hasta 200. Páginas más grandes significan menos idas y vueltas; páginas más chicas, respuestas individuales más rápidas. Para un sync masivo, 200 suele ser lo correcto.