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:- Envía la primera solicitud sin cursor.
- La respuesta incluye los datos y un campo
next_cursor. - Envía ese valor en la siguiente solicitud para obtener la próxima página.
- Si
next_cursoresnullo no aparece, has llegado al final.
/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: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 llamanext_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:
/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 siemprenext_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)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
- Límites de solicitudes: cómo respetar las 20 solicitudes por segundo al recorrer grandes conjuntos de datos.
- Códigos de error: gestión de errores 429 y otros fallos en los bucles de paginación.
- Formato de respuesta: esquemas completos de User y Tweet.