Saltar al contenido principal

Introducción

Con el lanzamiento de la versión v2 de la X API, hemos adoptado un nuevo formato de respuesta de datos y un nuevo método para solicitar distintos objetos y campos, al que simplemente llamamos formato de X API v2.  En la sección de diferencias generales, puedes conocer algunos cambios relevantes para usuarios estándar y empresariales. Sin embargo, también hemos preparado una guía específica para el formato nativo estándar v1.1, el formato Native Enriched para empresas y el formato Activity Streams para empresas, que ayuda a mapear campos y explica qué campos y expansions debes usar para solicitar los nuevos campos de v2.  También puede interesarte nuestra herramienta visual de migración de formato de datos, que te ayuda a ver rápidamente las diferencias entre el formato de datos de X API v1.1 y el formato de X API v2.

Diferencias generales

Solicitar objetos y campos

Uno de los cambios más importantes entre los endpoints anteriores a v2 y los de v2 es que la versión más reciente solo devuelve unos pocos campos de forma predeterminada, mientras que los endpoints estándar, premium y enterprise devuelven la mayoría de los campos por defecto. La nueva versión utiliza parámetros llamados fields y expansions para solicitar específicamente datos adicionales más allá de los valores predeterminados, lo que significa que puedes solicitar solo los datos que necesitas sin tener que procesar campos que no te interesan.  Cualquier campo que solicites que esté relacionado con el objeto de datos primario se devolverá en ese objeto de datos primario junto con los valores predeterminados. Sin embargo, si solicitas objetos expandidos usando el parámetro expansions, los objetos secundarios se devolverán en un nuevo objeto includes. Puedes relacionar los objetos expandidos del objeto includes con el objeto principal utilizando el campo id, que se devolverá en ambos. Por ejemplo, si estás utilizando el endpoint v2 Post lookup e incluyes el parámetro expansions=author_id en tu solicitud, recibirás el campo author_id dentro del objeto principal de la Publicación, así como un objeto user por Publicación en el objeto includes, cada uno de los cuales incluirá el campo id predeterminado que se puede usar para relacionar el objeto user con el objeto de la Publicación. A continuación se muestra un ejemplo de cómo se ve esto:
{
  "data": [
    {
      "author_id": "2244994945",
      "id": "1397568983931392004",
      "text": "The Twitter Developer Platform. Ooh la la! https://t.co/iGTdPXBfOv https://t.co/Ze8z8EODdg"
    }
  ],
  "includes": {
    "users": [
      {
        "id": "2244994945",
        "name": "Twitter Dev",
        "username": "TwitterDev"
      }
    ]
  }
}

Diseño JSON actualizado

Además de los cambios en cómo solicitas ciertos campos, X API v2 también introduce nuevos diseños JSON para los objetos que devuelven las API, incluidos los objetos de Publicación y de usuario.
  • En el nivel raíz del JSON, los endpoints estándar devuelven objetos de Publicación en un array statuses, mientras que X API v2 devuelve un array data
  • En lugar de hacer referencia a “statuses” retuiteados y citados, el JSON de X API v2 hace referencia a Tweets retuiteados y citados. Muchos campos heredados y obsoletos, como contributors y user.translator_type, se están eliminando. 
  • En lugar de usar tanto favorites (en el objeto de Publicación) como favourites (en el objeto de usuario), X API v2 usa el término like. 
  • X adopta la convención de que los valores JSON que no tienen valor (por ejemplo, null) no se incluyen en la carga útil. Los atributos de Publicación y de usuario solo se incluyen si tienen valores no nulos.   

Nuevos campos en v2

También introdujimos un nuevo conjunto de campos en el objeto Publicación que incluye lo siguiente:
  • Un campo conversation_id
  • Dos nuevos campos de annotations, incluidos context y entities
  • Varios campos nuevos de metrics 
  • Un nuevo campo reply_setting, que indica quién puede responder a una determinada Publicación

Migrar del formato de datos estándar de v1.1 a v2

Si aún no lo has hecho, te recomendamos que primero leas la introducción a la migración de formatos de datos. También puede interesarte nuestra herramienta visual de migración de formatos de datos, que te ayuda a ver rápidamente las diferencias entre el formato de datos de X API v1.1 y el formato de datos de X API v2. El formato de datos estándar de v1.1, también conocido como formato nativo, es el formato principal que se ofrece con los endpoints estándar de v1.1. Si estás usando el producto premium, consulta la guía de datos nativos enriquecidos. Los clientes empresariales podrían estar usando datos nativos enriquecidos o flujos de actividad, según cómo esté configurada tu cuenta en la consola de Gnip. 

Estructura del payload estándar v1.1 vs v2

La siguiente tabla muestra los objetos de alto nivel y el formato que puedes esperar recibir de v2 en comparación con el formato de v1.1.
estructura v1.1estructura v2
Predeterminada{
todos los campos del objeto Tweet,
“entities”: {
“hashtags”: [],
“symbols”: [],
“user_mentions”: [],
“urls”: [],
“media”: []
},
“extended_entities”: ,
“user”: ,
“place”: ,
“retweeted_status/quoted_status”
}
{
“data”: [{
“id”,
“text”,

“edit_history_tweet_ids”
}]
}
Con parámetros definidos de campo y expansión{
“data”: [{
campos del objeto Tweet,
“entities”: {
“hashtags”: [],
“cashtags”: [],
“mentions”: [],
“urls”: [],
},
“attachments”: {

“media_keys”: [],

“poll_ids”: []

}
}],
“includes”: [
“tweets”: [objetos Tweet],
“users”: [objetos de usuario],
“media”: [objetos multimedia],
“places”: [objeto de lugar],

“polls”: [objeto de encuesta]
],

“matching_rules”: []
}
Asignación de campos La siguiente sección describe qué campos de v1.1 se asignan a campos de v2, así como qué parámetros de v2 son necesarios para recibir el nuevo campo.  

Objeto Tweet

Formato de Twitter 1.1Formato de Twitter v2Parámetros v2 requeridos
created_atdata.created_attweet.fields=created_at
idN/A id es una cadena
id_strdata.idpredeterminado
textdata.textpredeterminado
full_textN/A text incluye el texto completo
truncatedN/A text incluye el texto completo
display_text_rangeN/A text incluye el texto completo
edit_historydata.edit_history_tweet_idspredeterminado
edit_controlsdata.edit_controlstweet.fields=edit_controls
editabledata.edit_controls.is_edit_eligibletweet.fields=edit_controls
entitiesdata.entitiestweet.fields=entities
entities.user_mentionsdata.entities.mentionstweet.fields=entities
entities.symbolsdata.entities.cashtagstweet.fields=entities
entities.hashtagsdata.entities.hashtagstweet.fields=entities
entities.urlsdata.entities.urlstweet.fields=entities
entities.mediaincludes.mediaexpansions=attachments.media_keys
extended_entitiesdata.attachmentstweet_fields=attachments
in_reply_to_status_idN/A referenced_tweets.id es una cadena
in_reply_to_status_id_strdata.referenced_tweets.id (si type=replied_to)expansions=referenced_tweets.id
in_reply_to_user_idN/A in_reply_to_user_id es una cadena
in_reply_to_user_id_strdata.in_reply_to_user_idtweet.fields=in_reply_to_user_id
in_reply_to_screen_nameincludes.users..usernametweet.fields=in_reply_to_user_id&expansions=entities.mentions.username
userincludes.usersexpansions=author_id
geodata.geo.place_idtweet.fields=geo
coordinatesdata.geo.place_idexpansions=geo.place_id
placedata.geo.place_idexpansions=geo.place_id
retweeted_statusdata.referenced_tweets.id (si type=retweeted)expansions=referenced_tweets.id
is_quoted_statusNo disponible
quoted_status_idN/A referenced_tweets.id es una cadena
quoted_status_id_strdata.referenced_tweets.id (si type=quoted)expansions=referenced_tweets.id
quoted_status_permalinkNo disponible
quoted_statusdata.referenced_tweets (si type=quoted)expansions=referenced_tweets.id
retweet_countdata.public_metrics.retweet_counttweet.fields=public_metrics
favorite_countdata.public_metrics.like_counttweet.fields=public_metrics
favoritedNo disponible
retweetedNo disponible
possibly_sensitivedata.possibly_sensitivetweet.fields=possibly_sensitive
langdata.langtweet.fields=lang
scopesNo disponible
withhelddata.withheldtweet.fields=withheld
Ejemplo
Objeto Tweet en la v1.1

Ejemplo de URI con parámetros:

https://api.x.com/1.1/statuses/lookup.json?id=1359554366051504129&tweet_mode=extended
Objeto Tweet y solicitud con v2

Ejemplo de URI con parámetros:

https://api.x.com/2/tweets?ids=1359554366051504129&tweet.fields=attachments,author_id,context_annotations,conversation_id,created_at,entities,geo,id,in_reply_to_user_id,lang,possibly_sensitive,public_metrics,referenced_tweets,reply_settings,text,withheld
{
“created_at”: “Wed Feb 10 17:26:34 +0000 2021”,
“id”: 1359554366051504129,
“id_str”: “1359554366051504129”,
“text”: “Adelante, sigue otra cuenta de cachorritos. No te juzgaremos. \n\nPresentamos los endpoints de administración de follows en la nueva… https://t.co/3cBZKZUevF”,
“truncated”: true,
“entities”: {
“hashtags”: [],
“symbols”: [],
“user_mentions”: [],
“urls”: [{
“url”: “https://t.co/3cBZKZUevF”,
“expanded_url”: “https://twitter.com/i/web/status/1359554366051504129”,
“display_url”: “twitter.com/i/web/status/1…”,
“indices”: [
111,
134
]
}]
},

“in_reply_to_status_id”: null,
“in_reply_to_status_id_str”: null,
“in_reply_to_user_id”: null,
“in_reply_to_user_id_str”: null,
“in_reply_to_screen_name”: null,
“user”: {

},
“geo”: null,
“coordinates”: null,
“place”: null,
“contributors”: null,
“is_quote_status”: false,
“retweet_count”: 18,
“favorite_count”: 98,
“favorited”: false,
“retweeted”: false,
“possibly_sensitive”: false,
“possibly_sensitive_appealable”: false,
“lang”: “en”
}
{
“data”: [{
“id”:“1359554366051504129”,
“texto”:“Adelante, sigue otra cuenta de cachorros. No te juzgaremos. \n\nPresentamos los endpoints de gestión de seguimientos para la nueva #TwitterAPI. Ahora puedes usar la API v2 para seguir y dejar de seguir cuentas. Más información https://t.co/mtpd9VIMDa”,
“lang”:“es”,
“conversación_id”:“1359554366051504129”,
“possibly_sensible”: false,
“responder_configuración”:“everyone”,
“created_at”:“2021-02-10T17:26:34.000Z”,
“author_id”:“2244994945”,
“public_metrics”:{
“retweet_count”: 18,
“responder_count”: 11,
“like_count”: 98,
“cita textual_count”: 7
},
“entities”:{
“hashtags”: [{
“inicio”: 110,
“final”: 121,
“tag”:“TwitterAPI”
}],
“urls”: [{
“inicio”: 194,
“final”: 217,
“url”:“https://t.co/mtpd9VIMDa”,
“expandido_url”:“https://devcommunity.x.com/t/introducing-the-new-manage-follows-endpoints-to-the-twitter-api-v2/149465”,
“display_url”:“devcommunity.com/t/introducing-…”,
“images”: [{
“url”:“https://pbs.twimg.com/news_img/1359554367905427457/DczC72__?format=jpg&name=orig”,
“width”: 1200,
“height”: 630
},
{
“url”:“https://pbs.twimg.com/news_img/1359554367905427457/DczC72__?format=jpg&name=150x150”,
“width”: 150,
“height”: 150
}
],
“status”: 200,
“title”:“Presentamos los nuevos endpoints de gestión de seguimientos en X API v2”,
“descripción”:“¿Seguir o no seguir? Ahora puedes responder esa pregunta como quieras usando X API v2. Hoy nos complace anunciar el lanzamiento de los nuevos endpoints de gestión de seguimientos en la nueva Twitter API. Como adelantamos cuando lanzamos los endpoints de consulta de seguimientos hace poco más de un mes, la capacidad de gestionar relaciones de seguimiento finalmente está aquí. Estos son algunos de nuestros endpoints más populares en nuestras APIs v1.1, por lo que estamos entusiasmados de habilitar una amplia gama de casos de uso en X API v2. C…”,
“unwound_url”:“https://devcommunity.x.com/t/introducing-the-new-manage-follows-endpoints-to-the-twitter-api-v2/149465
}]
},
“context_anotaciones”: [{
“domain”:{
“id”:“46”,
“name”:“Categoría de marca”,
“descripción”:“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”,
“descripción”:“Marcas y compañías”
},
“entity”:{
“id”:“10045225402”,
“name”:“Twitter”
}
}
]
}]
}

Objeto de usuario

Formato de Twitter 1.1Formato de Twitter v2Parámetros obligatorios de v2
user_iddata.author_idtweet.fields=author_id
user.idN/A, usa includes.users.id
user.id_strincludes.users.idexpansions=author_id
user.nameincludes.users.nameexpansions=author_id
user.screen_nameincludes.user.usernameexpansions=author_id
user.locationincludes.users.locationexpansions=author_id&user.fields=location
user.descriptionincludes.users.descriptionexpansions=author_id&user.fields=description
user.urlincludes.users.urlexpansions=author_id&user.fields=entities
user.entitiesincludes.users.entities
user.entities.url.urls.urlincludes.users.entities.url.urls.url
user.entities.url.urls.expanded_urlincludes.users.entities.url.urls.expanded_urlexpansions=author_id&user.fields=entities
user.entities.url.urls.display_urlincludes.users.entities.url.urls.display_urlexpansions=author_id&user.fields=entities
user.entities.url.urls.display_url.indicies[0]includes.users.entities.url.urls.startexpansions=author_id&user.fields=entities
user.entities.url.urls.display_url.indicies[1]includes.users.entities.url.urls.endexpansions=author_id&user.fields=entities
user.protectedincludes.users.protectedexpansions=author_id&user.fields=protected
user.followers_countincludes.users.public_metrics.followers_countexpansions=author_id&user.fields=public_metrics
user.friends_countincludes.users.public_metrics.following_countexpansions=author_id&user.fields=public_metrics
user.listed_countincludes.users.public_metrics.listed_countexpansions=author_id&user.fields=public_metrics
user.created_atincludes.users.created_atexpansions=author_id&user.fields=created_at
user.favourites_count
user.verifiedincludes.users.verifiedexpansions=author_id&user.fields=verified
user.statuses_countincludes.users.public_metrics.tweet_countexpansions=author_id&user.fields=public_metrics
user.profile_image_url_httpsincludes.users.profile_image_urlexpansions=author_id&user.fields=profile_image_url
Ejemplo
Objeto de usuario en v1.1Objeto de usuario y solicitud en v2
”user”:{
“id”: 2244994945,
“id_str”:“2244994945”,
“name”:“Twitter Dev”,
“screen_name”:“TwitterDev”,
“location”:“127.0.0.1”,
“descripción”:“La voz del equipo de #TwitterDev y tu fuente oficial para actualizaciones, noticias y eventos relacionados con la #TwitterAPI.”,
“url”:“https://t.co/3ZX3TNiZCY”,
“entities”:{
“url”:{
“urls”: [{
“url”:“https://t.co/3ZX3TNiZCY”,
“expandido_url”:“https://developer.x.com/es/community”,
“display_url”:“developer.x.com/es/community”,
“indices”: [
0,
23
]
}]
},
“descripción”:{
“urls”: []
}
},
“protected”: false,
“followers_count”: 517232,
“friends_count”: 2032,
“listado_count”: 1722,
“creada_en”:“Sat Dec 14 04:35:55 +0000 2013”,
“favoritos_count”: 2134,
“utc_offset”: null,
“time_zona”: null,
“geo_activado”: true,
“verificado”: true,
“statuses_count”: 3677,
“lang”: null,
“contributors_activado”: false,
“es_traductor”: false,
“es_traducción_activado”: false,
“profile_background_color”:“FFFFFF”,
“profile_background_imagen_url”:“http://abs.twimg.com/images/themes/theme1/bg.png”,
“profile_background_image_url_https”:“https://abs.twimg.com/images/themes/theme1/bg.png”,
“profile_background_mosaico”: false,
“profile_imagen_url”:“http://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”,
“profile_imagen_url_https”:“https://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”,
“profile_banner_url”:“https://pbs.twimg.com/profile_banners/2244994945/1611792896”,
“profile_vínculo_color”:“0084B4”,
“profile_sidebar_border_color”:“FFFFFF”,
“profile_sidebar_rellenar_color”:“DDEEF6”,
“profile_texto_color”:“333333”,
“profile_utilizar_background_imagen”: false,
“tiene_extended_profile”: true,
“predeterminado_profile”: false,
“predeterminado_profile_imagen”: false,
“following”: null,
“seguir_petición_enviado”: null,
“notifications”: null,
“traductor_type”:“regular”
}
{
“data”: [{
“author_id”: “2244994945”,
“id”: “1362876655061073928”,
“text”: “Desde nuestras salas de estar hasta las tuyas 🐱‍💻🛋️ Nuestros defensores de desarrolladores tienen preparadas algunas emocionantes transmisiones en Twitch y eventos virtuales para ayudarte a comenzar con la nueva #TwitterAPI. Consulta el calendario para obtener más detalles y cuéntanos si quieres ver más!\n👇\nhttps://t.co/cixDY9qkvH”
}],
“includes”: {
“users”: [{
“public_metrics”: {
“followers_count”: 517233,
“following_count”: 2034,
“tweet_count”: 3677,
“listed_count”: 1727
},
“username”: “TwitterDev”,
“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.”,
“name”: “Twitter Dev”,
“verified”: true,
“location”: “127.0.0.1”,
“id”: “2244994945”,
“protected”: false,
“url”: “https://t.co/3ZX3TNiZCY”,
“profile_image_url”: “https://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”,
“created_at”: “2013-12-14T04:35:55.000Z”
}]
}
}

Objetos de entidades y entidades ampliadas

Formato de Twitter 1.1Formato de Twitter v2Parámetros obligatorios de v2Tipo en v2
entitiesdata.entitiestweet.fields=entitiesobject
entities.hashtagsdata.entities.hashtagstweet.fields=entitiesarray of objects
entities.hashtags.indices[0]data.entities.hashtags.starttweet.fields=entitiesnumber
entities.hashtags.indices[1]data.entities.hashtags.endtweet.fields=entitiesnumber
entities.hashtags.textdata.entities.hashtags.tagtweet.fields=entitiesstring
entities.urlsdata.entities.urlstweet.fields=entitiesarray of objects
entities.urls.indices[0]data.entities.urls.starttweet.fields=entitiesnumber
entities.urls.indices[1]data.entities.urls.endtweet.fields=entitiesnumber
entities.urls.urldata.entities.urls.urltweet.fields=entitiesstring
entities.user_mentionsdata.entities.mentionstweet.fields=entitiesarray of objects
entities.user_mentions.indicies[0]data.entities.mentions.starttweet.fields=entitiesnumber
entities.user_mentions.indicies[1]data.entities.mentions.endtweet.fields=entitiesnumber
entities.user_mentions.screen_namedata.entities.mentions.usernametweet.fields=entitiesstring
entities.symbolsdata.entities.cashtagstweet.fields=entitiesarray of objects
entities.symbols.indices[0]data.entities.cashtags.starttweet.fields=entitiesnumber
entities.symbols.indices[1]data.entities.cashtags.endtweet.fields=entitiesnumber
entities.symbols.textdata.entities.cashtags.tagtweet.fields=entitiesstring
entities.mediaincludes.mediaexpansions=attachments.media_keysarray of objects
entities.media.id_strincludes.media.media_keyexpansions=attachments.media_keysstring
entities.media.typeincludes.media.media.typeexpansions=attachments.media_keysstring
entities.media.media_urlN/A, use includes.media.urlstring
entities.media.media_url_httpsincludes.media.urlexpansions=attachments.media_keys&media.fields=urlstring
entities.media.url
entities.media.display_url
entities.media.expanded_url
entities.media.media_url_httpsincludes.media.preview_image_urlexpansions=attachments.media_keys&media.fields=preview_image_urlstring
extended_entitiesdata.attachmentstweet_fields=attachmentsobject
extended_entitiesdata.attachments.media_keystweet.fields=attachmentsarray of objects
extended_entities.mediaincludes.mediaexpansions=attachments.media_keysarray of objects
extended_entities.media.id_strincludes.media.media_keyexpansions=attachments.media_keysstring
extended_entities.media.typeincludes.media.media.typeexpansions=attachments.media_keysstring
extended_entities.media.sizes.thumb.wNo disponible
extended_entities.media.sizes.thumb.hNo disponible
extended_entities.media.sizes.thumb.resizeNo disponible
extended_entities.media.sizes.large.wincludes.media.heightexpansions=attachments.media_keys&media.fields=height
extended_entities.media.sizes.large.hincludes.media.widthexpansions=attachments.media_keys&media.fields=width
extended_entities.media.sizes.large.resizeNo disponible
extended_entities.media.sizes.small.wNo disponible
extended_entities.media.sizes.small.hNo disponible
extended_entities.media.sizes.small.resizeNo disponible
extended_entities.media.sizes.medium.wNo disponible
extended_entities.media.sizes.medium.hNo disponible
extended_entities.media.sizes.medium.resizeNo disponible
extended_entities.media.media_url_httpsincludes.media.urlexpansions=attachments.media_keys&media.fields=urlstring
extended_entities.media.media_url_httpsincludes.media.preview_image_urlexpansions=attachments.media_keys&media.fields=preview_image_urlstring
extended_entities.media.video_info.duration_millisincludes.media.duration_msexpansions=attachments.media_keys&media.fields=duration_msnumber
Ejemplo
Entidades y entidades extendidas en v1.1 (con vídeo)Entidades, archivos adjuntos e includes en v2

https://api.x.com/2/tweets?ids=1370161532013735937&expansions=attachments.media_keys,entities.mentions.username&tweet.fields=entities&user.fields=created_at,description,entities,location,name,profile_image_url,protected,public_metrics,url,username,verified,withheld&media.fields=duration_ms,height,media_key,preview_image_url,public_metrics,type,url,width
”entities”:{
“hashtags”: [{
“texto”:“test”,
“indices”: [
8,
13
]
}],
“symbols”: [],
“user_mentions”: [{
“screen_name”:“TwitterDev”,
“name”:“Twitter Dev”,
“id”: 2244994945,
“id_str”:“2244994945”,
“indices”: [
31,
42
]
}],
“urls”: [{
“url”:“https://t.co/XVLZ3uwikc”,
“expandido_url”:“https://developer.x.com/en”,
“display_url”:“developer.x.com/en”,
“indices”: [
91,
114
]
}],
“media”: [{
“id”: 1370161464028196868,
“id_str”:“1370161464028196868”,
“indices”: [
115,
138
],
“media_url”:“http://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg”,
“media_url_https”:“https://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg”,
“url”:“https://t.co/dz4oByygWA”,
“display_url”:“pic.x.com/dz4oByygWA”,
“expandido_url”:“https://twitter.com/furiouscamper/status/1370161532013735937/video/1”,
“type”:“photo”,
“sizes”:{
“thumb”:{
“w”: 150,
“h”: 150,
“resize”:“crop”
},
“small”:{
“w”: 383,
“h”: 680,
“resize”:“fit”
},
“large”:{
“w”: 720,
“h”: 1280,
“resize”:“fit”
},
“medium”:{
“w”: 675,
“h”: 1200,
“resize”:“fit”
}
}
}]
},
“extendido_entities”:{
“media”: [{
“id”: 1370161464028196868,
“id_str”:“1370161464028196868”,
“indices”: [
115,
138
],
“media_url”:“http://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg”,
“media_url_https”:“https://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg”,
“url”:“https://t.co/dz4oByygWA”,
“display_url”:“pic.x.com/dz4oByygWA”,
“expandido_url”:“https://twitter.com/furiouscamper/status/1370161532013735937/video/1”,
“type”:“video”,
“sizes”:{
“thumb”:{
“w”: 150,
“h”: 150,
“resize”:“crop”
},
“small”:{
“w”: 383,
“h”: 680,
“resize”:“fit”
},
“large”:{
“w”: 720,
“h”: 1280,
“resize”:“fit”
},
“medium”:{
“w”: 675,
“h”: 1200,
“resize”:“fit”
}
},
“video_info”:{
“aspecto_relación de aspecto”: [
9,
16
],
“duration_millis”: 5140,
“variantes”: [{
“bitrate”: 950000,
“content_type”:“video/mp4”,
“url”:“https://video.twimg.com/ext_tw_video/1370161464028196868/pu/vid/480x852/rAuFVMEqs0MeP4P4.mp4?tag=12
},
{
“bitrate”: 2176000,
“content_type”:“video/mp4”,
“url”:“https://video.twimg.com/ext_tw_video/1370161464028196868/pu/vid/720x1280/ZxVL5qYO-DNVuSyq.mp4?tag=12
},
{
“content_type”:“application/x-mpegURL”,
“url”:“https://video.twimg.com/ext_tw_video/1370161464028196868/pu/pl/EGVpuZpo-wYxTNCq.m3u8?tag=12
},
{
“bitrate”: 632000,
“content_type”:“video/mp4”,
“url”:“https://video.twimg.com/ext_tw_video/1370161464028196868/pu/vid/320x568/M7VtocAwKPFdkqzF.mp4?tag=12
}
]
},
“adicional_media_info”:{
“monetizable”: false
}
}]
}
{
“data”: [{
“entities”:{
“hashtags”: [{
“start”: 8,
“final”: 13,
“etiqueta”:“test”
}],
“menciones”: [{
“start”: 31,
“final”: 42,
“username”:“TwitterDev”
}],
“urls”: [{
“start”: 91,
“final”: 114,
“url”:“https://t.co/XVLZ3uwikc”,
“expandida_url”:“https://developer.x.com/en”,
“display_url”:“developer.x.com/es”,
“status”: 200,
“title”:“Casos de uso, tutoriales,&Documentación”,
“descripción”:“Publicar&analizar Tweets, optimizar anuncios,&crea experiencias únicas de cliente con la API de Twitter, la API de Twitter Ads,&Twitter para Sitios Web. Empecemos’Comencemos a desarrollar.”,
“expandida_url”:“https://developer.x.com/en
},
{
“start”: 115,
“final”: 138,
“url”:“https://t.co/dz4oByygWA”,
“expandido_url”:“https://x.com/furiouscamper/status/1370161532013735937/video/1”,
“display_url”:“pic.x.com/dz4oByygWA”
}
]
},
“id”:“1370161532013735937”,
“texto”:“Another #test with a video and @TwitterDev mention. Excited for new format migration docs! https://t.co/XVLZ3uwikc https://t.co/dz4oByygWA”,
“attachments”:{
“media_keys”: [
“7_1370161464028196868”
]
}
}],
“includes”:{
“media”: [{
“type”:“video”,
“height”: 1280,
“public_métricas”:{
“ver_count”: 37
},
“width”: 720,
“media_clave”:“7_1370161464028196868”,
“duration_ms”: 5140,
“previsualización_image_url”:“https://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg
}],
“users”: [{
“public_métricas”:{
“seguidores_count”: 517233,
“following_count”: 2034,
“Tweet_count”: 3677,
“listado_count”: 1727
},
“creado_en”:“2013-12-14T04:35:55.000Z”,
“perfil_image_url”:“https://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”,
“descripción”:“La voz del equipo de #TwitterDev y tu fuente oficial para actualizaciones, noticias y eventos relacionados con la #TwitterAPI.”,
“verificado”: true,
“id”:“2244994945”,
“username”:“TwitterDev”,
“protected”: false,
“entities”:{
“url”:{
“urls”: [{
“start”: 0,
“final”: 23,
“url”:“https://t.co/3ZX3TNiZCY”,
“expandida_url”:“https://developer.x.com/es/community”,
“display_url”:“developer.x.com/es/community”
}]
},
“descripción”:{
“hashtags”: [{
“start”: 17,
“final”: 28,
“tag”:“TwitterDev”
},
{
“start”: 105,
“final”: 116,
“tag”:“TwitterAPI”
}
]
}
},
“url”:“https://t.co/3ZX3TNiZCY”,
“name”:“Twitter Dev”,
“location”:“127.0.0.1”
}]
}
}

Objeto Place

Formato de Twitter 1.1Formato de Twitter v2Parámetros necesarios en v2
placedata.geo.place_idtweet.fields=geo
place.idincludes.places.idexpansions=geo.place_id
place.id.place_typeincludes.places.place_typeexpansions=geo.place_id&place.fields=place_type
place.id.nameincludes.places.nameexpansions=geo.place_id&place.fields=name
place.id.full_nameincludes.places.full_nameexpansions=geo.place_id
place.id.country_codeincludes.places.country_codeexpansions=geo.place_id&place.fields=country_code
place.id.countryincludes.places.countryexpansions=geo.place_id&place.fields=country
place.id.contained_withinincludes.places.contained_withinexpansions=geo.place_id&place.fields=contained_within
place.id.bounding_box.typeincludes.places.geo.typeexpansions=geo.place_id&place.fields=place_type
place.id.bounding_box.coordinatesincludes.places.geo.bboxexpansions=geo.place_id&place.fields=geo
place.id.attributesincludes.places.propertiesexpansions=geo.place_id&place.fields=geo
Ejemplo
Objeto Place en v1.1Objeto Place con v2

https://api.x.com/2/tweets?ids=1370161532013735937&expansions=geo.place_id&tweet.fields=geo&place.fields=contained_within,country,country_code,full_name,geo,id,name,place_type
”place”: {
“id”: “f7eb2fa2fea288b1”,
“url”: “https://api.x.com/1.1/geo/id/f7eb2fa2fea288b1.json”,
“place_type”: “city”,
“name”: “Lakewood”,
“full_name”: “Lakewood, CO”,
“country_code”: “US”,
“country”: “United States”,
“contained_within”: [],
“bounding_box”: {
“type”: “Polygon”,
“coordinates”: [
[
[
-105.193475,
39.60973
],
[
-105.053164,
39.60973
],
[
-105.053164,
39.761974
],
[
-105.193475,
39.761974
]
]
]
},
“attributes”:
}
{
“data”: [{
“id”: “1370161532013735937”,
“text”: “Another #test with a video and @TwitterDev mention. Excited for new format migration docs! https://t.co/XVLZ3uwikc https://t.co/dz4oByygWA”,
“geo”: {
“place_id”: “f7eb2fa2fea288b1”
}
}],
“includes”: {
“places”: [{
“name”: “Lakewood”,
“place_type”: “city”,
“full_name”: “Lakewood, CO”,
“id”: “f7eb2fa2fea288b1”,
“geo”: {
“type”: “Feature”,
“bbox”: [
-105.193475,
39.60973,
-105.053164,
39.761974
],
“properties”:
},
“country_code”: “US”,
“country”: “United States”
}]
}
Próximo paso

Migrar del formato de datos Native Enriched a v2

El formato de datos Native Enriched lo utilizan nuestros productos enterprise. El formato de datos Native Enriched se ha actualizado para proporcionar metadatos de Tweets editados. Para obtener más información sobre los metadatos de edición de Tweets, consulta la página Edit Tweets fundamentals. Si estás utilizando los endpoints estándar v1.1, consulta la guía de estándar v1.1 a v2. Si estás utilizando los productos enterprise con Activity Streams, también tenemos una guía de Activity Streams a v2 para ti. X API v2 introduce nuevos diseños JSON para los objetos Tweet y user.
  • En el nivel raíz de JSON, el formato Native Enriched devuelve objetos Tweet en un array results, mientras que X API v2 devuelve un array data. 
  • En lugar de usar tanto favorites (en el objeto Tweet) como favourites (en el objeto user), X API v2 utiliza el término like. 
  • X está adoptando la convención de que los valores JSON sin valor (por ejemplo, null) no se escriben en el payload. Los atributos de Tweet y user solo se incluyen si tienen valores distintos de null. 
  • Todos los campos id en v2 estarán en formato de cadena.  
Además de los cambios realizados en el nuevo formato JSON, también hemos introducido un nuevo conjunto de campos en el objeto Tweet, entre ellos los siguientes:
  • conversation_id
  • reply_settings
  • alt_text en media
  • Dos nuevos campos de annotations, incluidos context y entities
  • Varios campos nuevos de metrics
  • Varios campos nuevos de polls  
Se están eliminando muchos campos heredados y obsoletos:
  • contributors
  • Ciertos campos de entities.media y extended_entities.media
  • filter_level
  • timestamp_ms
  • truncated

Estructura del payload de Native Enriched vs v2

La siguiente tabla muestra los objetos de alto nivel y el formato que puedes esperar recibir de v2 en comparación con el formato Native Enriched.
Estructura Native EnrichedEstructura de v2
Predeterminado{
tweet object fields,

“user”: ,
“place”: ,
“entities”: {
“hashtags”: [],
“urls”: [],
“user_mentions”: [],
“symbols”: [],
“annotations”: [],
“media”: []
},
“extended_entities”: ,
“matching_rules”: []
}
{
“data”: [{
“id”,
“text”,

“edit_history_tweet_ids”
}]
}
Con parámetros definidos de campos y expansiones{
“data”: [{
tweet object fields,
“entities”: {
“hashtags”: [],
“cashtags”: [],
“mentions”: [],
“urls”: [],
},
“attachments”: {
“media_keys”: [],
“poll_ids”: []
}
}],
“includes”: [
“tweets”: [user objects],
“users”: [user objects],
“media”: [media objects],
“places”: [place object],
“polls”: [poll object]
],
“matching_rules”: []
}
Asignación de campos La siguiente sección describe qué campos de Native Enriched se asignan a campos de v2, así como qué parámetros de v2 son necesarios para recibir el nuevo campo.  

Objeto Tweet

Formato Native EnrichedFormato de Twitter v2Parámetros v2 obligatoriosTipo en v2
created_atdata.created_attweet.fields=created_atString
idN/A (no aplica): consulta el campo id
id_strdata.idPredeterminadoString
textdata.textPredeterminadoString
edit_historydata.edit_history_tweet_idsPredeterminadoArray
edit_controlsdata.edit_controlstweet.fields=edit_controlsObject
editabledata.edit_controls.is_edit_eligibletweet.fields=edit_controlsBoolean
display_text_rangeN/A (no aplica): el campo text incluye el texto completo
sourcedata.sourcetweet.fields=sourceString
truncatedN/A (no aplica): el campo text incluye el texto completo
No aplicadata.conversation_idtweet.fields=conversation_idString
No aplicadata.reply_settingstweet.fields=reply_settingsString
in_reply_to_status_idN/D: consulta referenced_tweets.id
in_reply_to_status_id_strdata.referenced_tweets.id (si type=replied_to)expansions=referenced_tweets.idString
in_reply_to_user_idN/D: consulta in_reply_to_user_id_str
in_reply_to_user_id_strdata.in_reply_to_user_idtweet.fields=in_reply_to_user_idString
in_reply_to_screen_nameincludes.users..usernametweet.fields=in_reply_to_user_id&expansions=entities.mentions.usernameString
userincludes.usersexpansions=author_idObject
user.id_strdata.author_idtweet.fields=author_idString
geodata.geo.place_idtweet.fields=geo
coordinatesdata.geo.place_idtweet.fields=geo
placedata.geo.place_idtweet.fields=geo
is_quoted_statusdata.referenced_tweets.id (si type=quoted)tweet.fields=referenced_tweetsString
extended_tweet.full_textN/D: texto completo no disponible
No disponibledata.public_metricstweet.fields=public_metricsObjeto
quote_countdata.public_metrics.quote_counttweet.fields=public_metricsInt
reply_countdata.public_metrics.reply_counttweet.fields=public_metricsInt
retweet_countdata.public_metrics.retweet_counttweet.fields=public_metricsInt
favorite_countdata.public_metrics.like_counttweet.fields=public_metricsInt
No disponibledata.non_public_metricstweet.fields=non_public_metricsObjeto
No disponibledata.non_public_metrics.impression_counttweet.fields=non_public_metricsInt
No disponibledata.non_public_metrics.url_link_counttweet.fields=non_public_metricsInt
No disponibledata.non_public_metrics.user_profile_counttweet.fields=non_public_metricsInt
No disponibledata.organic_metricstweet.fields=organic_metricsObjeto
No disponibledata.organic_metrics.like_counttweet.fields=organic_metricsInt
No disponibledata.organic_metrics.retweet_counttweet.fields=organic_metricsInt
No disponibledata.organic_metrics.reply_counttweet.fields=organic_metricsInt
No disponibledata.organic_metrics.impression_counttweet.fields=organic_metricsInt
No disponibledata.organic_metrics.url_link_counttweet.fields=organic_metricsInt
No disponibledata.organic_metrics.user_profile_counttweet.fields=organic_metricsInt
No disponibledata.promoted_metricstweet.fields=promoted_metricsObjeto
No disponibledata.promoted_metrics.like_counttweet.fields=promoted_metricsInt
No disponibledata.promoted_metrics.retweet_counttweet.fields=promoted_metricsInt
No disponibledata.promoted_metrics.reply_counttweet.fields=promoted_metricsInt
No disponibledata.promoted_metrics.impression_counttweet.fields=promoted_metricsInt
No disponibledata.promoted_metrics.url_link_counttweet.fields=promoted_metricsInt
No disponibledata.promoted_metrics.user_profile_counttweet.fields=promoted_metricsInt
contributorsNo disponibleNo disponible
entitiesdata.entitiestweet.fields=entitiesObjeto
entities.user_mentionsdata.entities.mentionstweet.fields=entitiesArray de objetos
entities.symbolsdata.entities.cashtagstweet.fields=entitiesArray de objetos
entities.hashtagsdata.entities.hashtagstweet.fields=entitiesArray de objetos
entities.urlsdata.entities.urlstweet.fields=entitiesArray de objetos
entities.mediaincludes.mediaexpansions=attachments.media_keysArray de objetos
entities.annotationstweet.fields=entities,context_annotationsObjeto
entities.annotations.contextdata.context_annotationstweet.fields=entities,context_annotationsArray de objetos
Sin equivalentedata.context_annotations.domaintweet.fields=context_annotationsObjeto
entities.annotations.context.context_domain_id_strdata.context_annotations.domain.idtweet.fields=context_annotationsCadena
entities.annotations.context.context_domain_idNo disponibleNo disponible; consulta data.context_annotations.domain.id para obtener la versión en formato de cadena
entities.annotations.context.context_domain_namedata.context_annotations.domain.nametweet.fields=context_annotationsCadena
entities.annotations.context.context_domain_descriptiondata.context_annotations.domain.descriptiontweet.fields=context_annotationsCadena
Sin equivalentedata.context_annotations.entitytweet.fields=context_annotationsObjeto
entities.annotations.context.context_entity_id_strdata.context_annotations.entity.idtweet.fields=context_annotationsCadena
entities.annotations.context.context_entity_idNo disponibleNo disponible; consulta data.context_annotations.entity.id para obtener la versión en formato de cadena
entities.annotations.context.context_entity_namedata.context_annotations.entity.nametweet.fields=context_annotationsCadena
entities.annotations.context.context_entity_descriptiondata.context_annotations.entity.descriptiontweet.fields=context_annotationsCadena
entities.annotations.entitydata.entities.annotationstweet.fields=entities,context_annotationsArray de objetos
extended_entitiesdata.attachmentstweet_fields=attachmentsObjeto
favoritedNo disponibleNo disponible
retweetedNo disponibleNo disponible
retweeted_status
possibly_sensitivedata.possibly_sensitivetweet.fields=possibly_sensitiveBooleano
langdata.langtweet.fields=langCadena
filter_levelNo disponibleNo disponible
scopesNo disponibleNo disponible
timestamp_msNo disponibleNo disponible
withhelddata.withheldtweet.fields=withheldArray de objetos
matching_rulesmatching_rulesArray de objetos
matching_rules.idNo disponibleNo disponible
matching_rules.id_strmatching_rules.idIncluido de forma predeterminada en el stream filtradoCadena
matching_rules.tagmatching_rules.tagIncluido de forma predeterminada en el stream filtradoCadena

Objeto de usuario

Formato Native EnrichedFormato de Twitter v2Parámetros v2 obligatoriosType en v2
userincludes.usersexpansions=author_idArray de objetos
user.idNo disponibleN/D: consulta includes.users.idString
user.id_strincludes.users.idexpansions=author_idString
user.nameincludes.users.nameexpansions=author_idString
user.screen_nameincludes.users.usernameexpansions=author_idString
user.locationincludes.users.locationexpansions=author_id&user.fields=locationObject
user.descriptionincludes.users.descriptionexpansions=author_id&user.fields=descriptionString
No disponibleincludes.users.urlexpansions=author_id&user.fields=urlString
user.followers_countincludes.users.public_metrics.followers_countexpansions=author_id&user.fields=public_metricsInt
user.friends_countincludes.users.public_metrics.following_countexpansions=author_id&user.fields=public_metricsInt
user.listed_countincludes.users.public_metrics.listed_countexpansions=author_id&user.fields=public_metricsInt
user.created_atincludes.users.created_atexpansions=author_id&user.fields=created_atString
user.favourites_countAún no disponible
user.verifiedincludes.users.verifiedexpansions=author_id&user.fields=verifiedBoolean
No disponibleincludes.users.pinned_tweet_idexpansions=author_id&user.fields=pinned_tweet_idString
user.statuses_countincludes.users.public_metrics.tweet_countexpansions=author_id&user.fields=public_metricsInt
user.profile_image_url_httpsincludes.users.profile_image_urlexpansions=author_id&user.fields=profile_image_urlString
user.translator_typeNo disponibleNo disponible
user.utc_offsetNo disponibleNo disponible
user.time_zoneNo disponibleNo disponible
user.geo_enabledNo disponibleNo disponible
user.langNo disponibleNo disponible: se infiere a partir del idioma del Tweet
user.contributors_enabledNo disponibleNo disponible
user.is_translatorNo disponibleNo disponible
user.profile_background_colorNo disponibleNo disponible
user.profile_background_image_urlNo disponibleNo disponible
user.profile_background_image_url_httpsNo disponibleNo disponible
user.profile_background_titleNo disponibleNo disponible
user.profile_sidebar_border_colorNo disponibleNo disponible
user.profile_sidebar_fill_colorNo disponibleNo disponible
user.profile_text_colorNo disponibleNo disponible
user.profile_user_background_imageNo disponibleNo disponible
user.profile_image_urlConsulta includes.user.profile_image_url
user.default_profileNo disponibleNo disponible
user.default_profile_imageNo disponibleNo disponible
user.followingNo disponibleNo disponible
user.follow_request_sentNo disponibleNo disponible
user.notificationsNo disponibleNo disponible
user.withheld_in_countriesincludes.users.withheldexpansions=author_id&user.fields=withheldObjeto
user.protectedincludes.users.protectedexpansions=author_id&user.fields=protectedBooleano
No disponibleincludes.users.entitiesexpansions=author_id&user.fields=entitiesObjeto
No disponibleincludes.users.entities.urlexpansions=author_id&user.fields=entitiesObjeto
No disponibleincludes.users.entities.url.urlsexpansions=author_id&user.fields=entitiesArray de objetos
No disponibleincludes.users.entities.url.urls.startexpansions=author_id&user.fields=entitiesInt
No disponibleincludes.users.entities.url.urls.endexpansions=author_id&user.fields=entitiesInt
No disponibleincludes.users.entities.url.urls.urlexpansions=author_id&user.fields=entitiesCadena de caracteres
user.urlincludes.users.entities.url.urls.expanded_urlexpansions=author_id&user.fields=entitiesCadena
No disponibleincludes.users.entities.url.urls.display_urlexpansions=author_id&user.fields=entitiesCadena
No disponibleincludes.users.entities.descriptionsexpansions=author_id&user.fields=entitiesObjeto
No disponibleincludes.users.entities.descriptions.hashtagsexpansions=author_id&user.fields=entitiesMatriz de objetos
No disponibleincludes.users.entities.descriptions.hashtags.startexpansions=author_id&user.fields=entitiesEntero
No disponibleincludes.users.entities.descriptions.hashtags.endexpansions=author_id&user.fields=entitiesEntero
Incluido en user.descriptionincludes.users.entities.descriptions.hashtags.tagexpansions=author_id&user.fields=entitiesCadena
No disponibleincludes.users.entities.descriptions.mentionsexpansions=author_id&user.fields=entitiesMatriz de objetos
No disponibleincludes.users.entities.descriptions.mentions.startexpansions=author_id&user.fields=entitiesEntero
No disponibleincludes.users.entities.descriptions.mentions.endexpansions=author_id&user.fields=entitiesEntero
Incluido en user.descriptionincludes.users.entities.descriptions.mentions.usernameexpansions=author_id&user.fields=entitiesString
No disponibleincludes.users.entities.descriptions.cashtagsexpansions=author_id&user.fields=entitiesArray de objetos
No disponibleincludes.users.entities.descriptions.cashtags.startexpansions=author_id&user.fields=entitiesInt
No disponibleincludes.users.entities.descriptions.cashtags.endexpansions=author_id&user.fields=entitiesInt
Incluido en user.descriptionincludes.users.entities.descriptions.cashtags.tagexpansions=author_id&user.fields=entitiesString

Objetos de entidades y de entidades ampliadas

Formato enriquecido nativoFormato de Twitter v2Parámetros v2 obligatoriostype en v2
entitiesdata.entitiestweet.fields=entitiesObjeto
entities.hashtagsdata.entities.hashtagstweet.fields=entitiesArray de objetos
entities.hashtags.indices[0]data.entities.hashtags.starttweet.fields=entitiesEntero
entities.hashtags.indices[1]data.entities.hashtags.endtweet.fields=entitiesEntero
entities.hashtags.textdata.entities.hashtags.tagtweet.fields=entitiesCadena
entities.urlsdata.entities.urlstweet.fields=entitiesArray de objetos
entities.urls.indices[0]data.entities.urls.starttweet.fields=entitiesEntero
entities.urls.indices[1]data.entities.urls.endtweet.fields=entitiesEntero
entities.urls.urldata.entities.urls.urltweet.fields=entitiesCadena
entities.urls.expanded_urldata.entities.urls.expanded_urltweet.fields=entitiesCadena
entities.urls.display_urldata.entities.urls.display_urltweet.fields=entitiesString
entities.urls.unwound.urldata.entities.urls.unwound_urltweet.fields=entitiesString
entities.urls.unwound.statusdata.entities.urls.statustweet.fields=entitiesString
entities.urls.unwound.titledata.entities.urls.titletweet.fields=entitiesString
entities.urls.unwound.descriptiondata.entities.urls.descriptiontweet.fields=entitiesString
No disponibledata.entities.urls.imagestweet.fields=entitiesArray de objetos
No disponibledata.entities.urls.images.urltweet.fields=entitiesString
No disponibledata.entities.urls.images.widthtweet.fields=entitiesInt
No disponibledata.entities.urls.images.heighttweet.fields=entitiesInt
entities.user_mentionsdata.entities.mentionstweet.fields=entitiesArray de objetos
entities.user_mentions.indicies[0]data.entities.mentions.starttweet.fields=entitiesentero
entities.user_mentions.indicies[1]data.entities.mentions.endtweet.fields=entitiesentero
entities.user_mentions.screen_namedata.entities.mentions.usernametweet.fields=entitiescadena
entities.symbolsdata.entities.cashtagstweet.fields=entitiesarray de objetos
entities.symbols.indices[0]data.entities.cashtags.starttweet.fields=entitiesentero
entities.symbols.indices[1]data.entities.cashtags.endtweet.fields=entitiesentero
entities.symbols.textdata.entities.cashtags.tagtweet.fields=entitiescadena
entities.media OR extended_entities.mediaincludes.mediaexpansions=attachments.media_keysarray de objetos
entities.media.id_str OR extended_entities.media.id_strincludes.media.media_keyexpansions=attachments.media_keyscadena
entities.media.id OR extended_entities.media.idNo disponible: el id es una cadena
entities.media.type OR extended_entities.media.typeincludes.media.media.typeexpansions=attachments.media_keysCadena de texto
entities.media.indices OR extended_entities.media.indicesNo disponibleNo disponible
No disponibleincludes.media.alt_textexpansions=attachments.media_keys&media.fields=alt_textCadena de texto
entities.media.additional_media_info OR extended_entities.media.additional_media_infoNo disponibleNo disponible
entities.media.additional_media_info.monetizable OR extended_entities.media.additional_media_info.monetizableNo disponibleNo disponible
entities.media.media_url OR extended_entities.media.media_urlN/D: consulte includes.media.urlCadena de texto
entities.media.media_url_https OR extended_entities.media.media_url_httpsincludes.media.urlexpansions=attachments.media_keys&media.fields=urlCadena de texto
entities.media.url OR extended_entities.media.url
entities.media.display_url OR extended_entities.media.expanded_url
entities.media.expanded_url
entities.media.media_url_httpsincludes.media.preview_image_urlexpansions=attachments.media_keys&media.fields=preview_image_urlCadena de texto
extended_entitiesdata.attachmentstweet.fields=attachmentsObjeto
extended_entitiesdata.attachments.media_keystweet.fields=attachmentsMatriz de objetos
No disponibledata.attachments.poll_idstweet.fields=attachmentsArray de objetos
extended_entities.media.sizes.thumb.wNo disponible
extended_entities.media.sizes.thumb.hNo disponible
extended_entities.media.sizes.thumb.resizeNo disponible
extended_entities.media.sizes.large.wincludes.media.heightexpansions=attachments.media_keys&media.fields=height
extended_entities.media.sizes.large.hincludes.media.widthexpansions=attachments.media_keys&media.fields=width
extended_entities.media.sizes.large.resizeNo disponibleNo disponible
extended_entities.media.sizes.small.wNo disponibleNo disponible
extended_entities.media.sizes.small.hNo disponibleNo disponible
extended_entities.media.sizes.small.resizeNo disponibleNo disponible
extended_entities.media.sizes.medium.wNo disponibleNo disponible
extended_entities.media.sizes.medium.hNo disponibleNo disponible
extended_entities.media.sizes.medium.resizeNo disponibleNo disponible
extended_entities.media.media_url_httpsincludes.media.preview_image_urlexpansions=attachments.media_keys&media.fields=preview_image_urlCadena
extended_entities.media.video_info.aspect_ratioNo disponibleNo disponible
extended_entities.media.variantsNo disponibleNo disponible
extended_entities.media.variants.bitrateNo disponibleNo disponible
extended_entities.media.variants.content_typeNo disponibleNo disponible
extended_entities.media.variants.urlNo disponibleNo disponible
extended_entities.media.video_info.duration_millisincludes.media.duration_msexpansions=attachments.media_keys&media.fields=duration_msInt
No disponibleincludes.media.public_metricsexpansions=attachments.media_keys&media.fields=public_metricsObject
No disponibleincludes.media.public_metrics.view_countexpansions=attachments.media_keys&media.fields=public_metricsInt
No disponibleincludes.media.non_public_metricsexpansions=attachments.media_keys&media.fields=non_public_metricsObject
No disponibleincludes.media.non_public_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
No disponibleincludes.media.non_public_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
No disponibleincludes.media.non_public_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=non_public_metricsEntero
No disponibleincludes.media.non_public_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=non_public_metricsEntero
No disponibleincludes.media.non_public_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=non_public_metricsEntero
No disponibleincludes.media.organic_metricsexpansions=attachments.media_keys&media.fields=organic_metricsObjeto
No disponibleincludes.media.organic_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=organic_metricsEntero
No disponibleincludes.media.organic_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=organic_metricsEntero
No disponibleincludes.media.organic_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=organic_metricsEntero
No disponibleincludes.media.organic_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=organic_metricsEntero
No disponibleincludes.media.organic_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=organic_metricsEntero
No disponibleincludes.media.organic_metrics.view_countexpansions=attachments.media_keys&media.fields=organic_metricsEntero
No disponibleincludes.media.promoted_metricexpansions=attachments.media_keys&media.fields=promoted_metricsObjeto
No disponibleincludes.media.promoted_metric.playback_0_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
No disponibleincludes.media.promoted_metric.playback_25_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
No disponibleincludes.media.promoted_metric.playback_50_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
No disponibleincludes.media.promoted_metric.playback_75_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
No disponibleincludes.media.promoted_metric.playback_100_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
No disponibleincludes.media.promoted_metrics.view_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt

Objeto Place

Formato Native EnrichedFormato de Twitter v2Parámetros obligatorios en v2Tipo en v2
placeincludes.placesexpansions=geo.place_idArray de objetos
place.idincludes.places.idexpansions=geo.place_idString
place.urlNo disponibleNo disponible
place.id.place_typeincludes.places.place_typeexpansions=geo.place_id&place.fields=place_typeString
place.id.nameincludes.places.nameexpansions=geo.place_id&place.fields=nameString
place.id.full_nameincludes.places.full_nameexpansions=geo.place_idString
place.id.country_codeincludes.places.country_codeexpansions=geo.place_id&place.fields=country_codeString
place.id.countryincludes.places.countryexpansions=geo.place_id&place.fields=countryString
place.id.contained_withinincludes.places.contained_withinexpansions=geo.place_id&place.fields=contained_withinArray
place.id.bounding_box.typeincludes.places.geo.typeexpansions=geo.place_id&place.fields=place_typeString
place.id.bounding_box.coordinatesincludes.places.geo.bboxexpansions=geo.place_id&place.fields=geoArray
place.id.attributesincludes.places.propertiesexpansions=geo.place_id&place.fields=geoObject

Objeto de encuesta

Formato nativo enriquecidoFormato de Twitter v2Parámetros obligatorios de v2Tipo en v2
entities.pollsincludes.pollsexpansions=attachments.poll_idsArray de objetos
No disponibleincludes.polls.idexpansions=attachments.poll_idsString
entities.poll.optionsincludes.polls.optionsexpansions=attachments.poll_idsArray de objetos
entities.polls.options.positionincludes.polls.options.positionexpansions=attachments.poll_idsInt
entities.polls.options.textincludes.polls.options.labelexpansions=attachments.poll_idsString
No disponibleincludes.polls.options.votesexpansions=attachments.poll_idsInt
No disponibleincludes.polls.voting_statusexpansions=attachments.poll_ids&poll.fields=voting_statusString
entities.polls.duration_minutesincludes.polls.duration_minutesexpansions=attachments.poll_ids&poll.fields=duration_minutesInt
entities.polls.end_datetimeincludes.polls.end_datetimeexpansions=attachments.poll_ids&poll.fields=end_datetimeDate (ISO 8601)

Migración del formato de datos Activity Streams a v2

El formato de datos Activity Streams está disponible con nuestros productos enterprise. El formato de datos Activity Streams se ha actualizado para proporcionar metadatos de Tweets editados. Para obtener más información sobre los metadatos de edición de Tweets, consulta la página de conceptos básicos de Edit Tweets. Si estás usando los endpoints estándar v1.1, consulta la guía de v1.1 estándar a v2. Si estás usando los endpoints premium o el formato Native Enriched para enterprise, consulta la guía de Native Enriched a v2. X API v2 introduce nuevos diseños JSON para los objetos de Publicación y usuario.
  • A nivel raíz de JSON, el formato Activity Streams devuelve objetos Tweet en un arreglo results, mientras que X API v2 devuelve un arreglo data. 
  • En lugar de hacer referencia a “actividades” Retweeted y Quoted, el JSON de X API v2 se refiere a Tweets Retweeted y Quoted. 
  • En lugar de usar tanto favorites (en el objeto Tweet) como favourites (en el objeto user), X API v2 utiliza el término like. 
  • Twitter está adoptando la convención de que los valores JSON sin contenido (por ejemplo, null) no se incluyan en la carga útil. Los atributos de Tweet y user solo se incluyen si tienen valores no nulos. 
  • Todos los campos id en v2 estarán en formato de cadena.  
Además de los cambios realizados en el nuevo formato JSON, también hemos introducido un nuevo conjunto de campos en el objeto Tweet, incluidos los siguientes:
  • conversation_id
  • reply_settings
  • alt_text en media
  • Dos nuevos campos de annotations, incluidos context y entities
  • Varios campos nuevos de metrics
  • Varios campos nuevos de polls  
Muchos campos heredados y obsoletos se están eliminando o reemplazando:
  • display_text_range
  • generator
  • gnip
  • link
  • objectType
  • provider
  • twitter_entities.symbols se reemplaza por data.entities.cashtags
  • Ciertos campos de twitter_extended_entities.media y twitter_entities.media
  • twitter_filter_level
  • twitterTimeZone
  • verb

Objeto Tweet

Formato Activity StreamsFormato de Twitter v2Parámetros obligatorios en v2type en v2
postedTimedata.created_attweet.fields=created_atFecha (ISO 8601)
generatorNo disponibleNo disponible
generator.linkNo disponibleNo disponible
generator.displayNamedata.sourcetweet.fields=sourceCadena
twitter_langdata.langtweet.fields=langCadena
No disponibledata.conversation_idtweet.fields=conversation_idCadena
No disponibledata.reply_settingstweet.fields=reply_settingsCadena
No disponibledata.possibly_sensitivetweet.fields=possibly_sensitiveBooleano
No disponibledata.withheldtweet.fields=withheldObjeto
objectTypeNo disponibleNo disponible
verbNo disponibleNo disponible
providerNo disponibleNo disponible
provider.objectTypeNo disponibleNo disponible
provider.displayNameNo disponibleNo disponible
provider.linkNo disponibleNo disponible
linkNo disponibleNo disponible
display_text_rangeNo disponibleNo disponible
objectNo disponibleNo disponible
object.objectTypeNo disponibleNo disponible
object.idNo disponibleNo disponible
object.summarydata.textPredeterminadoString
object.edit_historydata.edit_history_tweet_idsPredeterminadoArray
object.edit_controlsdata.edit_controlstweet.fields=edit_controlsObject
object.editabledata.edit_controls.is_edit_eligibletweet.fields=edit_controlsBooleano
object.linkNo disponibleNo disponible
object.postedTimedata.created_attweet.fields=created_atFecha (ISO 8601)
Derivado de actor.iddata.author_idtweet.fields=created_at
twitter_filter_levelNo disponibleNo disponible
Derivado del nombre de usuario en inReplyTo.linkdata.in_reply_to_user_idtweet.fields=in_reply_to_user_idCadena de texto
No disponibledata.referenced_tweetstweet.fields=referenced_tweetsArray de objetos
No disponibledata.referenced_tweets.typetweet.fields=referenced_tweetsCadena de texto
Derivado de inReplyTo.linkdata.referenced_tweets.idtweet.fields=referenced_tweetsCadena de texto
No disponibledata.attachmentstweet.fields=attachmentsObjeto
Derivado de twitter_entities.media.id_strdata.attachments.media_keystweet.fields=attachmentsArray
No disponibledata.attachments.poll_idstweet.fields=attachmentsArray
twitter_entitiesdata.entitiestweet.fields=entitiesObject
No disponibledata.entities.annotationstweet.fields=entitiesArray de objetos
No disponibledata.entities.annotations.starttweet.fields=entitiesInt
No disponibledata.entities.annotations.endtweet.fields=entitiesInt
No disponibledata.entities.annotations.probabilitytweet.fields=entitiesFloat
No disponibledata.entities.annotations.typetweet.fields=entitiesString
No disponibledata.entities.annotations.normalized_texttweet.fields=entitiesString
twitter_entities.urlsdata.entities.urlstweet.fields=entitiesArray de objetos
twitter_entities.urls.indices[0]data.entities.urls.starttweet.fields=entitiesInt
twitter_entities.urls.indices[1]data.entities.urls.endtweet.fields=entitiesInt
twitter_entities.urls.urldata.entities.urls.urltweet.fields=entitiesString
twitter_entities.urls.expanded_urldata.entities.urls.expanded_urltweet.fields=entitiesString
twitter_entities.urls.display_urldata.entities.urls.display_urltweet.fields=entitiesString
No disponibledata.entities.urls.imagestweet.fields=entitiesArray de objetos
No disponibledata.entities.urls.images.urltweet.fields=entitiesString
No disponibledata.entities.urls.images.widthtweet.fields=entitiesInt
No disponibledata.entities.urls.images.heighttweet.fields=entitiesInt
gnip.urls.expanded_statusdata.entities.urls.statustweet.fields=entitiesInt
gnip.urls.expanded_url_titledata.entities.urls.titletweet.fields=entitiesString
gnip.urls.expanded_url_descriptiondata.entities.urls.descriptiontweet.fields=entitiesCadena
gnip.urls.expanded_urldata.entities.urls.unwound_urltweet.fields=entitiesCadena
twitter_entities.symbolsdata.entities.cashtagstweet.fields=entitiesArray de objetos
twitter_entities.symbols.indices[0]data.entities.cashtags.starttweet.fields=entitiesEntero
twitter_entities.symbols.indices[1]data.entities.cashtags.endtweet.fields=entitiesEntero
twitter_entities.symbols.textdata.entities.cashtags.tagtweet.fields=entitiesCadena
twitter_entities.hashtagsdata.entities.hashtagstweet.fields=entitiesArray de objetos
twitter_entities.hashtags.indices[0]data.entities.hashtags.starttweet.fields=entitiesEntero
twitter_entities.hashtags.indices[1]data.entities.hashtags.endtweet.fields=entitiesEntero
twitter_entities.hashtags.textdata.entities.hashtags.tagtweet.fields=entitiesCadena
twitter_entities.user_mentionsdata.entities.mentionstweet.fields=entitiesMatriz de objetos
twitter_entities.user_mentions.indices[0]data.entities.mentions.starttweet.fields=entitiesEntero
twitter_entities.user_mentions.indices[1]data.entities.mentions.endtweet.fields=entitiesEntero
twitter_entities.user_mentions.screen_namedata.entities.mentions.tagtweet.fields=entitiesCadena
twitter_entities.user_mentions.id_strdata.entities.mentions.idtweet.fields=entitiesCadena
twitter_entities.user_mentions.idNo disponibleNo disponible
No disponibledata.context_annotationstweet.fields=context_annotationsMatriz de objetos
No disponibledata.context_annotations.domaintweet.fields=context_annotationsObjeto
No disponibledata.context_annotations.domain.idtweet.fields=context_annotationsCadena
No disponibledata.context_annotations.domain.nametweet.fields=context_annotationsCadena
No disponibledata.context_annotations.domain.descriptiontweet.fields=context_annotationsCadena
No disponibledata.context_annotations.entitytweet.fields=context_annotationsObjeto
No disponibledata.context_annotations.entity.idtweet.fields=context_annotationsCadena
No disponibledata.context_annotations.entity.nametweet.fields=context_annotationsCadena
No disponibledata.context_annotations.entity.descriptiontweet.fields=context_annotationsCadena
geodata.geotweet.fields=geoObjeto
Derivado de location.linkdata.geo.place_idtweet.fields=geoCadena
No disponibledata.public_metricstweet.fields=public_metricsObjeto
favoritesCountdata.public_metrics.like_counttweet.fields=public_metricsEntero
retweetCountdata.public_metrics.retweet_counttweet.fields=public_metricsEntero
No disponibledata.public_metrics.quote_counttweet.fields=public_metricsInt
No disponibledata.public_metrics.reply_counttweet.fields=public_metricsInt
No disponibledata.non_non_public_metricstweet.fields=non_public_metricsObjeto
No disponibledata.non_public_metrics.impression_counttweet.fields=non_public_metricsInt
No disponibledata.non_public_metrics.url_link_counttweet.fields=non_public_metricsInt
No disponibledata.non_public_metrics.user_profile_counttweet.fields=non_public_metricsInt
No disponibledata.organic_metricstweet.fields=organic_metricsObjeto
No disponibledata.organic_metrics.like_counttweet.fields=organic_metricsInt
No disponibledata.organic_metrics.retweet_counttweet.fields=organic_metricsInt
No disponibledata.organic_metrics.reply_counttweet.fields=organic_metricsInt
No disponibledata.organic_metrics.impression_counttweet.fields=organic_metricsInt
No disponibledata.organic_metrics.url_link_counttweet.fields=organic_metricsInt
No disponibledata.organic_metrics.user_profile_counttweet.fields=organic_metricsInt
No disponibledata.promoted_metricstweet.fields=promoted_metricsObject
No disponibledata.promoted_metrics.like_counttweet.fields=promoted_metricsInt
No disponibledata.promoted_metrics.retweet_counttweet.fields=promoted_metricsInt
No disponibledata.promoted_metrics.reply_counttweet.fields=promoted_metricsInt
No disponibledata.promoted_metrics.impression_counttweet.fields=promoted_metricsInt
No disponibledata.promoted_metrics.url_link_counttweet.fields=promoted_metricsInt
No disponibledata.promoted_metrics.user_profile_counttweet.fields=promoted_metricsInt
gnip.profileLocationsNo disponibleNo disponible
gnip.profileLocations.addressNo disponibleNo disponible
gnip.profileLocations.address.countryNo disponibleNo disponible
gnip.profileLocations.address.countryCodeNo disponibleNo disponible
gnip.profileLocations.displayNameNo disponibleNo disponible
gnip.profileLocations.geoNo disponibleNo disponible
gnip.profileLocations.geo.coordinatesNo disponibleNo disponible
gnip.profileLocations.geo.typeNo disponibleNo disponible
gnip.profileLocations.objectTypeNo disponibleNo disponible

Objeto de usuario

Formato de Activity StreamsFormato de Twitter v2Parámetros obligatorios en v2type en v2
actorincludes.usersexpansions=author_idArray de objetos
Derivado de actor.idincludes.users.idexpansions=author_idCadena
actor.displayNameincludes.users.nameexpansions=author_idCadena
actor.preferredUsernameincludes.users.usernameexpansions=author_idCadena
actor.postedTimeincludes.users.created_atexpansions=author_id&user.fields=created_atFecha (formato ISO 8601)
actor.summaryincludes.users.descriptionexpansions=author_id&user.fields=descriptionCadena
No disponibleincludes.users.pinned_tweet_idexpansions=author_id&user.fields=pinned_tweet_idCadena
No disponibleincludes.users.protectedexpansions=author_id&user.fields=protectedBooleano
actor.linkNo disponibleNo disponible directamente: construir a partir de includes.users.username
actor.twitterTimeZoneNo disponibleNo disponible directamente: inferir a partir de Tweet created_at
actor.utcOffsetNo disponibleNo disponible: se puede inferir a partir de Tweet created_at
actor.favoritesCountNo disponibleNo disponible
actor.followersCountincludes.users.public_metrics.followers_countexpansions=author_id&user.fields=public_metricsInt
actor.friendsCountincludes.users.public_metrics.following_countexpansions=author_id&user.fields=public_metricsInt
actor.listedCountincludes.users.public_metrics.listed_countexpansions=author_id&user.fields=public_metricsInt
actor.statusesCountincludes.users.public_metrics.tweet_countexpansions=author_id&user.fields=public_metricsInt
actor.languages[]No disponibleNo disponible: se puede inferir a partir de Tweet lang
actor.location.displayNameincludes.users.locationexpansions=author_id&user.fields=locationString
actor.imageincludes.users.profile_image_urlexpansions=author_id&user.fields=profile_image_urlString
actor.linksincludes.users.urlexpansions=author_id&user.fields=urlString
actor.verifiedincludes.users.verifiedexpansions=author_id&user.fields=verifiedBoolean
No disponibleincludes.users.withheldexpansions=author_id&user.fields=withheldObjeto
No disponibleincludes.users.entitiesexpansions=author_id&user.fields=entitiesObjeto
No disponibleincludes.users.entities.urlexpansions=author_id&user.fields=entitiesObjeto
actor.linksincludes.users.entities.url.urlsexpansions=author_id&user.fields=entitiesArray de objetos
No disponibleincludes.users.entities.url.urls.startexpansions=author_id&user.fields=entitiesEntero
No disponibleincludes.users.entities.url.urls.endexpansions=author_id&user.fields=entitiesEntero
No disponibleincludes.users.entities.url.urls.urlexpansions=author_id&user.fields=entitiesCadena
actor.links.hrefincludes.users.entities.url.urls.expanded_urlexpansions=author_id&user.fields=entitiesCadena
No disponibleincludes.users.entities.url.urls.display_urlexpansions=author_id&user.fields=entitiesCadena
No disponibleincludes.users.entities.descriptionexpansions=author_id&user.fields=entitiesObjeto
No disponibleincludes.users.entities.description.hashtagsexpansions=author_id&user.fields=entitiesArray de objetos
No disponibleincludes.users.entities.description.hashtags.startexpansions=author_id&user.fields=entitiesInt
No disponibleincludes.users.entities.description.hashtags.endexpansions=author_id&user.fields=entitiesInt
No disponibleincludes.users.entities.description.hashtags.tagexpansions=author_id&user.fields=entitiesString
No disponibleincludes.users.entities.description.mentionsexpansions=author_id&user.fields=entitiesArray de objetos
No disponibleincludes.users.entities.description.mentions.startexpansions=author_id&user.fields=entitiesInt
No disponibleincludes.users.entities.description.mentions.endexpansions=author_id&user.fields=entitiesInt
No disponibleincludes.users.entities.description.mentions.usernameexpansions=author_id&user.fields=entitiesString
No disponibleincludes.users.entities.description.cashtagsexpansions=author_id&user.fields=entitiesArray de objetos
No disponibleincludes.users.entities.description.cashtags.startexpansions=author_id&user.fields=entitiesInt
No disponibleincludes.users.entities.description.cashtags.endexpansions=author_id&user.fields=entitiesInt
No disponibleincludes.users.entities.description.cashtags.tagexpansions=author_id&user.fields=entitiesString

Objeto Poll

Formato de Activity StreamsFormato de Twitter v2Parámetros v2 requeridosTipo en v2
No disponibleincludes.pollsexpansions=attachments.poll_idsArray de objetos
No disponibleincludes.polls.idexpansions=attachments.poll_idsString
No disponibleincludes.polls.optionsexpansions=attachments.poll_idsArray de objetos
No disponibleincludes.polls.options.positionexpansions=attachments.poll_idsInt
No disponibleincludes.polls.options.labelexpansions=attachments.poll_idsString
No disponibleincludes.polls.options.votesexpansions=attachments.poll_idsInt
No disponibleincludes.polls.voting_statusexpansions=attachments.poll_ids&poll.fields=voting_statusString
No disponibleincludes.polls.duration_minutesexpansions=attachments.poll_ids&poll.fields=duration_minutesInt
No disponibleincludes.polls.end_datetimeexpansions=attachments.poll_ids&poll.fields=end_datetimeFecha (ISO 8601)

Objeto Place

Activity Streams formatFormato de Twitter v2Parámetros necesarios en v2Tipo en v2
locationincludes.placesexpansions=geo.place_idarray de objetos
location.displayNameincludes.places.full_nameexpansions=geo.place_idcadena
Parsed from location.linkincludes.places.idexpansions=geo.place_idcadena
location.nameincludes.places.nameexpansions=geo.place_id&place.fields=namecadena
location.country_codeincludes.places.countryexpansions=geo.place_id&place.fields=countrycadena
location.twitter_place_typeincludes.places.place_typeexpansions=geo.place_id&place.fields=place_typecadena
location.twitter_country_codeincludes.places.country_codeexpansions=geo.place_id&place.fields=country_codecadena
location.geoincludes.places.geoexpansions=geo.place_id&place.fields=geoobjeto
location.geo.typeincludes.places.geo.typeexpansions=geo.place_id&place.fields=geocadena
location.geo.coordinatesincludes.places.geo.bboxexpansions=geo.place_id&place.fields=geoarray
Not Availableincludes.places.geo.propertiesexpansions=geo.place_id&place.fields=geoobjeto

Objeto multimedia

Formato de Activity StreamsFormato de Twitter v2Parámetros obligatorios en v2type en la v2
twitter_entities.media OR twitter_extended_entities.mediaincludes.mediaexpansions=attachments.media_keysMatriz de objetos
twitter_entities.media.id_str OR twitter_extended_entities.media.id_strincludes.media.media_keyexpansions=attachments.media_keysCadena
twitter_entities.media.id OR twitter_extended_entities.media.idNo disponibleNo disponible
twitter_entities.media.indices OR twitter_extended_entities.media.indicesNo disponibleNo disponible
twitter_entities.media.additional_media_info OR twitter_extended_entities.media.additional_media_infoNo disponibleNo disponible
twitter_entities.media.additional_media_info.monetizable OR twitter_extended_entities.media.additional_media_info.monetizableNo disponibleNo disponible
twitter_entities.media.media_url OR twitter_extended_entities.media.media_urlNo disponibleNo disponible
twitter_entities.media.media_url_https OR twitter_extended_entities.media.media_url_httpsincludes.media.preview_image_urlexpansions=attachments.media_keys&media.fields=preview_image_urlCadena
twitter_entities.media.url OR twitter_extended_entities.media.urlNo disponibleNo disponible
twitter_entities.media.display_url OR twitter_extended_entities.media.display_urlNo disponibleNo disponible
twitter_entities.media.expanded_url OR twitter_extended_entities.media.expanded_urlNo disponibleNo disponible
twitter_entities.media.type OR twitter_extended_entities.media.typeincludes.media.typeexpansions=attachments.media_keysString
twitter_entities.media.sizes OR twitter_extended_entities.media.sizesNo disponibleNo disponible
twitter_entities.media.sizes.thumb OR twitter_extended_entities.media.sizes.thumbNo disponibleNo disponible
twitter_entities.media.sizes.thumb.h OR twitter_extended_entities.media.sizes.thumb.hNo disponibleNo disponible
twitter_entities.media.sizes.thumb.w OR twitter_extended_entities.media.sizes.thumb.wNo disponibleNo disponible
twitter_entities.media.sizes.thumb.resize OR twitter_extended_entities.media.sizes.thumb.resizeNo disponibleNo disponible
twitter_entities.media.sizes.small OR twitter_extended_entities.media.sizes.smallNo disponibleNo disponible
twitter_entities.media.sizes.small.h OR twitter_extended_entities.media.sizes.small.hNo disponibleNo disponible
twitter_entities.media.sizes.small.w OR twitter_extended_entities.media.sizes.small.wNo disponibleNo disponible
twitter_entities.media.sizes.small.resize OR twitter_extended_entities.media.sizes.small.resizeNo disponibleNo disponible
twitter_entities.media.sizes.medium OR twitter_extended_entities.media.sizes.mediumNo disponibleNo disponible
twitter_entities.media.sizes.medium.h OR twitter_extended_entities.media.sizes.medium.hNo disponibleNo disponible
twitter_entities.media.sizes.medium.w OR twitter_extended_entities.media.sizes.medium.wNo disponibleNo disponible
twitter_entities.media.sizes.medium.resize OR twitter_extended_entities.media.sizes.medium.resizeNo disponibleNo disponible
twitter_entities.media.sizes.large OR twitter_extended_entities.media.sizes.largeNo disponibleNo disponible
twitter_entities.media.sizes.large.h OR twitter_extended_entities.media.sizes.large.hincludes.media.heightexpansions=attachments.media_keys&media.fields=heightInt
twitter_entities.media.sizes.large.w OR twitter_extended_entities.media.sizes.large.wincludes.media.widthexpansions=attachments.media_keys&media.fields=widthInt
twitter_entities.media.sizes.large.resize OR twitter_extended_entities.media.sizes.large.resizeNo disponibleNo disponible
twitter_extended_entities.media.video_infoNo disponibleNo disponible
twitter_extended_entities.media.video_info.aspect_ratioNo disponibleNo disponible
twitter_extended_entities.media.video_info.duration_millisincludes.media.duration_msexpansions=attachments.media_keys&media.fields=duration_msInt
twitter_extended_entities.media.video_info.variantsNo disponibleNo disponible
twitter_extended_entities.media.video_info.variants.bitrateNo disponibleNo disponible
twitter_extended_entities.media.video_info.variants.content_typeNo disponibleNo disponible
twitter_extended_entities.media.video_info.variants.urlNo disponibleNo disponible
No disponibleincludes.media.alt_textexpansions=attachments.media_keys&media.fields=alt_textCadena
No disponibleincludes.media.public_metricsexpansions=attachments.media_keys&media.fields=public_metricsObjeto
No disponibleincludes.media.public_metrics.view_countexpansions=attachments.media_keys&media.fields=public_metricsEntero
No disponibleincludes.media.non_public_metricsexpansions=attachments.media_keys&media.fields=non_public_metricsObjeto
No disponibleincludes.media.non_public_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=non_public_metricsEntero
No disponibleincludes.media.non_public_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=non_public_metricsEntero
No disponibleincludes.media.non_public_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=non_public_metricsEntero
No disponibleincludes.media.non_public_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=non_public_metricsEntero
No disponibleincludes.media.non_public_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=non_public_metricsEntero
No disponibleincludes.media.organic_metricsexpansions=attachments.media_keys&media.fields=organic_metricsObjeto
No disponibleincludes.media.organic_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
No disponibleincludes.media.organic_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
No disponibleincludes.media.organic_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
No disponibleincludes.media.organic_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
No disponibleincludes.media.organic_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
No disponibleincludes.media.organic_metrics.view_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
No disponibleincludes.media.promoted_metricsexpansions=attachments.media_keys&media.fields=promoted_metricsObject
No disponibleincludes.media.promoted_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
No disponibleincludes.media.promoted_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
No disponibleincludes.media.promoted_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
No disponibleincludes.media.promoted_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
No disponibleincludes.media.promoted_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
No disponibleincludes.media.promoted_metrics.view_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt

Objeto de reglas de coincidencia

Formato de Activity StreamsFormato de Twitter v2Parámetros obligatorios en v2Tipo en v2
gnip.matching_rulesmatching_rulesPredeterminado en el flujo filtradoArray de objetos
gnip.matching_rules.tagmatching_rules.tagPredeterminado en el flujo filtradoString
gnip.matching_rules.tag.idNo disponibleNo disponible
gnip.matching_rules.tag.id_strmatching_rules.idPredeterminado en el flujo filtradoString

Herramienta visual de migración de formato de datos

La herramienta visual de migración de formato de datos es una aplicación web que muestra los campos que se asignan desde el formato de datos de X API v1.1 al formato de datos de X API v2 para un objeto de tipo Tweet o usuario determinado. Se puede proporcionar a la aplicación un Tweet ID o un user ID para ver esta asignación. Ten en cuenta que deberás iniciar sesión con tu cuenta de Twitter para poder usar la App.