Skip to main content
Cuando solicitas una lista de elementos a Sorsa API, los resultados se devuelven por páginas. Para recuperar el conjunto completo, recorre las páginas mediante cursores hasta que no queden datos.

Cómo funciona la paginación por cursor

Sorsa utiliza cursores en lugar de números de página. Este método es más fiable para datos sociales, donde se añade contenido continuamente y la paginación por desplazamiento puede omitir o duplicar resultados. El procedimiento es el mismo en todos los endpoints paginados:
  1. Envía la primera solicitud sin cursor.
  2. La respuesta incluye los datos y un campo next_cursor.
  3. Envía ese valor en la siguiente solicitud para obtener la próxima página.
  4. Si next_cursor es null o no aparece, has llegado al final.
No todos los endpoints usan paginación. /info, /tweet-info, /score y /about devuelven un único objeto y no tienen cursor. Algunas listas también se devuelven en una sola respuesta, como /info-batch, /tweet-info-bulk y las listas de análisis de criptomonedas como /top-followers. Comprueba en la referencia si el endpoint admite next_cursor.

Estructura de las respuestas

Las respuestas paginadas siguen uno de estos dos patrones:
En estas respuestas, los datos están en users o tweets. Trata next_cursor como un valor opaco: devuélvelo sin cambios y detente cuando sea nulo, esté vacío o no aparezca. No incrementes el cursor ni lo conviertas a un Number de JavaScript. Consulta las estructuras y los esquemas de objetos en Formato de respuesta.

Cómo enviar los cursores

El campo siempre se llama next_cursor. Solo cambia dónde se envía: como parámetro de consulta en GET y dentro del cuerpo JSON en POST. Endpoints GET, como /followers, /follows y /list-tweets:
Endpoints POST, como /search-tweets, /user-tweets y /comments:

El tamaño de las páginas no es fijo

La cantidad de resultados por página puede variar debido a la naturaleza de los datos de X. Un endpoint que devuelve hasta 20 elementos puede devolver 18, 12 o incluso 5 en una página, aunque haya más datos en la siguiente. No utilices la cantidad de elementos para decidir si has llegado al final. Una página con menos resultados de los esperados no indica que se hayan agotado los datos. Comprueba siempre next_cursor: si existe y no es null, quedan páginas por consultar.

Ejemplos completos de paginación

Estos ejemplos acumulan los resultados en memoria. Para trabajos grandes, guarda cada página, elimina duplicados por ID de cadena y registra un punto de reanudación después de almacenarla. Mantén la misma cuenta, consulta, filtros y orden mientras utilices un cursor. Establece un presupuesto de páginas o solicitudes y detecta cursores repetidos para evitar bucles interminables. Una pausa en un bucle no coordina los demás procesos que comparten la clave. Python: recorrer seguidores (GET)
Python: recorrer resultados de búsqueda (POST)
JavaScript: recorrer seguidores (GET)
JavaScript: recorrer resultados de búsqueda (POST)

Paginación con gestión de errores

En producción, combina la paginación con reintentos para que el fallo de una página no interrumpa toda la recopilación. Consulta la referencia completa en Códigos de error.

Próximos pasos