Objetos
Las formas referenciadas arriba, campo por campo. Los tipos son informales: string[] es un array de cadenas, A | null puede estar ausente.
Sobre
Presente en cada evento, en el flujo, en GET /v1/events y en las entregas por webhook.
| Campo | Tipo | Significado |
|---|---|---|
v | int | Versión del sobre. Hoy, 1 |
t | string | Tipo de evento, de la tabla siguiente |
op | create | update | delete | create, update (enriquecimiento del mismo id) o delete |
id | string | Identidad estable. Deduplica por esto |
ts | int (ms) | Cuándo ocurrió en X, en ms desde la época Unix. X no indica cuándo cambió un perfil, cuándo se siguió o dejó de seguir a alguien, cuándo llegó un seguidor verificado ni cuándo se borró una publicación: en esos eventos es cuándo lo detectamos |
sid | string | Posición en el flujo para la repetición; presente en el flujo y en el historial |
target.id | string | Id numérico en X de la cuenta monitorizada (para search.match, del autor de la publicación) |
target.screen_name | string | Nombre de usuario de la cuenta monitorizada |
target.name | string | El nombre visible de la cuenta |
d | object | Carga específica del tipo |
Carga Tweet
El d de tweet.create, tweet.reply, tweet.retweet y tweet.quote, y la base de search.match.
| Campo | Tipo | Significado |
|---|---|---|
tweet_id | string | El id de la publicación, como cadena |
kind | tweet | reply | retweet | quote | Qué clase de publicación es |
text | string | Texto completo (incluidas las publicaciones largas) |
lang | string | null | Idioma detectado por X |
author | User | La cuenta que la publicó, como User completo — el mismo objeto que el autor de un search.match: nombre de usuario, nombre, bio, avatar, banner, contadores, verificación, ubicación, enlace y fecha de alta. En una primera trama escueta es la cuenta tal como se leyó por última vez; el update la trae tal como se leyó con la publicación |
reply_to | Brief+ | null | Para respuestas: la publicación a la que se responde — un Resumen más screen_name, tweet_id y user_id de su autor |
retweet_of | Brief | null | Para republicaciones: la publicación original |
quoted | Brief | null | Para citas: la publicación citada |
media | string[] | URL de imagen simples, una por elemento multimedia |
media_items | Media[] | Cada elemento multimedia con tipo, variantes de video y dimensiones |
urls | string[] | Enlaces expandidos de la publicación |
article | Article | null | En publicaciones que enlazan un artículo de X: el artículo |
counts | {reply, rt, like, quote, bookmark} | Recuentos de respuestas, republicaciones, me gusta, citas y marcadores en el momento en que la leímos |
views | int | null | Recuento de visualizaciones, cuando X lo expone |
url | string | Enlace canónico a la publicación |
full | bool | false en una primera trama create escueta; true una vez que el evento lleva la publicación entera |
kind_final | bool | true cuando kind es definitivo. false solo en una primera trama escueta cuyo kind es tweet: la publicación aún puede resultar ser una cita, y el update del mismo id lo resuelve |
kind_was | tweet | null (update only) | Solo en el update que fija el tipo de una publicación, y solo cuando la primera trama decía otra cosa: el tipo que tenía esa trama (tweet para una publicación que resultó ser una cita) |
edit_of | Brief | null | En tweet.edit: la versión a la que esta sustituye (su id, y su texto y autor cuando los teníamos) |
Resumen
Una publicación compacta incrustada en otro evento: el original de una republicación, la publicación citada, la publicación a la que se responde o una publicación fijada.
| Campo | Tipo | Significado |
|---|---|---|
id | string | Id de la publicación |
user | string | Nombre de usuario del autor |
name | string | Nombre visible del autor |
user_id | string | Id numérico del autor |
text | string | Texto completo |
media | string[] | URL de imagen simples |
media_items | Media[] | Elementos multimedia con tipo y variantes de video |
created_ms | int | Cuándo se publicó, en ms desde la época Unix |
url | string | Enlace a la publicación |
Multimedia
Una imagen, un video o un GIF. Los videos llevan el MP4 de mayor tasa de bits que pudimos encontrar; url es el fotograma de portada.
| Campo | Tipo | Significado |
|---|---|---|
type | photo | video | animated_gif | Clase de medio |
url | string | URL de la imagen, o el fotograma de portada de un video |
expanded_url | string | La página del medio en X |
video_url | string (video) | URL del MP4, la mayor tasa de bits disponible |
bitrate | int (video) | Tasa de bits de ese MP4 |
duration_ms | int (video) | Duración del video |
width | int | Ancho original en píxeles |
height | int | Alto original en píxeles |
Artículo
Un artículo de X (publicación de formato largo) al que enlaza una publicación. La primera trama trae title y preview; text es null hasta que el update con el mismo id entrega el artículo completo.
| Campo | Tipo | Significado |
|---|---|---|
id | string | Id del artículo |
title | string | Título |
preview | string | Las primeras líneas del artículo |
text | string | null | Texto completo, con párrafos separados por líneas en blanco; null en la primera trama |
cover | string | null | URL de la imagen de portada |
images | string[] | Imágenes dentro del artículo |
url | string | Enlace al artículo en X |
Carga de eliminación
El d de tweet.delete. Solo se envía para una publicación que habíamos visto y que ya no está. Su ts es cuándo se detectó el borrado; la hora de la propia publicación está en su trama create anterior.
| Campo | Tipo | Significado |
|---|---|---|
tweet_id | string | El id de la publicación eliminada |
url | string | Dónde solía estar |
Carga de cambio de perfil
El d de cada evento profile.*. Para estos, op es update.
| Campo | Tipo | Significado |
|---|---|---|
field | string | Qué campo del perfil cambió; la misma palabra que sigue a profile. en el tipo |
old | any | El valor anterior |
new | any | El valor nuevo |
tweet | Brief (pinned only) | Para profile.pinned: la publicación recién fijada |
old_tweet | Brief (pinned only) | Para profile.pinned: la publicación fijada anteriormente, si la teníamos |
Carga de seguimiento
El d de follow.add, follow.remove y followers.verified.add.
| Campo | Tipo | Significado |
|---|---|---|
user | User | La otra cuenta, como Usuario completo |
Carga de estado de la cuenta
El d de account.status. Un estado es active, protected (publicaciones visibles solo para seguidores aprobados), suspended (por X) o unavailable (desactivada, eliminada o no visible por otro motivo). ts es cuándo detectamos el cambio.
| Campo | Tipo | Significado |
|---|---|---|
old | active | protected | suspended | unavailable | El estado anterior |
new | active | protected | suspended | unavailable | El estado actual |
reason | string | null | El texto de X, si lo da (por ejemplo Suspended) |
Usuario
Un perfil de cuenta completo, tal como se incrusta en los eventos de seguimiento y en search.match.
| Campo | Tipo | Significado |
|---|---|---|
id | string | Id numérico |
screen_name | string | Nombre de usuario |
name | string | Nombre visible |
bio | string | Texto de la biografía |
avatar | string | URL de la imagen de avatar |
banner | string | null | URL de la imagen de banner |
followers | int | Número de seguidores |
following | int | Número de seguidos |
tweets | int | Número de publicaciones |
location | string | Ubicación en texto libre |
url | string | null | Enlace de perfil expandido |
verified | bool | Tiene insignia de verificación |
verified_type | string | null | blue, business, government o null |
protected | bool | Las publicaciones solo son visibles para seguidores aprobados |
created_at | string (ISO-8601) | Cuándo se creó la cuenta |
category | string | null | Categoría profesional, si la cuenta fijó una |
Carga de coincidencia de búsqueda
El d de search.match: una carga Tweet más tres campos sobre la coincidencia. El target del sobre es el autor de la publicación, que no tiene por qué ser uno de tus objetivos.
| Campo | Tipo | Significado |
|---|---|---|
keyword.id | int | Id de la palabra clave que coincidió |
keyword.query | string | Su consulta |
keyword.label | string | null | Su etiqueta, si le pusiste una |
author | User | El perfil completo del autor |
author_is_target | bool | true si el autor es además una cuenta monitorizada en este sistema |
… | TweetPayload | Todos los campos de la carga Tweet |
Objetivo
Una cuenta que monitorizas, tal como la ve esta clave.
| Campo | Tipo | Significado |
|---|---|---|
id | string | Id numérico en X. Nunca cambia: indexa tus datos por él |
screen_name | string | El nombre de usuario actual. Puede cambiar; profile.screen_name te lo avisa |
name | string | Nombre visible |
previous_screen_names | string[] | Nombres de usuario que la cuenta tuvo antes, el más reciente primero. Cada uno la sigue identificando en /v1/monitor/targets/{target} |
push_ready | bool | Todos los tipos de evento a los que te suscribes para esta cuenta se están recogiendo en tiempo real. false no retiene nada: la cuenta se monitoriza desde el momento en que se suscribe y sus eventos se entregan a medida que se recogen, así que no esperes a este indicador para procesarlos |
last_push_at | datetime | null | Última vez que llegó un evento en tiempo real para ella |
last_poll_at | datetime | null | Última vez que se leyó su cronología |
state | "subscribed" | Aquí siempre subscribed; las resoluciones pendientes tienen su propia forma |
event_types | string[] | Los tipos de evento que se entregan para esta cuenta; vacío significa todos los que tu clave permite |
event_types_all | bool | true cuando event_types está vacío |
Objetivo pendiente
Lo que devuelve GET /v1/monitor/targets/{target} mientras una cuenta que pediste aún se está resolviendo.
| Campo | Tipo | Significado |
|---|---|---|
screen_name | string | null | El nombre de usuario que pediste, si lo pediste por nombre |
user_id | string | null | El id de usuario que pediste, si lo pediste por id |
state | "queued" | Siempre queued |
queued_at | int (unix s) | Cuándo lo pediste |
event_types | string[] | Los tipos de evento elegidos, aplicados en cuanto se resuelva |
event_types_all | bool | true cuando event_types está vacío |
Palabra clave
Una consulta que vigilas en la búsqueda de X.
| Campo | Tipo | Significado |
|---|---|---|
id | int | Id numérico; úsalo para eliminar |
query | string | La consulta, en la sintaxis de búsqueda de X |
label | string | null | Tu etiqueta, devuelta en cada coincidencia |
active | bool | false si el operador la pausó |
hits | int | Coincidencias entregadas hasta ahora |
last_hit_at | datetime | null | Última coincidencia |
last_run_at | datetime | null | Última búsqueda |
Cuenta
Lo que devuelve GET /v1/account sobre la clave que usaste.
| Campo | Tipo | Significado |
|---|---|---|
name | string | El nombre de la clave, tal como se emitió |
plan | string | Preajuste de plan |
key_id | string | Id corto de la clave, seguro para citar en solicitudes de soporte |
scopes | string[] | Ámbitos que tiene la clave |
event_types | string[] | Lista de tipos de evento permitidos a nivel de clave, gestionada por nosotros; vacía significa todos |
event_types_all | bool | true cuando el filtro está vacío |
limits.max_targets | int | Límite de cuentas monitorizadas |
limits.max_conns | int | Límite de WebSockets concurrentes |
limits.max_keywords | int | Límite de palabras clave |
limits.requests_per_minute | int | Presupuesto de solicitudes por minuto |
usage.targets | int | Cuentas monitorizadas actualmente |
usage.keywords | int | Palabras clave vigiladas actualmente |
Webhook
Lo que devuelve GET /v1/account/webhook.
| Campo | Tipo | Significado |
|---|---|---|
url | string | null | El endpoint registrado |
stats | {ok, http_…} | Contadores de entrega: ok, y un http_<code> por cada estado de fallo observado |
Meta
Información de paginación junto a cada lista.
| Campo | Tipo | Significado |
|---|---|---|
count | int | Elementos en esta página |
has_more | bool | Si existe otra página |
next_cursor | string | null | Devuélvelo como ?cursor=; null al final |
Resultado por lotes
Una entrada por cada elemento enviado a POST /v1/monitor/targets:batch, en el mismo orden.
| Campo | Tipo | Significado |
|---|---|---|
index | int | Posición del elemento en tu solicitud |
status | int | El estado HTTP que habría devuelto el endpoint de elemento único |
data | object (on success) | El cuerpo de respuesta del elemento único, en caso de éxito |
error | {code, message, details?} (on failure) | El objeto de error habitual, en caso de fallo |
Perfil (lectura)
Lo que devuelven GET /v1/users/{screen_name}, /v1/users/by-id/{user_id} y /v1/users/batch por cuenta.
| Campo | Tipo | Significado |
|---|---|---|
id | string | Id numérico |
name | string | Nombre visible |
screen_name | string | Nombre de usuario |
bio | string | Texto de la biografía |
location | string | Ubicación en texto libre |
url | string | null | Enlace del perfil |
avatar | string | URL de la imagen de avatar |
banner | string | null | URL de la imagen de banner |
pinned | string | null | Id de la publicación fijada |
verified | bool | Tiene insignia de verificación |
protected | bool | Publicaciones visibles solo para seguidores aprobados |
followers | int | Número de seguidores |
following | int | Número de seguidos |
tweets | int | Número de publicaciones |
Tweet (lectura)
Una publicación tal como la devuelven los endpoints de lectura. La misma información que la carga Tweet, en la forma más plana que produce nuestro analizador.
| Campo | Tipo | Significado |
|---|---|---|
id | int | Id de la publicación, numérico |
created_ms | int | Cuándo se publicó, en ms desde la época Unix |
user_id | int | Id numérico del autor |
user | string | Nombre de usuario del autor |
name | string | Nombre visible del autor |
text | string | Texto completo |
lang | string | null | Idioma detectado por X |
reply_to | string | null | Nombre de usuario al que se responde |
reply_to_status_id | string | null | Id de la publicación a la que se responde |
reply_to_user_id | string | null | Id de la cuenta a la que se responde |
conversation_id | string | Id de la publicación raíz del hilo |
is_rt | bool | Es una republicación |
rt_of | Brief | null | El original, para republicaciones |
is_quote | bool | Cita otra publicación |
quoted | Brief | null | La publicación citada |
media | string[] | URL de imagen simples |
media_items | Media[] | Elementos multimedia con tipo y variantes de video |
urls | string[] | Enlaces expandidos |
views | int | null | Recuento de visualizaciones |
counts | {reply, rt, like, quote, bookmark} | Recuentos de respuestas, republicaciones, me gusta, citas y marcadores |
article | Article | null | El artículo de X al que enlaza la publicación, si lo hay (título, vista previa, portada, imágenes; el texto completo está en GET /v1/tweets/{tweet_id}/article) |
edit_of | int | null | En una versión editada: el id de la primera versión; si no, null |
edit_ids | int[] | Los ids de todas las versiones, la más antigua primero; una publicación nunca editada solo se lista a sí misma |
source | string | null | El cliente desde el que se publicó, tal como lo da X (un enlace HTML, por ejemplo Twitter for iPhone) |
Referencia de usuario
La forma compacta usada en las lecturas de listas de seguimiento.
| Campo | Tipo | Significado |
|---|---|---|
id | string | Id numérico |
screen_name | string | Nombre de usuario |
name | string | Nombre visible |