Saltar al contenido principal
La X API devuelve objetos JSON estructurados que representan Publicaciones, usuarios, contenido multimedia y más. Esta referencia documenta todos los campos disponibles para cada tipo de objeto.
ObjetoDescripciónParámetro fields
Publicación (Tweet)Publicaciones, respuestas, reposts, citastweet.fields
UserPerfiles de cuentas y metadatosuser.fields
SpaceConversaciones de audio en vivospace.fields
ListColecciones seleccionadas de cuentaslist.fields
MediaImágenes, videos, GIFsmedia.fields
PollPreguntas y opciones de encuestaspoll.fields
PlaceDatos de ubicación y geográficosplace.fields
Utiliza los parámetros fields para solicitar campos específicos y expansions para incluir objetos relacionados.

Publicación (Tweet)

Las Publicaciones son la unidad principal de contenido en X. Cada objeto de Publicación incluye texto, metadatos y referencias a objetos relacionados como autores, medios y encuestas. Campos predeterminados: id, text, edit_history_tweet_ids Utiliza tweet.fields para solicitar campos adicionales y expansions para incluir objetos relacionados.

Todos los campos de Publicación

Valor del campoTipoDescripciónCómo se puede usar
id (por defecto)stringEl identificador único del Tweet solicitado.Úsalo para recuperar de forma programática un Tweet específico.
text (valor predeterminado)stringEl texto UTF-8 del propio Tweet. Consulta twitter-text para ver más detalles sobre los caracteres válidos.Extracción de palabras clave y análisis/clasificación de sentimiento.
edit_history_tweet_ids (predeterminado)objectIdentificadores únicos que indican todas las versiones de un Tweet. Para los Tweets sin ediciones habrá un ID. Para los Tweets con historial de edición habrá varios IDs.Úsalo para encontrar el historial de edición de un Tweet.
articleobjectContiene metadatos del Article presente en este Tweet.Úsalo para obtener el texto y las entidades de un Article.
attachmentsobjectEspecifica el tipo de archivos adjuntos (si los hay) presentes en este Tweet.Úsalo para comprender qué objetos se devuelven para las expansions solicitadas.
author_idstringEl identificador único del User que publicó este Tweet.Hidratar el objeto User, compartir el conjunto de datos para revisión por pares.
card_uristringEl URI de la Card presente en este Tweet.
community_idstringEl identificador único de la Comunidad a la que pertenece esta Publicación.
context_annotationsarrayContiene anotaciones de contexto para el Tweet.Reconocimiento/extracción de entidades, análisis temático.
conversation_idstringEl ID de Tweet de la Publicación original de la conversación (incluye respuestas directas y respuestas a respuestas).Úsalo para reconstruir la conversación a partir de un Tweet.
created_atdate (ISO 8601)Momento de creación del Tweet.Útil para el análisis de series temporales y para entender cuándo se creó un Tweet.
display_text_rangearrayUn array que contiene un índice de inicio y otro de fin para la porción de texto que se muestra.Útil para saber qué porción de texto se muestra de forma predeterminada en publicaciones largas.
edit_controlsobjectIndica durante cuánto tiempo más se puede editar el Tweet y el número de ediciones restantes.Úsalo para determinar si un Tweet es apto para edición.
entitiesobjectEntidades que se han extraído del texto del Tweet. Consulta entities en Objetos de Twitter.Proporciona información adicional sobre hashtags, URL, menciones, etc.
geoobjectIndica la ubicación o el lugar de un Tweet con etiqueta geográfica.Úsalo para determinar la ubicación de un Tweet con etiqueta geográfica.
in_reply_to_user_idstringSi el Tweet representado es una respuesta, este campo contendrá el id del autor del Tweet original.Determina si un Tweet fue una respuesta a otro Tweet.
langstringIdioma del Tweet, si es detectado por Twitter.Clasifica los Tweets por idioma.
non_public_metricsobjectMétricas de interacción no públicas para el Tweet en el momento de la solicitud. Requiere autenticación en el contexto de un usuario.Determina el número total de impresiones generadas para el Tweet.
note_tweetobjectContiene el texto completo de una Publicación para Publicaciones de formato largo (>280 caracteres).Obtén el texto completo de una Publicación.
organic_metricsobjectMétricas de interacción, registradas en un contexto orgánico, para el Tweet en el momento de la solicitud. Requiere autenticación en el contexto de un usuario.Mide la interacción orgánica del Tweet.
possibly_sensitivebooleanIndica si el contenido puede considerarse sensible.Analiza la circulación de determinados tipos de contenido.
promoted_metricsobjectMétricas de interacción, registradas en un contexto promocionado, para el Tweet en el momento de la solicitud. Requiere autenticación en el contexto de un usuario.Mide la interacción del Tweet cuando fue promocionado.
public_metricsobjectMétricas de interacción públicas para el Tweet en el momento de la solicitud.Mide la interacción pública del Tweet.
referenced_tweetsarrayUna lista de Tweets a los que hace referencia este Tweet, como Retweets, Tweets citados o respuestas.Analiza los aspectos conversacionales de los Retweets, citas, respuestas, etc.
reply_settingsstringMuestra quién puede responder a un Tweet determinado. Las opciones posibles son “everyone”, “mentioned_users” y “followers”.Determina la configuración de quién puede responder en la conversación para el Tweet.
withheldobjectContiene detalles sobre la restricción de contenido restringido.
scopesobjectContiene los detalles del alcance (scope) del Tweet.Indica quién puede ver la Publicación. Solo se devuelve para Publicaciones promocionadas.
media_metadataarrayContiene metadatos sobre los archivos multimedia adjuntos al Tweet.Obtén metadatos adicionales, como el alt_text del adjunto multimedia de un Tweet.
Obtención de un objeto Tweet Solicitud de ejemplo En la siguiente solicitud, estamos solicitando campos para el Tweet en el endpoint Tweets lookup. Asegúrate de reemplazar $BEARER_TOKEN con tu propio Bearer Token generado.
curl --request GET 'https://api.x.com/2/tweets?ids=1212092628029698048&tweet.fields=attachments,author_id,context_annotations,created_at,entities,geo,id,in_reply_to_user_id,lang,possibly_sensitive,public_metrics,referenced_tweets,text,withheld&expansions=referenced_tweets.id' --header 'Authorization: Bearer $BEARER_TOKEN'
Ejemplo de respuesta
{
  "data": [
    {
      "text": "We believe the best future version of our API will come from building it with YOU. Here’s to another great year with everyone who builds on the Twitter platform. We can’t wait to continue working with you in the new year. https://t.co/yvxdK6aOo2",
      "edit_history_tweet_ids": [
        "1212092628029698048"
      ],
      "lang": "en",
      "in_reply_to_user_id": "2244994945",
      "entities": {
        "urls": [
          {
            "start": 222,
            "end": 245,
            "url": "https://t.co/yvxdK6aOo2",
            "expanded_url": "https://x.com/LovesNandos/status/1211797914437259264/photo/1",
            "display_url": "pic.x.com/yvxdK6aOo2",
            "media_key": "16_1211797899316740096"
          }
        ],
        "annotations": [
          {
            "start": 42,
            "end": 44,
            "probability": 0.5359,
            "type": "Other",
            "normalized_text": "API"
          },
          {
            "start": 144,
            "end": 150,
            "probability": 0.9832,
            "type": "Other",
            "normalized_text": "Twitter"
          }
        ]
      },
      "author_id": "2244994945",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1212092627178287104"
        }
      ],
      "id": "1212092628029698048",
      "public_metrics": {
        "retweet_count": 7,
        "reply_count": 3,
        "like_count": 38,
        "quote_count": 1
      },
      "context_annotations": [
        {
          "domain": {
            "id": "29",
            "name": "Events [Entity Service]",
            "description": "Real world events. "
          },
          "entity": {
            "id": "1186637514896920576",
            "name": " New Years Eve"
          }
        },
        {
          "domain": {
            "id": "29",
            "name": "Events [Entity Service]",
            "description": "Real world events. "
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "Happy New Year: It’s finally 2020 everywhere!",
            "description": "Catch fireworks and other celebrations as people across the globe enter the new year.\nPhoto via @GettyImages "
          }
        },
        {
          "domain": {
            "id": "119",
            "name": "Holiday",
            "description": "Holidays like Christmas or Halloween"
          },
          "entity": {
            "id": "1186637514896920576",
            "name": " New Years Eve"
          }
        },
        {
          "domain": {
            "id": "119",
            "name": "Holiday",
            "description": "Holidays like Christmas or Halloween"
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "Happy New Year: It’s finally 2020 everywhere!",
            "description": "Catch fireworks and other celebrations as people across the globe enter the new year.\nPhoto via @GettyImages "
          }
        },
        {
          "domain": {
            "id": "30",
            "name": "Entities [Entity Service]",
            "description": "Entity Service top level domain, every item that is in Entity Service should be in this domain"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Services"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Brands and Companies"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "131",
            "name": "Unified Twitter Taxonomy",
            "description": "A taxonomy of user interests. "
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "131",
            "name": "Unified Twitter Taxonomy",
            "description": "A taxonomy of user interests. "
          },
          "entity": {
            "id": "847868745150119936",
            "name": "Family & relationships",
            "description": "Hobbies and interests"
          }
        },
        {
          "domain": {
            "id": "131",
            "name": "Unified Twitter Taxonomy",
            "description": "A taxonomy of user interests. "
          },
          "entity": {
            "id": "1196446161223028736",
            "name": "Social media"
          }
        },
        {
          "domain": {
            "id": "29",
            "name": "Events [Entity Service]",
            "description": "Real world events. "
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "Happy New Year: It’s finally 2020 everywhere!",
            "description": "Catch fireworks and other celebrations as people across the globe enter the new year.\nPhoto via @GettyImages "
          }
        },
        {
          "domain": {
            "id": "119",
            "name": "Holiday",
            "description": "Holidays like Christmas or Halloween"
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "Happy New Year: It’s finally 2020 everywhere!",
            "description": "Catch fireworks and other celebrations as people across the globe enter the new year.\nPhoto via @GettyImages "
          }
        }
      ],
      "created_at": "2019-12-31T19:26:16.000Z",
      "attachments": {
        "media_keys": [
          "16_1211797899316740096"
        ]
      },
      "possibly_sensitive": false
    }
  ],
  "includes": {
    "tweets": [
      {
        "text": "These launches would not be possible without the feedback you provided along the way, so THANK YOU to everyone who has contributed your time and ideas. Have more feedback? Let us know ⬇️ https://t.co/Vxp4UKnuJ9",
        "edit_history_tweet_ids": [
          "1212092627178287104"
        ],
        "lang": "en",
        "in_reply_to_user_id": "2244994945",
        "entities": {
          "urls": [
            {
              "start": 187,
              "end": 210,
              "url": "https://t.co/Vxp4UKnuJ9",
              "expanded_url": "https://twitterdevfeedback.uservoice.com/forums/921790-twitter-developer-labs",
              "display_url": "twitterdevfeedback.uservoice.com/forums/921790-…",
              "status": 200,
              "title": "Updates on our feedback channels",
              "description": "Construimos nuestra plataforma para desarrolladores de forma abierta, con tus aportes y comentarios. Durante el último año, escuchar directamente de ti y de los usuarios de tus aplicaciones nos ha ayudado a crear productos para desarrolladores que se ajustan a los casos de uso que nos ayudaste a identificar. Queremos que esta sea la forma en que construimos productos y, en adelante, estamos consolidando nuestros canales de comentarios. Encontrándote donde estás A partir de hoy, vamos a retirar nuestro canal de comentarios UserVoice en favor de interacciones directas más frecuentes con...",
              "unwound_url": "https://devcommunity.x.com/t/updates-on-our-feedback-channels/169706"
            }
          ]
        },
        "author_id": "2244994945",
        "referenced_tweets": [
          {
            "type": "replied_to",
            "id": "1212092626247110657"
          }
        ],
        "id": "1212092627178287104",
        "public_metrics": {
          "retweet_count": 2,
          "reply_count": 1,
          "like_count": 19,
          "quote_count": 0
        },
        "created_at": "2019-12-31T19:26:16.000Z",
        "possibly_sensitive": false
      }
    ]
  }

User

El objeto user contiene metadatos de la cuenta de usuario de Twitter que describen al usuario de referencia. El objeto user es el objeto principal que devuelve el endpoint users lookup. Al solicitar campos de usuario adicionales en este endpoint, basta con usar el parámetro de campos user.fields. El objeto user también se puede encontrar como un objeto hijo y expandido en el objeto Tweet. El objeto está disponible para expansión con ?expansions=author_id o ?expansions=in_reply_to_user_id para obtener el objeto resumido con solo los campos predeterminados. Usa la expansión junto con el parámetro de campos user.fields cuando solicites campos adicionales para completar el objeto.  
Valor del campoTipoDescripciónCómo se puede utilizar
id (predeterminado)stringEl identificador único de este usuario.

"id": "2244994945"
Puedes usarlo para recuperar de forma programática información sobre un usuario específico de Twitter.
name (predeterminado)stringEl nombre del usuario, tal como lo definió en su perfil. No necesariamente el nombre de una persona. Suele tener un límite de 50 caracteres, pero puede cambiar.

"name": "Twitter Dev"
username (predeterminado)stringEl nombre en pantalla, handle o alias de Twitter con el que se identifica este usuario. Los nombres de usuario son únicos, pero pueden cambiar. Suelen tener un máximo de 15 caracteres, aunque algunas cuentas históricas pueden tener nombres más largos.

"username": "TwitterDev"
affiliationobjectContiene detalles sobre la afiliación de un usuario.Se puede usar para obtener la insignia de afiliado de un usuario.
confirmed_emailstringLa dirección de correo electrónico confirmada del usuario autenticado.
connection_statusarrayProporciona una lista de relaciones entre el usuario autenticado y el usuario que se está consultando, como siguiendo, seguido por, solicitud de seguimiento enviada, solicitud de seguimiento recibida, bloqueo, silenciado

”connection_status”: [
           “follow_request_received”,
           “follow_request_sent”,
           “blocking”,
           “followed_by”,
           “following”,
           “muting”
]
Se puede usar para determinar el estado de conexión entre el usuario autenticado y el usuario que se está consultando.
created_atfecha (ISO 8601)La fecha y hora UTC en la que se creó la cuenta de usuario en Twitter.

"created_at": "2013-12-14T04:35:55.000Z"
Se puede usar para determinar desde cuándo una persona ha estado usando Twitter.
descriptionstringEl texto de la descripción del perfil de este usuario (también denominada biografía), en caso de que el usuario haya proporcionado una.

"description": "The voice of the X Dev team and your official source for updates, news, and events, related to the X API."
entitiesobjectContiene detalles sobre el texto que tiene un significado especial dentro de la descripción del usuario.

"entities": { <br/>       "url": { <br/>           "urls": [ <br/>               { <br/>                   "start": 0, <br/>                   "end": 23, <br/>                   "url": "https://t.co/3ZX3TNiZCY", <br/>                   "expanded_url": "/content/developer-twitter/en/community", <br/>                   "display_url": "developer.x.com/en/community" <br/>               } <br/>           ] <br/>       }, <br/>       "description": { <br/>           "urls": [ <br/>               { <br/>                   "start": 0, <br/>                   "end": 23, <br/>                   "url": "https://t.co/3ZX3TNiZCY", <br/>                   "expanded_url": "/content/developer-twitter/en/community", <br/>                   "display_url": "developer.x.com/en/community" <br/>               }, <br/>           "hashtags": [ <br/>               { <br/>                   "start": 23, <br/>                   "end": 30, <br/>                   "tag": "DevRel" <br/>               }, <br/>               { <br/>                   "start": 113, <br/>                   "end": 130, <br/>                   "tag": "BlackLivesMatter" <br/>               }, <br/>           "mentions": [ <br/>               { <br/>                   "start": 0, <br/>                   "end": 10, <br/>                   "tag": "TwitterDev" <br/>               }, <br/>           "cashtags": [ <br/>               { <br/>                   "start": 12, <br/>                   "end": 16, <br/>                   "tag": "twtr" <br/>               } <br/>           ] <br/>       } <br/>   }
Las entidades son objetos JSON que proporcionan información adicional sobre hashtags, URLs, menciones de usuarios y cashtags de la descripción. Consulta cada entidad correspondiente para obtener más detalles.

Todos los índices start de usuario son inclusivos, mientras que todos los índices end de usuario son exclusivos.
is_identity_verifiedbooleanIndica si el usuario tiene verificación de identidad (ID).
locationstringLa ubicación especificada en el perfil del usuario, si el usuario proporcionó una. Como es un valor de texto libre, puede que no indique una ubicación válida, pero puede evaluarse de forma aproximada al realizar búsquedas con consultas de ubicación.

"location": "127.0.0.1"
most_recent_tweet_idstringIdentificador único del Tweet más reciente de este usuario.Se puede usar para determinar el Tweet más reciente del usuario.
parodybooleanIndica si esta cuenta de usuario tiene la etiqueta «Parody».
pinned_tweet_idstringIdentificador único del Tweet fijado de este usuario.

"pinned_tweet_id": "1255542774432063488"
Determina el Tweet fijado en la parte superior del perfil del usuario. Puede usarse potencialmente para determinar el idioma del usuario.
profile_banner_urlstringLa URL del banner de perfil de este usuario, tal como aparece en su perfil.

"profile_banner_url": "https://pbs.twimg.com/profile_banners/1716450569358098432/1721022977"
Puede usarse para descargar el banner de perfil de este usuario.
profile_image_urlstringLa URL de la imagen del perfil de este usuario, tal como aparece en su perfil.

"profile_image_url": "https://pbs.twimg.com/profile_images/1267175364003901441/tBZNFAgA_normal.jpg"
Puede usarse para descargar la imagen de perfil de este usuario.
protectedbooleanIndica si este usuario ha decidido proteger sus Tweets (es decir, si los Tweets de este usuario son privados).

"protected": false
public_metricsobjectContiene detalles sobre la actividad de este usuario.

"public_metrics": {             "followers_count": 507902,             "following_count": 1863,             "tweet_count": 3561,             "listed_count": 1550         }
Puede usarse potencialmente para determinar el alcance o la influencia de un usuario de Twitter, cuantificar la amplitud de los intereses del usuario y su nivel de interacción en Twitter.
receives_your_dmbooleanIndica si este usuario recibirá o no el DM (mensaje directo) del usuario autenticado.
subscriptionobjectContiene información sobre si el usuario está suscrito o no al usuario autenticado.
subscription_typestringCadena de texto que representa el type de suscripción a X Premium que tiene el usuario autenticado. Por ejemplo: None, Basic, Premium, PremiumPlus. Siempre devolverá None si el usuario no es el autenticado.
urlstringLa URL especificada en el perfil del usuario, si existe.

"url": "https://t.co/3ZX3TNiZCY"
Una URL proporcionada por un usuario de Twitter en su perfil. Puede ser una página principal, pero no necesariamente.
verifiedbooleanIndica si este usuario está verificado en Twitter.

"verified": true
Indica si este usuario de Twitter tiene o no una cuenta verificada. Una cuenta verificada permite que las personas sepan que una cuenta de interés público es auténtica.
verified_followers_countstringUna cadena que representa el número de seguidores verificados de un usuario.
verified_typestringUna cadena que representa el tipo de verificación que tiene un usuario. Por ejemplo: “blue”, “business”, “government”
withheldobjectContiene detalles sobre la retención de contenido retenido, si aplica.
Obtención de un objeto de usuario Solicitud de ejemplo En la siguiente solicitud, estamos solicitando campos para el usuario mediante el endpoint de users lookup. Asegúrate de reemplazar $BEARER_TOKEN con tu propio Bearer Token generado.
  curl --request GET 'https://api.x.com/2/users?
  ids=2244994945&user.fields=created_at,description,entities,id,location,name,pinned_tweet_id,profile_image_url,protected,url,username,verified,withheld&expansions=pinned_tweet_id'
  --header 'Authorization: Bearer $BEARER_TOKEN'
  }
Ejemplo de respuesta
    "data": [
        {
            "id": "2244994945",
            "name": "Twitter Dev",
            "username": "TwitterDev",
            "location": "127.0.0.1",
            "entities": {
                "url": {
                    "urls": [
                        {
                            "start": 0,
                            "end": 23,
                            "url": "https://t.co/3ZX3TNiZCY",
                            "expanded_url": "/content/developer-twitter/en/community",
                            "display_url": "developer.x.com/en/community"
                        }
                    ]
                },
                "description": {
                    "hashtags": [
                        {
                            "start": 23,
                            "end": 30,
                            "tag": "DevRel"
                        },
                        {
                            "start": 113,
                            "end": 130,
                            "tag": "BlackLivesMatter"
                        }
                    ]
                }
            },
            "verified": true,
            "description": "The voice of Twitter's #DevRel team, and your official source for updates, news, & events about Twitter's API. \n\n#BlackLivesMatter",
            "url": "https://t.co/3ZX3TNiZCY",
            "profile_image_url": "https://pbs.twimg.com/profile_images/1267175364003901441/tBZNFAgA_normal.jpg",
            "protected": false,
            "pinned_tweet_id": "1255542774432063488",
            "created_at": "2013-12-14T04:35:55.000Z"
        }
    ],
    "includes": {
        "tweets": [
            {
                "id": "1255542774432063488",
                "text": "Durante estos tiempos sin precedentes, lo que sucede en Twitter puede ayudar al mundo a comprender mejor y responder a la pandemia. \n\nEstamos lanzando un endpoint de transmisión gratuito de COVID-19 para que desarrolladores e investigadores calificados puedan estudiar la conversación pública en tiempo real. https://t.co/BPqMcQzhId"
            }
        ]
    }
}

Space

Los Spaces permiten la expresión y la interacción a través de conversaciones de audio en vivo. El diccionario de datos de Space contiene metadatos relevantes sobre un Space; todos los detalles se actualizan en tiempo real. Los objetos User se pueden encontrar y expandir en el recurso user. Estos objetos están disponibles para expansión añadiendo al menos uno de host_ids, creator_id, speaker_ids, mentioned_user_ids al parámetro de consulta expansions. A diferencia de los Tweets, los Spaces son efímeros y dejan de estar disponibles después de que terminan o cuando son cancelados por su creador. Cuando tu aplicación procese datos de Spaces, eres responsable de devolver la información más actualizada y debes eliminar los datos que ya no estén disponibles en la plataforma. Los endpoints de búsqueda de Spaces pueden ayudarte a garantizar que respetas las expectativas y la intención de los usuarios.
Field ValueTypeDescriptionHow it can be used
id (default)stringEl identificador único del Space solicitado.
"id": "1zqKVXPQhvZJB"
Identificar de forma única un Space devuelto en la respuesta.
state (default)stringIndica si el Space ha comenzado, va a comenzar o ha finalizado.
"state": "live"
Filtrar Spaces en vivo o programados.
created_atdate (ISO 8601)Hora de creación de este Space.
"created_at": "2021-07-04T23:12:08.000Z"
Comprender cuándo se creó un Space y ordenarlos por hora.
creator_idstringIdentificador único del creador del Space.
"creator_id": "2244994945"
ended_atdate (ISO 8601)Hora en que finalizó el Space, si corresponde.
"ended_at": "2021-07-04T00:11:44.000Z"
Determinar cuándo terminó un Space en vivo para conocer su duración.
host_idsarrayIdentificadores únicos de los anfitriones del Space.
"host_ids": ["2244994945", "6253282"]
Expandir objetos User y comprender la participación.
langstringIdioma del Space, si se detecta.
"lang": "en"
Clasificar Spaces por idioma.
is_ticketedbooleanIndica si se trata de un Space de pago.
"is_ticketed": false
Destacar contenido de interés.
invited_user_idsarrayLista de IDs de usuario invitados como oradores.
"invited_user_ids": ["2244994945", "6253282"]
Expandir objetos User y comprender la participación.
participant_countintegerNúmero de usuarios en el Space, incluidos los anfitriones y los oradores.
"participant_count": 420
Comprender la participación y crear informes.
subscriber_countintegerNúmero de personas que configuraron un recordatorio para un Space.
"subscriber_count": 36
Comprender el interés en el evento.
scheduled_startdate (ISO 8601)Hora de inicio programada del Space.
"scheduled_start": "2021-07-14T08:00:00.000Z"
Integrar con notificaciones de calendario.
speaker_idsarrayLista de usuarios que hablaron en algún momento.
"speaker_ids": ["2244994945", "6253282"]
Expandir objetos User y comprender la participación.
started_atdate (ISO 8601)Hora real de inicio de un Space.
"started_at": "2021-07-14T08:00:12.000Z"
Determinar la hora de inicio del Space.
titlestringTítulo del Space.
"title": "Say hello to the Space data object!"
Comprender palabras clave, hashtags y menciones.
topic_idsarrayIDs de los temas seleccionados por el creador del Space.
"topic_ids": ["2244994945", "6253282"]
Comprender palabras clave, hashtags y menciones.
updated_atdate (ISO 8601)Última actualización de los metadatos del Space.
"updated_at": "2021-07-11T14:44:44.000Z"
Mantener la información actualizada.
Recuperar un objeto Space Ejemplo de solicitud En la siguiente solicitud, pedimos campos para el Space en el endpoint de consulta de Spaces. Asegúrate de reemplazar $BEARER_TOKEN por tu propio Bearer Token generado.
curl "https://api.x.com/2/spaces/1DXxyRYNejbKM?space.fields=created_at,creator_id,created_athost_ids,lang,is_ticketed,invited_user_ids,participant_count,scheduled_start,speaker_ids,started_at,state,title,updated_at&expansions=creator_id,host_ids,invited_user_ids,speaker_ids" --header "Authorization: Bearer $BEARER_TOKEN"
** Respuesta de ejemplo **
{
  "data": {
    "id": "1zqKVXPQhvZJB",
    "state": "live",
    "created_at": "2021-07-04T23:12:08.000Z",
    "host_ids": [
      "2244994945",
      "6253282"
    ],
    "lang": "en",
    "is_ticketed": false,
    "invited_user_ids": [
      "2244994945",
      "6253282"
    ],
    "participant_count": 420,
    "scheduled_start": "2021-07-14T08:00:00.000Z",
    "speaker_ids": [
      "2244994945",
      "6253282"
    ],
    "started_at": "2021-07-14T08:00:12.000Z",
    "title": "Say hello to the Space data object!",
    "updated_at": "2021-07-11T14:44:44.000Z"
  },
  "includes": {
    "users": [
      {
        "id": "2244994945",
        "name": "Twitter Dev",
        "username": "TwitterDev"
      },
      {
        "id": "6253282",
        "name": "Twitter API",
        "username": "TwitterAPI"
      }
    ]
  }
}

Lista

El objeto de Lista contiene metadatos de Listas de X que describen la Lista de referencia. El objeto de Lista es el objeto principal devuelto en el endpoint de consulta de Listas. Al solicitar campos adicionales de Lista en este endpoint, simplemente usa el parámetro de campos list.fields. El objeto de Lista no se encuentra como hijo de otros objetos de datos. Sin embargo, los objetos de usuario se pueden encontrar y expandir en el recurso de usuario. Estos objetos están disponibles para su expansión añadiendo owner_id al parámetro de consulta expansions. Usa esta expansión con el parámetro de campos list.fields cuando solicites campos adicionales para completar el objeto de Lista principal y user.fields para completar el objeto expandido.
Valor del campoTipoDescripciónCómo se puede usar
id (predeterminado)stringEl identificador único de esta Lista.
"id": "2244994945"
Úsalo para recuperar de forma programática información sobre una Lista específica.
name (predeterminado)stringEl nombre de la Lista, tal como se definió al crear la Lista.
"name": "Twitter Lists"
created_atdate (ISO 8601)La fecha y hora en UTC en que se creó la Lista.
"created_at": "2013-12-14T04:35:55.000Z"
Determina cuánto tiempo ha estado una Lista en X.
descriptionstringUna breve descripción para informar a los usuarios sobre la Lista.
"description": "People that are active members of the Bay area cycling community on Twitter."
follower_countintegerMuestra cuántos usuarios siguen esta Lista.
"follower_count": 198
member_countintegerMuestra cuántos miembros forman parte de esta Lista.
"member_count": 60
privatebooleanIndica si la Lista es privada.
"private": false
owner_idstringIdentificador único del propietario de esta Lista.
"owner_id": "1255542774432063488"
Se puede usar para averiguar si este usuario es propietario de otras Listas y expandir objetos de usuario.
Recuperar un objeto de usuario Ejemplo de solicitud En la siguiente solicitud, solicitamos campos para el usuario en el endpoint de consulta de Lista por ID. Reemplaza $BEARER_TOKEN por tu Bearer Token generado.
curl --request GET 'https://api.x.com/2/lists/1355797419175383040?list.fields=created_at,description,private,follower_count,member_count,owner_id&expansions=owner_id' --header 'Authorization: Bearer $BEARER_TOKEN'
** Respuesta de ejemplo**
{
  "data": {
    "name": "Twitter Comms",
    "member_count": 60,
    "id": "1355797419175383040",
    "private": false,
    "description": "",
    "follower_count": 198,
    "owner_id": "257366942",
    "created_at": "2021-01-31T08:37:48.000Z"
  },
  "includes": {
    "users": [
      {
        "created_at": "2011-02-25T07:51:26.000Z",
        "name": "Ashleigh Hay 🤸🏼‍♀️",
        "id": "257366942",
        "username": "shleighhay",
        "verified": false
      }
    ]
  }
}

Media

Media se refiere a cualquier imagen, GIF o video adjunto a un Tweet. El objeto media no es un objeto principal en ningún endpoint, pero se puede encontrar y expandir dentro del objeto Tweet. El objeto está disponible para expansión con ?expansions=attachments.media_keys para obtener el objeto simplificado solo con los campos predeterminados. Usa la expansión junto con el parámetro de campos: media.fields cuando solicites campos adicionales para completar el objeto.
Field valueTypeDescriptionHow it can be used
media_key (default)stringIdentificador único del contenido multimedia expandido.
"media_key": "13_1263145212760805376"
Se puede usar para recuperar el contenido multimedia de forma programática
type (default)stringTipo de contenido (animated_gif, photo, video).
"type": "video"
Clasifica el contenido multimedia como foto, GIF o video
urlstringURL directa al archivo multimedia en Twitter.Devuelve un objeto Media con un campo URL para fotos
duration_msintegerDisponible cuando el type es video. Duración del video en milisegundos.
"duration_ms": 46947
heightintegerAltura de este contenido en píxeles.
"height": 1080
non_public_metricsobjectMétricas de interacción no públicas para el contenido multimedia en el momento de la solicitud. Requiere autenticación con contexto de usuario.
"non_public_metrics": { "playback_0_count": 1561, "playback_100_count": 116, "playback_25_count": 559, "playback_50_count": 305, "playback_75_count": 183,}
Permite determinar la interacción con el video: cuántos usuarios lo reprodujeron hasta cada cuarto del video.
organic_metricsobjectMétricas de interacción para el contenido multimedia, registradas en un contexto orgánico, en el momento de la solicitud. Requiere autenticación con contexto de usuario.
"organic_metrics": { "playback_0_count": 1561, "playback_100_count": 116, "playback_25_count": 559, "playback_50_count": 305, "playback_75_count": 183, "view_count": 629}
Permite determinar la interacción orgánica con el contenido multimedia.
preview_image_urlstringURL de la imagen estática de vista previa de este contenido.
"preview_image_url": "https://pbs.twimg.com/media/EYeX7akWsAIP1_1.jpg"
promoted_metricsobjectMétricas de interacción para el contenido multimedia, registradas en un contexto promocionado, en el momento de la solicitud. Requiere autenticación con contexto de usuario.
"promoted_metrics": { "playback_0_count": 259, "playback_100_count": 15, "playback_25_count": 113, "playback_50_count": 57, "playback_75_count": 25, "view_count": 124}
Permite determinar la interacción con el contenido multimedia cuando el Tweet fue promocionado.
public_metricsobjectMétricas de interacción públicas para el contenido multimedia en el momento de la solicitud.
"public_metrics": { "view_count": 6865141}
Permite determinar el número total de visualizaciones del video adjunto al Tweet.
widthintegerAncho de este contenido en píxeles.
"width": 1920
alt_textstringDescripción de una imagen para habilitar y mejorar la accesibilidad. Puede tener hasta 1000 caracteres. Actualmente, el texto alternativo solo se puede agregar a imágenes.
"alt_text": "Rugged hills along the Na Pali coast on the island of Kauai"
Se puede usar para proporcionar una descripción escrita de una imagen en caso de que un usuario tenga discapacidad visual.
variantsarrayCada objeto de contenido multimedia puede tener múltiples variantes de visualización o reproducción, con diferentes resoluciones o formatos.
"variants": [{ "bit_rate": 632000, "content_type": "video/mp4", "url": "https://video.twimg.com/ext_tw_video/1527322141724532740/pu/vid/320x568/lnBaR2hCqE-R_90a.mp4?tag=12"}]
Recuperar un objeto media Solicitud de ejemplo En la siguiente solicitud, solicitamos campos para el objeto media adjunto al Tweet en el endpoint Tweet lookup. Dado que media es un objeto hijo de un Tweet, se requiere la expansión attachment.media_keys. Asegúrate de reemplazar $BEARER_TOKEN con tu propio Bearer Token generado.
curl --request GET 'https://api.x.com/2/tweets?ids=1263145271946551300&expansions=attachments.media_keys&media.fields=duration_ms,height,media_key,preview_image_url,public_metrics,type,url,width,alt_text' --header 'Authorization: Bearer $BEARER_TOKEN'
{
  "data": [
    {
      "text": "Probando, probando...\n\nUna nueva forma de tener una conversación con exactamente quien quieras. Estamos comenzando con un pequeño % a nivel mundial, así que mantén tus 👀 atentos para verlo en acción. https://t.co/pV53mvjAVT",
      "id": "1263145271946551300",
      "attachments": {
        "media_keys": [
          "13_1263145212760805376"
        ]
      }
    }
  ],
  "includes": {
    "media": [
      {
        "duration_ms": 46947,
        "type": "video",
        "height": 1080,
        "media_key": "13_1263145212760805376",
        "public_metrics": {
          "view_count": 6909260
        },
        "preview_image_url": "https://pbs.twimg.com/media/EYeX7akWsAIP1_1.jpg",
        "width": 1920
      }
    ]
  }
}

Poll

Una encuesta incluida en un Tweet no es un objeto principal en ningún endpoint, pero se puede encontrar y expandir dentro del objeto Tweet. El objeto está disponible para usar con la expansión ?expansions=attachments.poll_ids y obtener así el objeto resumido solo con los campos predeterminados. Usa la expansión junto con el parámetro de campos: poll.fields cuando solicites campos adicionales para completar el objeto.
Field valueTypeDescription
id (default)stringIdentificador único de la encuesta expandida.
{"id": "1199786642791452673"}
options (default)arrayContiene objetos que describen cada opción de la encuesta referenciada.
{"options": [ { "position": 1, "label": "“C Sharp”", "votes": 795 }, { "position": 2, "label": "“C Hashtag”", "votes": 156 } ]}
duration_minutesintegerEspecifica la duración total de esta encuesta.
{"duration_minutes": 1440}
end_datetimedate (ISO 8601)Especifica la fecha y hora de finalización de esta encuesta.
{"end_datetime": "2019-11-28T20:26:41.000Z"}
voting_statusstringIndica si esta encuesta sigue activa y puede recibir votos, o si la votación ya está cerrada.
{"voting_status": "closed"}
Retrieving a poll object Sample Request En la siguiente solicitud, se solicitan campos para el objeto de la encuesta adjunto al Tweet en el endpoint Tweets lookup. Dado que la encuesta es un objeto hijo de un Tweet, se requiere la expansión attachments.poll_id. Asegúrate de reemplazar $BEARER_TOKEN con tu propio Bearer Token generado.
curl --request GET 'https://api.x.com/2/tweets?ids=1199786642791452673&expansions=attachments.poll_ids&poll.fields=duration_minutes,end_datetime,id,options,voting_status' --header 'Authorization: Bearer $BEARER_TOKEN'
Ejemplo de respuesta
{
  "data": [
    {
      "text": "C#",
      "id": "1199786642791452673",
      "attachments": {
        "poll_ids": [
          "1199786642468413448"
        ]
      }
    }
  ],
  "includes": {
    "polls": [
      {
        "id": "1199786642468413448",
        "voting_status": "closed",
        "duration_minutes": 1440,
        "options": [
          {
            "position": 1,
            "label": ""Do sostenido"",
            "votes": 795
          },
          {
            "position": 2,
            "label": "“C Hashtag”",
            "votes": 156
          }
        ],
        "end_datetime": "2019-11-28T20:26:41.000Z"
      }
    ]
  }
}

Lugar

El lugar etiquetado en un Tweet no es un objeto principal en ningún endpoint, pero se puede encontrar y expandir en el recurso del Tweet. El objeto está disponible para ser expandido con ?expansions=geo.place_id para obtener el objeto condensado solo con los campos predeterminados. Usa la expansión con el parámetro de campos: place.fields cuando solicites campos adicionales para completar el objeto.
Field valueTypeDescriptionHow it can be used
full_name (default)stringA longer-form detailed place name.Clasificar un Tweet por un nombre de lugar específico
"full_name": "Manhattan, NY"
id (default)stringThe unique identifier of the expanded place, if this is a point of interest tagged in the Tweet.Usa esto para recuperar un lugar de forma programática
"id": "01a9a39529b27f36"
contained_withinarrayReturns the identifiers of known places that contain the referenced place.
countrystringThe full-length name of the country this place belongs to.Clasificar un Tweet por nombre de país
"country": "United States"
country_codestringThe ISO Alpha-2 country code this place belongs to.Clasificar un Tweet por código de país
"country_code": "US"
geoobjectContains place details in GeoJSON format.
`json
”geo”:
“type”: “Feature”,
“bbox”: [
-74.026675,
40.683935,
-73.910408,
40.877483
],
“properties”:
}
`
namestringThe short name of this place.Clasificar un Tweet por un nombre de lugar específico
"name": "Manhattan"
place_typestringSpecified the particular type of information represented by this place information, such as a city name, or a point of interest.Clasificar un Tweet por un tipo específico de lugar
"place_type": "city"
Recuperar un objeto de lugar Ejemplo de solicitud En la siguiente solicitud, solicitamos campos para el objeto de lugar adjunto al Tweet en el endpoint de búsqueda de Tweets. Dado que place es un objeto secundario de un Tweet, se requiere la expansión geo.place_id. Asegúrate de reemplazar $BEARER_TOKEN con tu propio Bearer Token generado.
curl --request GET 'https://api.x.com/2/tweets?ids=1136048014974423040&expansions=geo.place_id&place.fields=contained_within,country,country_code,full_name,geo,id,name,place_type' --header 'Authorization: Bearer $BEARER_TOKEN'
Ejemplo de respuesta
{
  "data": [
    {
      "text": "Estamos compartiendo una demostración en vivo del nuevo programa Twitter Developer Labs, dirigido por un miembro de nuestro equipo DevRel, @jessicagarson #TapIntoTwitter https://t.co/ghv7f4dW5M",
      "id": "1136048014974423040",
      "geo": {
        "place_id": "01a9a39529b27f36"
      }
    }
  ],
  "includes": {
    "places": [
      {
        "geo": {
          "type": "Feature",
          "bbox": [
            -74.026675,
            40.683935,
            -73.910408,
            40.877483
          ],
          "properties": {}
        },
        "country_code": "US",
        "name": "Manhattan",
        "id": "01a9a39529b27f36",
        "place_type": "city",
        "country": "United States",
        "full_name": "Manhattan, NY"
      }
    ]
  }
}

Eventos de Mensajes Directos

Las conversaciones de Mensajes Directos (DM) están compuestas por eventos. La X API v2 actualmente admite tres tipos de eventos: MessageCreate, ParticipantsJoin y ParticipantsLeave. Los objetos de eventos de DM los devuelven los endpoints de Direct Message lookup, y se crea un evento MessageCreate cuando los Mensajes Directos se crean correctamente con los endpoints de Manage Direct Messages. Al solicitar eventos de DM, se incluyen de forma predeterminada tres atributos del objeto de evento, o campos: id, event_type y text. Para recibir campos de evento adicionales, usa el parámetro fields dm_event.fields para seleccionar otros. Otros campos de evento disponibles incluyen los siguientes: dm_conversation_id, created_at, sender_id, attachments, participant_ids y referenced_tweets. Varios de estos campos proporcionan los ID de otros objetos de X relacionados con el evento de Mensaje Directo:
  • sender_id - El ID de la cuenta que envió el mensaje o que invitó a un participante a una conversación de grupo
  • partricipants_ids - Un array de ID de cuenta. Para los eventos ParticipantsJoin y ParticipantsLeave, este array contendrá un único ID de la cuenta que creó el evento
  • attachments - Proporciona los ID de medios para contenido que ha sido subido a Twitter por el remitente
  • referenced_tweets - Si se encuentra una URL de un Tweet en el campo text, el ID de ese Tweet se incluye en la respuesta
Las expansions sender_id, participant_ids, referenced_tweets.id y attachments.media_keys están disponibles para expandir estos ID de objetos de Twitter.
Valor del campoTipoDescripciónCómo se puede usar
id (default)stringEl identificador único del evento.

”id”: “1050118621198921728”
Úsalo para recuperar mediante programación un evento de conversación específico (disponible con endpoints v1.1).
event_type (default)stringDescribe el tipo de evento. Actualmente se admiten tres tipos: 

* MessageCreate

* ParticipantsJoin

* ParticipantsLeave


“event_type”: “MessageCreate”
Al recuperar el historial de una conversación, para entender cuándo se crearon los mensajes y, en el caso de conversaciones de grupo, para entender cuándo los participantes se unieron y se fueron. Todos los métodos GET admiten filtrar por tipos de evento específicos con el parámetro de consulta event_type=.
text (default)stringEl texto UTF-8 real del Mensaje Directo. 

“text”: “Hello, just you!”
Con chatbots, se puede usar para analizar el contenido del mensaje y determinar respuestas automatizadas. También se podría usar para crear funciones de búsqueda de conversaciones.
entitiesobjectEntidades que se han extraído del texto del Mensaje Directo.Proporciona información adicional sobre hashtags, URL, menciones, etc.
sender_idstringID del Usuario que crea el evento. Para expandir este objeto en la respuesta, incluye sender_id como expansión y usa el parámetro de consulta user.fields para especificar los atributos del objeto User que te interesan.

”sender_id”: “906948460078698496”
Recuperar el objeto User de quien creó el evento MessageCreate o ParticipantsJoin.
participant_idsarray (of strings)IDs de los participantes que se unen y abandonan una conversación de grupo. También se usan al crear nuevas conversaciones de grupo. Para expandir este objeto en la respuesta, incluye participant_ids como expansión y usa el parámetro de consulta user.fields para especificar los atributos del objeto User que te interesan.

”participant_ids”: [

     “906948460078698496”

]
Se usa para recuperar objetos User de los participantes que se unen y abandonan conversaciones de grupo.
dm_conversation_idstringEl identificador único de la conversación de la que forma parte el evento.

”dm_conversation_id”: “1584988213961031680”
Úsalo para recuperar mediante programación eventos de una conversación y agregarle Mensajes Directos.
created_atdate (ISO 8601)Hora de creación (UTC) del Tweet.

”created_at”: “2019-06-04T23:12:08.000Z”
Este campo se puede usar para entender cuándo se creó un Mensaje Directo o cuándo los participantes de la conversación se unieron o se fueron.
referenced_tweetsarrayID de cualquier Tweet mencionado en el texto del Mensaje Directo. Para expandir este objeto en la respuesta, incluye referenced_tweets.id como expansión y usa el parámetro de consulta tweet.fields para especificar los atributos del objeto Tweet que te interesan.

”referenced_tweets”: [

   

“id”: “1578868150510456833”

   

]
Cuando los Mensajes Directos hacen referencia a un Tweet, estos IDs se pueden usar para buscar los detalles del Tweet.
attachmentsobjectPara Mensajes Directos con contenido multimedia adjunto, proporciona la media key del contenido cargado (foto, video o GIF). Para expandir este objeto en la respuesta, incluye attachments.media_keys como expansión y usa el parámetro de consulta media.fields para especificar los atributos del objeto media que te interesan. Actualmente se admite un adjunto. 

“attachments”:

    “media_keys”: [

        “3_1136048009270239232”

    ]

Permite comprender los objetos multimedia adjuntos a los Mensajes Directos.
Recuperar un objeto de evento de Mensaje Directo Solicitud de ejemplo En este ejemplo, crearemos una solicitud que recupera eventos asociados con una conversación de uno a uno. Esta solicitud devolverá campos fundamentales del evento de Mensaje Directo, junto con campos adicionales para los Tweets referenciados y sus autores. Construyamos una consulta que solicite:
  • Atributos fundamentales del evento, como cuándo se creó y de qué conversación forma parte (dm_conversation).
  • El ID de la cuenta y la descripción de quien envió el Mensaje Directo.
  • El texto de cualquier Tweet referenciado y cuándo se publicó.
  • El ID de la cuenta y la descripción de cualquier autor de Tweet referenciado.
Para devolver esos atributos, la consulta de tu solicitud debe incluir lo siguiente: ?dm_event.fields=id,sender_id,text,created_at,dm_conversation_id&expansions=sender_id,referenced_tweets.id&tweet.fields=created_at,text,author_id&user.fields=description
      curl --request GET 'https://api.x.com/2/dm_conversations/with/:participant_id/dm_events?tweet.fields=created_at,text,author_id&user.fields=description&expansions=sender_id,participant_ids,referenced_tweets.id&dm_event.fields=id,sender_id,text,participant_ids,created_at,'
    --header 'Authorization: Bearer $BEARER_TOKEN'
Asegúrate de reemplazar $BEARER_TOKEN por tu propio Bearer Token generado. Respuesta de ejemplo
      {
	"data": [{
			"id": "1585047616894574596",
			"sender_id": "944480690",
			"text": "Hello, just you!",
			"created_at": "2022-10-25T23:16:15.000Z",
			"event_type": "MessageCreate",
			"dm_conversation_id": "944480690-906948460078698496"
		},
		{
			"id": "1581048670673260549",
			"sender_id": "944480690",
			"text": "Simple Tweet link: https://t.co/IYFbRIdXHg",
			"referenced_tweets": [{
				"id": "1578900353814519810"
			}],
			"created_at": "2022-10-14T22:25:52.000Z",
			"event_type": "MessageCreate",
			"dm_conversation_id": "944480690-906948460078698496"
		},
		{
			"id": "1580705121553420292",
			"sender_id": "944480690",
			"text": "Adding a new 1-to-1 Direct Message.",
			"created_at": "2022-10-13T23:40:43.000Z",
			"event_type": "MessageCreate",
			"dm_conversation_id": "944480690-906948460078698496"
		}
	],
	"includes": {
		"users": [{
				"name": "API Demos",
				"description": "Hosting TwitterDev integrations... @TwitterDev #DevRel",
				"id": "944480690",
				"username": "FloodSocial"
			},
			{
				"name": "the SnowBot",
				"description": "Home of the @TwitterDev SnowBot... Serving snow reports, snow photos, and snow research links... Chatbot is currently being remodeled for Twitter APIv2.",
				"id": "906948460078698496",
				"username": "SnowBotDev"
			}
		],
		"tweets": [{
				"text": "Me siento un poco mal por no haberle deseado a todos un feliz nuevo Año Hidrológico de Colorado…\n\nFeliz Año Hidrológico a todos mis amigos y colegas de Colorado, nuevos y antiguos… \n\nQue este sea un año hidrológico generoso, aunque no demasiado generoso…",
				"id": "1578900353814519810",
				"created_at": "2022-10-09T00:09:13.000Z",
				"author_id": "944480690",
				"edit_history_tweet_ids": [
					"1578900353814519810"
				]
			}
		]
	},
	"meta": {
		"result_count": 3,
		"next_token": "18LAA581J5II7LA00C00ZZZZ",
		"previous_token": "1BLC45G1H8CAL5DG0G00ZZZZ"
	}
}

Comunidad

Las Comunidades son espacios dedicados para que los usuarios de X se conecten, compartan y se acerquen más a las conversaciones que más les interesan. Las Publicaciones en Comunidades pueden verse por cualquier persona en X, pero solo otros miembros dentro de la propia Comunidad pueden interactuar y participar en la conversación. El objeto Community contiene metadatos relevantes sobre una Comunidad.
Field valueTypeDescription
created_atdate (ISO 8601)Hora de creación de la Comunidad.
idstringEl identificador único de la Comunidad.
namestringEl nombre de la Comunidad.
descriptionstringEl texto de la descripción de la Comunidad, si se proporciona.
accessstringEl nivel de acceso de la Comunidad.

Puede ser uno de:
- Public
- Closed
join_policystringLa política para unirse a la Comunidad.

Puede ser una de:
- Open
- RestrictedJoinRequestsDisabled
- RestrictedJoinRequestsRequireAdminApproval
- RestrictedJoinRequestsRequireModeratorApproval
- SuperFollowRequired
member_countintegerEl número de miembros que se han unido a la Comunidad.
Recuperar objetos Community Ejemplo de solicitud En la siguiente solicitud, solicitamos campos específicos mientras buscamos una lista de Comunidades en función de una palabra clave proporcionada. Asegúrate de reemplazar $BEARER_TOKEN con tu propio Bearer Token generado.
curl --location 'https://api.x.com/2/communities/search?query=anime&amp;community.fields=access,created_at,description,id,join_policy,member_count,name' --header 'Authorization: $BEARER_TOKEN'
Ejemplo de respuesta
{
  "data": [
    {
      "id": "Q29tbXVuaXR5OjE3NTg3NDc4MTc2NDI3MDA5MjI=",
      "description": "Welcome to the Anime Community! Where anime fans gather to share their favorite shows and discuss everything anime-related.",
      "join_policy": "Open",
      "access": "Public",
      "member_count": 39915,
      "name": "Anime Community",
      "created_at": "2024-02-17T06:58:50.000Z"
    },
    {
      "id": "Q29tbXVuaXR5OjE1MDY3OTM5NTMxMDYwNDI4OTE=",
      "description": "Join and text about anime 🥰",
      "join_policy": "Open",
      "access": "Public",
      "member_count": 26019,
      "name": "Anime World 🌸",
      "created_at": "2022-03-24T00:44:07.000Z"
    },
    {
      "id": "Q29tbXVuaXR5OjE0OTY3NzYyMTU5Mzk1MzQ4NDk=",
      "description": "For all anime lovers and creators!",
      "join_policy": "Open",
      "access": "Public",
      "member_count": 5612,
      "name": "Anime",
      "created_at": "2022-02-24T09:17:13.000Z"
    }
  ],
  "meta": {
    "next_token": "7140dibdnow9c7btw481s8m561gat797rboud5r80xvzm"
  }
}

Cómo usar campos y expansions

De forma predeterminada, los objetos de datos de X API v2 incluyen una pequeña cantidad de campos predeterminados cuando se hace una solicitud sin utilizar los parámetros fields o expansions. Esta guía te mostrará cómo usar los parámetros de consulta fields y expansions en tu solicitud para recibir objetos y campos adicionales en tu respuesta. En esta guía, solicitaremos varios campos del siguiente Tweet de la captura de pantalla.   Esta imagen incluye una captura de pantalla de un Tweet publicado por @X. Puedes ver el texto del Tweet, el nombre de usuario, la fecha y hora de publicación, la fuente y las métricas públicas. También incluye un video. Como puedes ver en la captura de pantalla, hay varios elementos de información visibles relacionados con el Tweet, incluido el autor del Tweet, las métricas del Tweet, la marca de tiempo de creación, el video y el número de reproducciones del video. También hay varios datos que no son visibles en la captura de pantalla, pero que siguen estando disponibles para solicitarlos.  Al hacer una solicitud a la API, la respuesta predeterminada es sencilla y contiene solo los campos de Tweet predeterminados (id y text). También solo recibirás el objeto principal que devuelve el endpoint que estás utilizando, y no ninguno de los objetos de datos asociados que puedan estar relacionados con el objeto principal. Esta simplicidad, junto con los parámetros fields y expansions, te permite solicitar solo aquellos campos que necesitas, según tu caso de uso.   

Solicitud de campos y objetos adicionales.

En primer lugar, solicitaremos un objeto Tweet usando un ID de Tweet y el endpoint GET /tweets. Solicitud:
curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969' \
  --header 'Authorization: Bearer $BEARER_TOKEN'
Respuesta:
{
    "data": [
        {
            "id": "1260294888811347969",
            "text": "No te pierdas los Tweets sobre tu Tweet. \n\nAhora en iOS, puedes ver los Retweets con comentarios todo en un solo lugar. https://t.co/oanjZfzC6y"
        }
    ]
}
La siguiente guía paso a paso mostrará cómo recuperar los datos adicionales que se pueden ver en la captura de pantalla.
  1. Identifica los campos adicionales que quieras solicitar mediante nuestro modelo de objetos, o revisando la lista de campos en las páginas de referencia de la API de los endpoints. En este caso, solicitaremos los siguientes campos adicionales: attachments, author_id, created_at, public_metrics.
  2. Crea el parámetro de consulta tweet.fields con los campos anteriores como valor, usando una lista separada por comas: ?tweet.fields=attachments,author_id,created_at,public_metrics
  3. Agrega el parámetro de consulta a la solicitud GET /tweets que hiciste anteriormente.
Solicitud: curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics' \ --header 'Authorization: Bearer $BEARER_TOKEN' Respuesta:
{
    "data": [
        {
            "id": "1260294888811347969",
            "text": "No te pierdas los Tweets sobre tu Tweet. \n\nAhora en iOS, puedes ver los Retweets con comentarios, todo en un solo lugar. https://t.co/oanjZfzC6y",
            "author_id": "783214",
            "public_metrics": {
                "retweet_count": 5219,
                "reply_count": 1828,
                "like_count": 17141,
                "quote_count": 3255
            },
            "attachments": {
                "media_keys": [
                    "13_1260294804770041858"
                ]
            },
            "created_at": "2020-05-12T19:44:51.000Z"
        }
    ]
}
  1. A continuación, solicitaremos campos relacionados con el video incluido en el Tweet. Para hacerlo, usaremos el parámetro expansions con attachments.media_keys como valor y lo agregaremos a la solicitud.
?expansions=attachments.media_keys Solicitud:
curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics&expansions=attachments.media_keys' \
  --header 'Authorization: Bearer $BEARER_TOKEN'
Respuesta, con el objeto de medios representado en el objeto includes:
{
    "data": [
        {
            "id": "1260294888811347969",
            "text": "No te pierdas los Tweets sobre tu Tweet. \n\nAhora en iOS, puedes ver los Retweets con comentarios, todo en un solo lugar. https://t.co/oanjZfzC6y",
            "public_metrics": {
                "retweet_count": 5219,
                "reply_count": 1828,
                "like_count": 17141,
                "quote_count": 3255
            },
            "created_at": "2020-05-12T19:44:51.000Z",
            "attachments": {
                "media_keys": [
                    "13_1260294804770041858"
                ]
            },
            "author_id": "783214"
        }
    ],
    "includes": {
        "media": [
            {
                "media_key": "13_1260294804770041858",
                "type": "video"
            }
        ]
    }
}
  1. Y finalmente, vamos a solicitar el número de visualizaciones y la duración del video. Estos no son campos predeterminados, por lo que tenemos que solicitarlos específicamente. Usa el parámetro media.fields con los valores separados por comas, public_metrics y duration_ms en tu solicitud.
?media.fields=public_metrics,duration_ms Solicitud:   curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics&expansions=attachments.media_keys&media.fields=duration_ms,public_metrics' --header 'Authorization: Bearer $BEARER_TOKEN' Respuesta que ahora incluye todos los datos que aparecen en la captura de pantalla del Tweet:
  {
    "data": [
        {
            "id": "1260294888811347969",
            "text": "No te pierdas los Tweets sobre tu Tweet. \n\nAhora en iOS, puedes ver los Retweets con comentarios todo en un solo lugar. https://t.co/oanjZfzC6y",
            "author_id": "783214",
            "public_metrics": {
                "retweet_count": 5219,
                "reply_count": 1828,
                "like_count": 17141,
                "quote_count": 3255
            },
            "created_at": "2020-05-12T19:44:51.000Z",
            "attachments": {
                "media_keys": [
                    "13_1260294804770041858"
                ]
            }
        }
    ],
    "includes": {
        "media": [
            {
                "duration_ms": 36503,
                "media_key": "13_1260294804770041858",
                "public_metrics": {
                    "view_count": 1534703
                },
                "type": "video"
            }
        ]
    }
}
En total, incluimos los siguientes parámetros en este ejemplo:
  • ids=1260294888811347969
  • tweet.fields=attachments,author_id,created_at,public_metrics
  • expansions=attachments.media_keys
  • media.fields=public_metrics,duration_ms  
Al combinarlos, la cadena de consulta completa se ve así:
?ids=1260294888811347969&tweet.fields=attachments,author\_id,created\_at,public\_metrics&expansions=attachments.media\_keys&media.fields=public\_metrics,duration\_ms

Ejemplos de cargas de datos de X API v2

Tweet

{
  "data": [
    {
      "conversation_id": "1304102743196356610",
      "id": "1307025659294674945",
      "possibly_sensitive": false,
      "public_metrics": {
        "retweet_count": 11,
        "reply_count": 2,
        "like_count": 70,
        "quote_count": 1
      },
      "entities": {
        "urls": [
          {
            "start": 74,
            "end": 97,
            "url": "https://t.co/oeF3ZHeKQQ",
            "expanded_url": "https://dev.to/twitterdev/understanding-the-new-tweet-payload-in-the-twitter-api-v2-1fg5",
            "display_url": "dev.to/twitterdev/und…",
            "images": [
              {
                "url": "https://pbs.twimg.com/news_img/1317156296982867969/2uLfv-Bh?format=jpg&name=orig",
                "width": 1128,
                "height": 600
              },
              {
                "url": "https://pbs.twimg.com/news_img/1317156296982867969/2uLfv-Bh?format=jpg&name=150x150",
                "width": 150,
                "height": 150
              }
            ],
            "status": 200,
            "title": "Understanding the new Tweet payload in the X API v2",
            "description": "X recently announced the new X API v2, rebuilt from the ground up to deliver new features...",
            "unwound_url": "https://dev.to/twitterdev/understanding-the-new-tweet-payload-in-the-twitter-api-v2-1fg5"
          }
        ]
      },
      "text": "Here’s an article that highlights the updates in the new Tweet payload v2 https://t.co/oeF3ZHeKQQ",
      "in_reply_to_user_id": "2244994945",
      "created_at": "2020-09-18T18:36:15.000Z",
      "author_id": "2244994945",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1304102743196356610"
        }
      ],
      "lang": "en",
      "source": "Twitter Web App"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "id": "2244994945",
        "verified": true,
        "location": "127.0.0.1",
        "description": "The voice of the #TwitterDev team and your official source for updates, news, and events, related to the #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "username": "TwitterDev",
        "public_metrics": {
          "followers_count": 513961,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "name": "Twitter Dev",
        "url": "https://t.co/3ZX3TNiZCY",
        "protected": false
      }
    ],
    "tweets": [
      {
        "conversation_id": "1304102743196356610",
        "id": "1304102743196356610",
        "possibly_sensitive": false,
        "public_metrics": {
          "retweet_count": 31,
          "reply_count": 12,
          "like_count": 104,
          "quote_count": 4
        },
        "entities": {
          "mentions": [
            {
              "start": 146,
              "end": 158,
              "username": "suhemparack"
            }
          ],
          "urls": [
            {
              "start": 237,
              "end": 260,
              "url": "https://t.co/CjneyMpgCq",
              "expanded_url": "https://x.com/TwitterDev/status/1304102743196356610/video/1",
              "display_url": "pic.x.com/CjneyMpgCq"
            }
          ],
          "hashtags": [
            {
              "start": 8,
              "end": 19,
              "tag": "TwitterAPI"
            }
          ]
        },
        "attachments": {
          "media_keys": [
            "13_1303848070984024065"
          ]
        },
        "text": "La nueva #TwitterAPI incluye algunas mejoras en el payload de Tweet. Probablemente te estés preguntando: ¿cuáles son las principales diferencias? 🧐\n\nEn este video, @SuhemParack compara el payload de Tweet v1.1 con lo que encontrarás usando nuestros endpoints v2. https://t.co/CjneyMpgCq",
        "created_at": "2020-09-10T17:01:37.000Z",
        "author_id": "2244994945",
        "lang": "en",
        "source": "Twitter Media Studio"
      }
    ]
  }
}

Respuesta a un Tweet

{
  "data": [
    {
      "lang": "en",
      "conversation_id": "1296887091901718529",
      "text": "See how @PennMedCDH are using Twitter data to understand the COVID-19 health crisis 📊\n\nhttps://t.co/1tdA8uDWes",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1296887091901718529"
        }
      ],
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 30,
            "end": 36,
            "probability": 0.6318,
            "type": "Product",
            "normalized_text": "Twitter"
          }
        ],
        "mentions": [
          {
            "start": 8,
            "end": 19,
            "username": "PennMedCDH"
          }
        ],
        "urls": [
          {
            "start": 87,
            "end": 110,
            "url": "https://t.co/1tdA8uDWes",
            "expanded_url": "https://developer.x.com/en/use-cases/success-stories/penn",
            "display_url": "developer.x.com/en/use-cases/s…",
            "status": 200,
            "title": "Penn Medicine Center for Digital Health",
            "description": "Penn Med Center for Digital Health has created a COVID-19 Twitter map that includes charts detailing sentiment, symptoms reported, state-by-state data cuts, and border data on the COVID-19 outbreak. In addition, their Penn Med With You initiative uses aggregate regional information from Twitter to inform their website and text-messaging service. The service uses this information to disseminate relevant and timely resources.",
            "unwound_url": "https://developer.x.com/en/use-cases/success-stories/penn"
          }
        ]
      },
      "id": "1296887316556980230",
      "public_metrics": {
        "retweet_count": 9,
        "reply_count": 3,
        "like_count": 26,
        "quote_count": 2
      },
      "author_id": "2244994945",
      "in_reply_to_user_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "Brand Category",
            "description": "Categorías dentro de verticales de marca que delimitan el alcance de las marcas"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Services"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Marcas y empresas"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "123",
            "name": "Ongoing News Story",
            "description": "Historias de noticias en curso como 'Brexit'"
          },
          "entity": {
            "id": "1220701888179359745",
            "name": "COVID-19"
          }
        }
      ],
      "source": "Twitter Web App",
      "created_at": "2020-08-21T19:10:05.000Z"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "La voz del equipo #TwitterDev y tu fuente oficial de actualizaciones, noticias y eventos relacionados con la #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      },
      {
        "created_at": "2013-07-23T16:58:03.000Z",
        "id": "1615654896",
        "protected": false,
        "username": "PennMedCDH",
        "verified": false,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/7eS9RuwIb9",
                "expanded_url": "http://centerfordigitalhealth.upenn.edu/",
                "display_url": "centerfordigitalhealth.upenn.edu"
              }
            ]
          },
          "description": {
            "mentions": [
              {
                "start": 0,
                "end": 13,
                "username": "PennMedicine"
              }
            ]
          }
        },
        "description": "El Centro de Salud Digital de @PennMedicine impulsa la ciencia al investigar las implicaciones del avance de la tecnología de salud digital en la atención médica.",
        "public_metrics": {
          "followers_count": 1348,
          "following_count": 455,
          "tweet_count": 1288,
          "listed_count": 92
        },
        "location": "Philadelphia, PA",
        "name": "Penn Med CDH",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1067488849725726723/MoO3FQ44_normal.jpg",
        "url": "https://t.co/7eS9RuwIb9"
      }
    ],
    "tweets": [
      {
        "lang": "en",
        "conversation_id": "1296887091901718529",
        "text": "Dr. @RainaMerchant and her team at the Penn Medicine CDH are helping build the future of health care.\n\nThe team is using insights from social data in many different ways — ranging from uncovering risk factors to shedding light on public sentiment. 🔎",
        "possibly_sensitive": false,
        "entities": {
          "annotations": [
            {
              "start": 39,
              "end": 55,
              "probability": 0.8274,
              "type": "Organization",
              "normalized_text": "Penn Medicine CDH"
            }
          ],
          "mentions": [
            {
              "start": 4,
              "end": 18,
              "username": "RainaMerchant"
            }
          ]
        },
        "id": "1296887091901718529",
        "public_metrics": {
          "retweet_count": 9,
          "reply_count": 7,
          "like_count": 32,
          "quote_count": 0
        },
        "author_id": "2244994945",
        "source": "Twitter Web App",
        "created_at": "2020-08-21T19:09:12.000Z"
      }
    ]
  }
}

Tweet extendido

{
  "data": [
    {
      "conversation_id": "1296121314218897408",
      "id": "1296121314218897408",
      "possibly_sensitive": false,
      "public_metrics": {
        "retweet_count": 54,
        "reply_count": 9,
        "like_count": 172,
        "quote_count": 23
      },
      "entities": {
        "urls": [
          {
            "start": 192,
            "end": 215,
            "url": "https://t.co/khXhTurm9x",
            "expanded_url": "https://devcommunity.x.com/t/hide-replies-now-available-in-the-new-twitter-api/140996",
            "display_url": "devcommunity.com/t/hide-replies…",
            "images": [
              {
                "url": "https://pbs.twimg.com/news_img/1296121315514957825/3CI24hSI?format=png&name=orig",
                "width": 400,
                "height": 400
              },
              {
                "url": "https://pbs.twimg.com/news_img/1296121315514957825/3CI24hSI?format=png&name=150x150",
                "width": 150,
                "height": 150
              }
            ],
            "status": 200,
            "title": "Ocultar respuestas ya disponible en la nueva API de Twitter",
            "description": "Hoy nos complace anunciar la disponibilidad general del endpoint para ocultar respuestas en la nueva API de Twitter. El endpoint para ocultar respuestas te permite crear herramientas que ayuden a las personas a ocultar o mostrar respuestas a sus Tweets. Las personas gestionan sus respuestas por muchas razones, incluyendo dar menos atención a comentarios abusivos, que distraen, engañosos, o para hacer las conversaciones más interesantes. A través de este endpoint, puedes crear herramientas para ayudar a las personas en Twitter a ocultar o mostrar respuestas de forma más rápida y...",
            "unwound_url": "https://devcommunity.x.com/t/hide-replies-now-available-in-the-new-twitter-api/140996"
          }
        ],
        "hashtags": [
          {
            "start": 178,
            "end": 189,
            "tag": "TwitterAPI"
          }
        ]
      },
      "text": "¡El endpoint para ocultar respuestas se lanza hoy! \n\nLos desarrolladores pueden ocultar respuestas a Tweets, una forma crucial en que los desarrolladores pueden ayudar a mejorar la salud de la conversación pública usando la #TwitterAPI.\n\nhttps://t.co/khXhTurm9x",
      "created_at": "2020-08-19T16:26:16.000Z",
      "context_annotations": [
        {
          "domain": {
            "id": "65",
            "name": "Vertical de Intereses y Pasatiempos",
            "description": "Agrupaciones de nivel superior de intereses y pasatiempos, como Comida o Viajes"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Tecnología",
            "description": "Tecnología e informática"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Categoría de Intereses y Pasatiempos",
            "description": "Agrupación de entidades de intereses y pasatiempos, como Comida Novedosa o Destinos"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Programación informática",
            "description": "Programación informática"
          }
        }
      ],
      "author_id": "2244994945",
      "lang": "en",
      "source": "Twitter Web App"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "id": "2244994945",
        "verified": true,
        "location": "127.0.0.1",
        "description": "La voz del equipo #TwitterDev y tu fuente oficial de actualizaciones, noticias y eventos relacionados con la #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "username": "TwitterDev",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "name": "Twitter Dev",
        "url": "https://t.co/3ZX3TNiZCY",
        "protected": false
      }
    ]
  }
}

Tweet con contenido multimedia

{
  "data": [
    {
      "lang": "en",
      "conversation_id": "1293593516040269825",
      "text": "It’s finally here! 🥁 Say hello to the new #TwitterAPI.\n\nWe’re rebuilding the X API v2 from the ground up to better serve our developer community. And today’s launch is only the beginning.\n\nhttps://t.co/32VrwpGaJw https://t.co/KaFSbjWUA8",
      "attachments": {
        "media_keys": [
          "7_1293565706408038401"
        ]
      },
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 78,
            "end": 88,
            "probability": 0.4381,
            "type": "Product",
            "normalized_text": "Twitter API"
          }
        ],
        "hashtags": [
          {
            "start": 42,
            "end": 53,
            "tag": "TwitterAPI"
          }
        ],
        "urls": [
          {
            "start": 195,
            "end": 218,
            "url": "https://t.co/32VrwpGaJw",
            "expanded_url": "https://blog.x.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html",
            "display_url": "blog.x.com/developer/en_u…",
            "images": [
              {
                "url": "https://pbs.twimg.com/news_img/1336475659279818754/_cmRh7QE?format=jpg&name=orig",
                "width": 1200,
                "height": 627
              },
              {
                "url": "https://pbs.twimg.com/news_img/1336475659279818754/_cmRh7QE?format=jpg&name=150x150",
                "width": 150,
                "height": 150
              }
            ],
            "status": 200,
            "title": "Introducing a new and improved X API",
            "description": "Introducing the new X API - rebuilt from the ground up to deliver new features faster so developers can help the world connect to the public conversation happening on Twitter.",
            "unwound_url": "https://blog.x.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html"
          },
          {
            "start": 219,
            "end": 242,
            "url": "https://t.co/KaFSbjWUA8",
            "expanded_url": "https://x.com/TwitterDev/status/1293593516040269825/video/1",
            "display_url": "pic.x.com/KaFSbjWUA8"
          }
        ]
      },
      "id": "1293593516040269825",
      "public_metrics": {
        "retweet_count": 958,
        "reply_count": 171,
        "like_count": 2848,
        "quote_count": 333
      },
      "author_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "Brand Category",
            "description": "Categorías dentro de las verticales de marca que delimitan el alcance de las marcas"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Servicios"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Marca",
            "description": "Marcas y compañías"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "65",
            "name": "Vertical de intereses y pasatiempos",
            "description": "Agrupaciones de nivel superior de intereses y pasatiempos, como comida o viajes"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Tecnología",
            "description": "Tecnología e informática"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Categoría de intereses y pasatiempos",
            "description": "Agrupación de entidades de intereses y pasatiempos, como comida novedosa o destinos"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Programación informática",
            "description": "Programación informática"
          }
        }
      ],
      "source": "Twitter Web App",
      "created_at": "2020-08-12T17:01:42.000Z"
    }
  ],
  "includes": {
    "media": [
      {
        "height": 720,
        "duration_ms": 34875,
        "media_key": "7_1293565706408038401",
        "type": "video",
        "preview_image_url": "https://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
        "public_metrics": {
          "view_count": 279438
        },
        "width": 1280
      }
    ],
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "La voz del equipo #TwitterDev y tu fuente oficial de actualizaciones, noticias y eventos relacionados con #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      }
    ]
  }
}`


### Retweet

      `{
  "data": [
    {
      "public_metrics": {
        "retweet_count": 19,
        "reply_count": 0,
        "like_count": 0,
        "quote_count": 0
      },
      "conversation_id": "1229851574555508737",
      "id": "1229851574555508737",
      "entities": {
        "annotations": [
          {
            "start": 28,
            "end": 38,
            "probability": 0.261,
            "type": "Product",
            "normalized_text": "Alexa Skill"
          },
          {
            "start": 44,
            "end": 50,
            "probability": 0.7332,
            "type": "Product",
            "normalized_text": "Twitter"
          }
        ],
        "mentions": [
          {
            "start": 3,
            "end": 15,
            "username": "suhemparack"
          }
        ]
      },
      "text": "RT @suhemparack: I built an Alexa Skill for Twitter using APL that allows you to view Tweets and Trends on the echo show!\n\nCheck it out her…",
      "created_at": "2020-02-18T19:33:59.000Z",
      "possibly_sensitive": false,
      "author_id": "2244994945",
      "referenced_tweets": [
        {
          "type": "retweeted",
          "id": "1229843515603144704"
        }
      ],
      "context_annotations": [
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Marcas y compañías"
          },
          "entity": {
            "id": "10026792024",
            "name": "Amazon"
          }
        },
        {
          "domain": {
            "id": "48",
            "name": "Product",
            "description": "Productos creados por marcas. Ejemplos: Ford Explorer, Apple iPhone."
          },
          "entity": {
            "id": "968221983803494400",
            "name": "Amazon - Alexa",
            "description": "Alexa"
          }
        },
        {
          "domain": {
            "id": "46",
            "name": "Brand Category",
            "description": "Categorías dentro de verticales de marca que delimitan el alcance de las marcas"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Servicios"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Marcas y compañías"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        }
      ],
      "source": "Twitter Web App",
      "lang": "en"
    }
  ],
  "includes": {
    "users": [
      {
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "username": "TwitterDev",
        "name": "Twitter Dev",
        "location": "127.0.0.1",
        "url": "https://t.co/3ZX3TNiZCY",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "id": "2244994945",
        "description": "The voice of the #TwitterDev team and your official source for updates, news, and events, related to the #TwitterAPI.",
        "verified": true,
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "pinned_tweet_id": "1293593516040269825",
        "created_at": "2013-12-14T04:35:55.000Z",
        "protected": false
      },
      {
        "profile_image_url": "https://pbs.twimg.com/profile_images/1230703695051935747/TbQKe91L_normal.jpg",
        "username": "suhemparack",
        "name": "Suhem Parack",
        "location": "Seattle, WA",
        "url": "https://t.co/8IkCzClPCz",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/8IkCzClPCz",
                "expanded_url": "https://developer.x.com",
                "display_url": "developer.x.com"
              }
            ]
          },
          "description": {
            "mentions": [
              {
                "start": 42,
                "end": 50,
                "username": "Twitter"
              }
            ]
          }
        },
        "id": "857699969263964161",
        "description": "Developer Relations for Academic Research @Twitter. Talk to me about research with Twitter data. Previously: Amazon Alexa. Views are my own",
        "verified": false,
        "public_metrics": {
          "followers_count": 738,
          "following_count": 512,
          "tweet_count": 460,
          "listed_count": 12
        },
        "pinned_tweet_id": "1296498078233571329",
        "created_at": "2017-04-27T20:56:22.000Z",
        "protected": false
      }
    ],
    "tweets": [
      {
        "public_metrics": {
          "retweet_count": 19,
          "reply_count": 1,
          "like_count": 71,
          "quote_count": 6
        },
        "conversation_id": "1229843515603144704",
        "id": "1229843515603144704",
        "entities": {
          "annotations": [
            {
              "start": 11,
              "end": 21,
              "probability": 0.3342,
              "type": "Product",
              "normalized_text": "Alexa Skill"
            },
            {
              "start": 27,
              "end": 33,
              "probability": 0.6727,
              "type": "Product",
              "normalized_text": "Twitter"
            }
          ],
          "urls": [
            {
              "start": 127,
              "end": 150,
              "url": "https://t.co/l5J8wq748G",
              "expanded_url": "https://dev.to/twitterdev/building-an-alexa-skill-for-twitter-using-alexa-presentation-language-1aj0",
              "display_url": "dev.to/twitterdev/bui…",
              "status": 200,
              "unwound_url": "https://dev.to/twitterdev/building-an-alexa-skill-for-twitter-using-alexa-presentation-language-1aj0"
            }
          ]
        },
        "text": "I built an Alexa Skill for Twitter using APL that allows you to view Tweets and Trends on the echo show!\n\nCheck it out here 👇\n\nhttps://t.co/l5J8wq748G",
        "created_at": "2020-02-18T19:01:58.000Z",
        "possibly_sensitive": false,
        "author_id": "857699969263964161",
        "context_annotations": [
          {
            "domain": {
              "id": "47",
              "name": "Brand",
              "description": "Marcas y compañías"
            },
            "entity": {
              "id": "10026792024",
              "name": "Amazon"
            }
          },
          {
            "domain": {
              "id": "48",
              "name": "Product",
              "description": "Productos creados por marcas. Ejemplos: Ford Explorer, Apple iPhone."
            },
            "entity": {
              "id": "968221983803494400",
              "name": "Amazon - Alexa",
              "description": "Alexa"
            }
          },
          {
            "domain": {
              "id": "46",
              "name": "Brand Category",
              "description": "Categorías dentro de verticales de marca que delimitan el alcance de las marcas"
            },
            "entity": {
              "id": "781974596752842752",
              "name": "Servicios"
            }
          },
          {
            "domain": {
              "id": "47",
              "name": "Brand",
              "description": "Marcas y compañías"
            },
            "entity": {
              "id": "10045225402",
              "name": "Twitter"
            }
          }
        ],
        "source": "Twitter Web App",
        "lang": "en"
      }
    ]
  }
}`


### Quote Tweet

      `{
  "data": [
    {
      "lang": "en",
      "conversation_id": "1328399838128467969",
      "text": "As planned, the Labs v2 endpoints referenced below have now been retired. Please let us know in the forums if you have questions or need help with the X API v2! https://t.co/JaxttUMmjX",
      "referenced_tweets": [
        {
          "type": "quoted",
          "id": "1327011423252144128"
        }
      ],
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 151,
            "end": 157,
            "probability": 0.8115,
            "type": "Product",
            "normalized_text": "Twitter"
          }
        ],
        "urls": [
          {
            "start": 167,
            "end": 190,
            "url": "https://t.co/JaxttUMmjX",
            "expanded_url": "https://x.com/TwitterDev/status/1327011423252144128",
            "display_url": "twitter.com/TwitterDev/sta…"
          }
        ]
      },
      "id": "1328399838128467969",
      "public_metrics": {
        "retweet_count": 7,
        "reply_count": 4,
        "like_count": 29,
        "quote_count": 1
      },
      "author_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "Brand Category",
            "description": "Categorías dentro de verticales de marca que delimitan el alcance de las marcas"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Servicios"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Marcas y empresas"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "65",
            "name": "Interests and Hobbies Vertical",
            "description": "Agrupaciones de nivel superior de intereses y pasatiempos, como comida o viajes"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Tecnología",
            "description": "Tecnología e informática"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Interests and Hobbies Category",
            "description": "Una agrupación de entidades de intereses y pasatiempos, como comida novedosa o destinos"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Programación informática",
            "description": "Programación informática"
          }
        }
      ],
      "source": "Twitter Web App",
      "created_at": "2020-11-16T18:09:36.000Z"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "La voz del equipo de #TwitterDev y tu fuente oficial de actualizaciones, noticias y eventos relacionados con la #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      }
    ],
    "tweets": [
      {
        "lang": "en",
        "conversation_id": "1327011423252144128",
        "text": "👋 Friendly reminder that Twitter Developer Labs v2 hide replies and recent search will be retired next Monday, November 16! We encourage you to migrate to the new hide replies and recent search endpoints now available in the v2 #TwitterAPI. Details: https://t.co/r6z6CI7kEy",
        "possibly_sensitive": false,
        "entities": {
          "annotations": [
            {
              "start": 26,
              "end": 50,
              "probability": 0.4387,
              "type": "Product",
              "normalized_text": "Twitter Developer Labs v2"
            }
          ],
          "hashtags": [
            {
              "start": 228,
              "end": 239,
              "tag": "TwitterAPI"
            }
          ],
          "urls": [
            {
              "start": 250,
              "end": 273,
              "url": "https://t.co/r6z6CI7kEy",
              "expanded_url": "https://devcommunity.x.com/t/retiring-labs-v2-recent-search-and-hide-replies/145795",
              "display_url": "devcommunity.com/t/retiring-lab…",
              "images": [
                {
                  "url": "https://pbs.twimg.com/news_img/1327011425240313856/PkurOyu1?format=jpg&name=orig",
                  "width": 1200,
                  "height": 630
                },
                {
                  "url": "https://pbs.twimg.com/news_img/1327011425240313856/PkurOyu1?format=jpg&name=150x150",
                  "width": 150,
                  "height": 150
                }
              ],
              "status": 200,
              "title": "Retiro de búsqueda reciente y ocultar respuestas de Labs v2",
              "description": "Como mencionamos en nuestros anuncios de acceso anticipado y ocultar respuestas, los siguientes endpoints de Twitter Developer Labs v2 se retirarán el 16 de noviembre. Búsqueda reciente de Labs v2 Ocultar respuestas de Labs v2 Si se invocan, estos endpoints responderán con un estado HTTP 410 y no devolverán datos. Con base en tus comentarios de Labs, incorporamos la funcionalidad correspondiente en la X API v2. La documentación relevante se puede encontrar usando los enlaces a continuación. Haz clic aquí para inscribirte en el acceso v2 si aún no lo has hecho...",
              "unwound_url": "https://devcommunity.x.com/t/retiring-labs-v2-recent-search-and-hide-replies/145795"
            }
          ]
        },
        "id": "1327011423252144128",
        "public_metrics": {
          "retweet_count": 8,
          "reply_count": 2,
          "like_count": 33,
          "quote_count": 4
        },
        "author_id": "2244994945",
        "context_annotations": [
          {
            "domain": {
              "id": "46",
              "name": "Brand Category",
              "description": "Categorías dentro de verticales de marca que delimitan el alcance de las marcas"
            },
            "entity": {
              "id": "781974596752842752",
              "name": "Servicios"
            }
          },
          {
            "domain": {
              "id": "47",
              "name": "Brand",
              "description": "Marcas y empresas"
            },
            "entity": {
              "id": "10045225402",
              "name": "Twitter"
            }
          },
          {
            "domain": {
              "id": "65",
              "name": "Interests and Hobbies Vertical",
              "description": "Agrupaciones de nivel superior de intereses y pasatiempos, como comida o viajes"
            },
            "entity": {
              "id": "848920371311001600",
              "name": "Technology",
              "description": "Technology and computing"
            }
          },
          {
            "domain": {
              "id": "66",
              "name": "Interests and Hobbies Category",
              "description": "Una agrupación de entidades de intereses y pasatiempos, como comida novedosa o destinos"
            },
            "entity": {
              "id": "848921413196984320",
              "name": "Computer programming",
              "description": "Computer programming"
            }
          }
        ],
        "source": "Twitter Web App",
        "created_at": "2020-11-12T22:12:32.000Z"
      }
    ]
  }
}

Retweet de Tweet citado

{
    "data": [
    {
      "lang": "en",
      "conversation_id": "1225470895902412800",
      "text": "RT @AureliaSpecker: 📣 If you enjoyed the London commute tutorial I wrote in November last year, check out the refactored version that uses…",
      "referenced_tweets": [
        {
          "type": "retweeted",
          "id": "1224709550214873090"
        }
      ],
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 42,
            "end": 47,
            "probability": 0.6999,
            "type": "Place",
            "normalized_text": "London"
          }
        ],
        "mentions": [
          {
            "start": 3,
            "end": 18,
            "username": "AureliaSpecker"
          }
        ]
      },
      "id": "1225470895902412800",
      "public_metrics": {
        "retweet_count": 12,
        "reply_count": 0,
        "like_count": 0,
        "quote_count": 0
      },
      "author_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "Brand Category",
            "description": "Categorías dentro de verticales de marca que delimitan el alcance de las marcas"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Services"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Marcas y empresas"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "65",
            "name": "Interests and Hobbies Vertical",
            "description": "Agrupaciones de nivel superior de intereses y pasatiempos, como Comida o Viajes"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Technology",
            "description": "Tecnología e informática"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Interests and Hobbies Category",
            "description": "Agrupación de entidades de intereses y pasatiempos, como Comida novedosa o Destinos"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Computer programming",
            "description": "Programación de computadoras"
          }
        }
      ],
      "source": "Twitter for iPhone",
      "created_at": "2020-02-06T17:26:44.000Z"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "La voz del equipo de #TwitterDev y tu fuente oficial de actualizaciones, noticias y eventos relacionados con la #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      },
      {
        "created_at": "2013-01-18T23:45:43.000Z",
        "id": "1102321381",
        "protected": false,
        "username": "AureliaSpecker",
        "verified": false,
        "entities": {
          "description": {
            "mentions": [
              {
                "start": 7,
                "end": 17,
                "username": "TwitterUK"
              },
              {
                "start": 86,
                "end": 95,
                "username": "_dormrod"
              }
            ]
          }
        },
        "description": "devrel @TwitterUK • Suiza en Londres • madre de plantas de interior • peluquera personal de @_dormrod",
        "pinned_tweet_id": "1253069421322567681",
        "public_metrics": {
          "followers_count": 1036,
          "following_count": 1330,
          "tweet_count": 855,
          "listed_count": 26
        },
        "location": "London, UK",
        "name": "Aurelia Specker",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1137517534104772608/8FBYgc6G_normal.jpg",
        "url": ""
      }
    ],
    "tweets": [
      {
        "lang": "en",
        "conversation_id": "1224709550214873090",
        "text": "📣 If you enjoyed the London commute tutorial I wrote in November last year, check out the refactored version that uses Twitter's new search endpoint 🚇 https://t.co/87XIPZmZBJ\n\n#DEVcommunity #Pythontutorial @TwitterDev @TwitterAPI https://t.co/dXrJYvn3hY",
        "referenced_tweets": [
          {
            "type": "quoted",
            "id": "1195000047089389573"
          }
        ],
        "possibly_sensitive": false,
        "entities": {
          "annotations": [
            {
              "start": 22,
              "end": 27,
              "probability": 0.7075,
              "type": "Place",
              "normalized_text": "London"
            },
            {
              "start": 120,
              "end": 126,
              "probability": 0.7355,
              "type": "Product",
              "normalized_text": "Twitter"
            }
          ],
          "mentions": [
            {
              "start": 206,
              "end": 217,
              "username": "TwitterDev"
            },
            {
              "start": 218,
              "end": 229,
              "username": "TwitterAPI"
            }
          ],
          "hashtags": [
            {
              "start": 176,
              "end": 189,
              "tag": "DEVcommunity"
            },
            {
              "start": 190,
              "end": 205,
              "tag": "Pythontutorial"
            }
          ],
          "urls": [
            {
              "start": 151,
              "end": 174,
              "url": "https://t.co/87XIPZmZBJ",
              "expanded_url": "https://bit.ly/2OrnrCC",
              "display_url": "bit.ly/2OrnrCC",
              "status": 200,
              "unwound_url": "https://dev.to/twitterdev/migrate-to-twitter-s-newly-released-labs-recent-search-endpoint-3npe"
            },
            {
              "start": 230,
              "end": 253,
              "url": "https://t.co/dXrJYvn3hY",
              "expanded_url": "https://x.com/AureliaSpecker/status/1195000047089389573",
              "display_url": "twitter.com/AureliaSpecker…"
            }
          ]
        },
        "id": "1224709550214873090",
        "public_metrics": {
          "retweet_count": 12,
          "reply_count": 0,
          "like_count": 43,
          "quote_count": 2
        },
        "author_id": "1102321381",
        "context_annotations": [
          {
            "domain": {
              "id": "46",
              "name": "Brand Category",
              "description": "Categorías dentro de verticales de marca que delimitan el alcance de las marcas"
            },
            "entity": {
              "id": "781974596752842752",
              "name": "Servicios"
            }
          },
          {
            "domain": {
              "id": "47",
              "name": "Brand",
              "description": "Marcas y empresas"
            },
            "entity": {
              "id": "10045225402",
              "name": "Twitter"
            }
          },
          {
            "domain": {
              "id": "65",
              "name": "Interests and Hobbies Vertical",
              "description": "Agrupaciones de nivel superior de intereses y pasatiempos, como Comida o Viajes"
            },
            "entity": {
              "id": "848920371311001600",
              "name": "Tecnología",
              "description": "Tecnología e informática"
            }
          },
          {
            "domain": {
              "id": "66",
              "name": "Interests and Hobbies Category",
              "description": "Una agrupación de entidades de intereses y pasatiempos, como Comida novedosa o Destinos"
            },
            "entity": {
              "id": "848921413196984320",
              "name": "Programación informática",
              "description": "Programación informática"
            }
          }
        ],
        "source": "Twitter Web App",
        "created_at": "2020-02-04T15:01:25.000Z"
      }
    ]
  }
}