Skip to main content

Formato de respuesta: esquemas de User y Tweet

Sorsa API devuelve todos los datos en JSON. Esta página describe la estructura de las respuestas, los objetos principales, los tipos de campos y la paginación.

Convenciones

Estas reglas se aplican en toda la API. Los IDs son cadenas. Los IDs de X/Twitter (id, conversation_id_str, in_reply_to_tweet_id y otros) se devuelven como cadenas, no como enteros. X utiliza IDs Snowflake de 64 bits que superan Number.MAX_SAFE_INTEGER de JavaScript. Las cadenas evitan la pérdida silenciosa de precisión en navegadores, Node.js y lenguajes que representan los números JSON en coma flotante. Las fechas principales son cadenas ISO 8601. Los campos created_at de User y Tweet utilizan valores como 2026-03-06T12:00:00Z. Consulta el esquema para otras fechas; no supongas que las verificaciones o relaciones utilizan el mismo formato. Los booleanos son estrictos. Indicadores como verified, is_reply, protected y can_dm son true o false, nunca 0/1 ni "true"/"false". Campos nulos y ausentes. Distingue un valor ausente de un cero medido o de false. Al recorrer arrays opcionales como bio_urls y pinned_tweet_ids, normaliza los valores nulos o ausentes a listas vacías: user.get("bio_urls") or [] en Python o user.bio_urls ?? [] en JavaScript. Los modelos compactos omiten campos del objeto User completo.

Estructuras contenedoras de respuesta

Los endpoints de un único objeto, como /info y /tweet-info, lo devuelven directamente en el nivel superior. Los endpoints de listas utilizan estas estructuras. UsersResponse: utilizada por /followers, /follows, /verified-followers, /retweeters, /search-users, /list-members y /list-followers. /community-members utiliza las mismas claves, pero devuelve objetos compactos CommunityUser.
TweetsResponse: utilizada por /user-tweets, /comments, /quotes, /search-tweets, /mentions, /list-tweets, /community-tweets y /community-search-tweets.
FollowersResponse: utilizada por /new-followers-7d, /new-following-7d y /top-following. /top-followers utiliza TopFollowersResponse, con perfiles compactos y un campo score.
FollowersResponse no incluye next_cursor: devuelve todos los resultados en una sola respuesta.

El objeto User

Representa el perfil de una cuenta de X/Twitter. /info lo devuelve directamente; los endpoints de listas lo incluyen como elemento de un array y cada objeto Tweet lo contiene en el campo user.

El objeto Follower

Amplía el objeto User con un campo adicional. Lo devuelven /new-followers-7d, /new-following-7d y /top-following. /top-followers devuelve un modelo compacto diferente con score.

El objeto Tweet

Contiene el texto completo, los metadatos, las métricas de interacción y las relaciones anidadas de una publicación. /tweet-info lo devuelve directamente; los endpoints de listas lo incluyen como elemento de un array.
Campos de contenido Métricas de interacción Contexto del hilo y de las respuestas Objetos anidados quoted_status y retweeted_status contienen objetos Tweet completos, con sus propios campos user, entities y métricas. Así obtienes los datos relacionados en una sola llamada, sin solicitudes adicionales.

El objeto TweetEntity

Cada elemento de entities representa un archivo multimedia adjunto o un enlace insertado en la publicación.

Paginación por cursor

Los endpoints de listas paginadas utilizan cursores. Las consultas por lotes y las listas de análisis de criptomonedas descritas antes no los utilizan. La paginación por cursor es más fiable que la basada en desplazamientos cuando se añade contenido continuamente. Procedimiento:
  1. Envía la solicitud inicial sin cursor.
  2. Recibirás los datos y un campo next_cursor.
  3. Incluye 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.
Los endpoints GET reciben el cursor como parámetro de consulta:
Los endpoints POST lo reciben en el cuerpo JSON:
Ejemplo en Python: recorrer todos los seguidores
Consulta estrategias y consejos de rendimiento en Paginación.

Próximos pasos