Saltar al contenido principal

Introducción

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

Diferencias generales

Solicitud de objetos y fields

Uno de los cambios más importantes entre los endpoints anteriores a v2 y v2 es que la versión más reciente solo devuelve algunos fields de forma predeterminada, mientras que los endpoints estándar, premium y Enterprise incluyen la mayoría de los fields 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 puede solicitar solo los data que necesita sin tener que ingerir fields que no le interesan. Cualquier fields que solicite y que se relacione con el objeto de datos principal se devolverá en ese objeto de datos principal junto con los valores predeterminados. Sin embargo, si solicita objetos expandidos utilizando el parámetro expansions, los objetos secundarios se devolverán en un nuevo objeto includes. Puede hacer coincidir los objetos expandidos en el objeto includes con el objeto principal utilizando el campo id, que se devolverá en ambos. Por ejemplo, si está utilizando el endpoint de v2 Post lookup e incluye el parámetro expansions=author_id en su solicitud, recibirá el campo author_id dentro del Objeto de Post principal, así como un objeto de usuario por Post en el objeto includes; cada uno incluirá el campo predeterminado id, que se puede usar para hacer coincidir el objeto de usuario con el Objeto de Post. Aquí hay un ejemplo de cómo se ve esto:
{
  "data": [
    {
      "author_id": "2244994945",
      "id": "1397568983931392004",
      "text": "La Plataforma para Desarrolladores de X. ¡Ooh la la! https://t.co/iGTdPXBfOv https://t.co/Ze8z8EODdg"
    }
  ],
  "includes": {
    "users": [
      {
        "id": "2244994945",
        "name": "X Dev",
        "username": "TwitterDev"
      }
    ]
  }
}

Diseño de JSON actualizado

Además de los cambios en cómo se solicitan ciertos fields, X API v2 también introduce nuevos diseños JSON para los objetos devueltos por las APIs, incluidos los objetos Post y user.
  • En la raíz del JSON, los endpoints estándar devuelven objetos de Post en un arreglo statuses, mientras que X API v2 devuelve un arreglo data.
  • En lugar de referirse a “statuses” Retweeted y Quoted, el JSON de X API v2 se refiere a Tweets Retweeted y Quoted. Muchos fields heredados y obsoletos, como contributors y user.translator_type, se están eliminando.
  • En lugar de usar tanto favorites (en el Objeto de Post) 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 sin valor (por ejemplo, null) no se incluyen en el payload. Los atributos de Post y de usuario solo se incluyen si tienen valores no nulos.   

Nuevos campos de v2

También incorporamos un nuevo conjunto de campos al Objeto de Post 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 un Post determinado

Migración del formato de datos de Standard v1.1 a v2

Si aún no lo has hecho, te recomendamos leer primero 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 para ver rápidamente las diferencias entre el formato de datos de X API v1.1 y el formato de X API v2. El formato de datos de Standard v1.1, también conocido como formato nativo, es el formato principal que se ofrece con los endpoints de Standard v1.1. Si usas el producto Premium, consulta la guía de datos nativos enriquecidos. Los clientes de Enterprise podrían estar usando datos nativos enriquecidos o activity streams, según cómo esté configurado tu entorno en la consola de Gnip. 

Estructura del payload Standard v1.1 vs v2

La siguiente tabla muestra los objetos y el formato de alto nivel que puedes esperar recibir en v2 en comparación con el formato v1.1.
estructura v1.1estructura v2
Predeterminado{
all tweet object fields,
“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 fields y expansions{
“data”: [{
tweet object fields,
“entities”: {
“hashtags”: [],
“cashtags”: [],
“mentions”: [],
“urls”: [],
},
“attachments”: {

“media_keys”: [],

“poll_ids”: []

}
}],
“includes”: [
“tweets”: [tweet 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 v1.1 se mapean a campos de v2, así como qué parámetros de v2 se requieren 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 1.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 cachorros. No te juzgaremos. \n\nPresentamos los endpoints de gestión de seguimientos para el nuevo… 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”,
“text”: “Adelante, sigue otra cuenta de cachorros. No te juzgaremos. \n\nPresentamos los endpoints de gestión de seguimientos para el nuevo #TwitterAPI. Ahora puedes usar la API v2 para seguir y dejar de seguir cuentas. Más información https://t.co/mtpd9VIMDa”,
“lang”: “en”,
“conversation_id”: “1359554366051504129”,
“possibly_sensitive”: false,
“reply_settings”: “everyone”,
“created_at”: “2021-02-10T17:26:34.000Z”,
“author_id”: “2244994945”,
“public_metrics”: {
“retweet_count”: 18,
“reply_count”: 11,
“like_count”: 98,
“quote_count”: 7
},
“entities”: {
“hashtags”: [{
“start”: 110,
“end”: 121,
“tag”: “TwitterAPI”
}],
“urls”: [{
“start”: 194,
“end”: 217,
“url”: “https://t.co/mtpd9VIMDa”,
“expanded_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 para X API v2”,
“description”: “¿Seguir o no seguir? Ahora tienes la libertad de responder esa pregunta como desees 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 se adelantó cuando lanzamos los endpoints de búsqueda 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 emocionados de habilitar una amplia gama de casos de uso en X API v2. N…”,
“unwound_url”: “https://devcommunity.x.com/t/introducing-the-new-manage-follows-endpoints-to-the-twitter-api-v2/149465
}]
},
“context_annotations”: [{
“domain”: {
“id”: “46”,
“name”: “Brand Category”,
“description”: “Categories within Brand Verticals that narrow down the scope of Brands”
},
“entity”: {
“id”: “781974596752842752”,
“name”: “Services”
}
},
{
“domain”: {
“id”: “47”,
“name”: “Brand”,
“description”: “Brands and Companies”
},
“entity”: {
“id”: “10045225402”,
“name”: “Twitter”
}
}
]
}]
}

Objeto de usuario

Formato de Twitter 1.1Formato de Twitter v2Parámetros de v2 requeridos
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.users.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 1.1Objeto de usuario y solicitud con v2
”user”: {
“id”: 2244994945,
“id_str”: “2244994945”,
“name”: “Twitter Dev”,
“screen_name”: “TwitterDev”,
“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.”,
“url”: “https://t.co/3ZX3TNiZCY”,
“entities”: {
“url”: {
“urls”: [{
“url”: “https://t.co/3ZX3TNiZCY”,
“expanded_url”: “https://developer.x.com/en/community”,
“display_url”: “developer.x.com/en/community”,
“indices”: [
0,
23
]
}]
},
“description”: {
“urls”: []
}
},
“protected”: false,
“followers_count”: 517232,
“friends_count”: 2032,
“listed_count”: 1722,
“created_at”: “Sat Dec 14 04:35:55 +0000 2013”,
“favourites_count”: 2134,
“utc_offset”: null,
“time_zone”: null,
“geo_enabled”: true,
“verified”: true,
“statuses_count”: 3677,
“lang”: null,
“contributors_enabled”: false,
“is_translator”: false,
“is_translation_enabled”: false,
“profile_background_color”: “FFFFFF”,
“profile_background_image_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_tile”: false,
“profile_image_url”: “http://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”,
“profile_image_url_https”: “https://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”,
“profile_banner_url”: “https://pbs.twimg.com/profile_banners/2244994945/1611792896”,
“profile_link_color”: “0084B4”,
“profile_sidebar_border_color”: “FFFFFF”,
“profile_sidebar_fill_color”: “DDEEF6”,
“profile_text_color”: “333333”,
“profile_use_background_image”: false,
“has_extended_profile”: true,
“default_profile”: false,
“default_profile_image”: false,
“following”: null,
“follow_request_sent”: null,
“notifications”: null,
“translator_type”: “regular”
}
{
“data”: [{
“author_id”: “2244994945”,
“id”: “1362876655061073928”,
“text”: “From our living rooms to yours 🐱‍💻🛋️Our developer advocates have some exciting Twitch streams and virtual events planned to help you get started with the new #TwitterAPI. Check out the schedule for details, and let us know if you want to see more!\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”: “The voice of the #TwitterDev team and your official source for updates, news, and events, related to the #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 entities y expanded entities

Formato de Twitter 1.1Formato de Twitter v2Parámetros requeridos en 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, 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”: [{
“text”: “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”,
“expanded_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”,
“expanded_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”
}
}
}]
},
“extended_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”,
“expanded_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”: {
“aspect_ratio”: [
9,
16
],
“duration_millis”: 5140,
“variants”: [{
“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
}
]
},
“additional_media_info”: {
“monetizable”: false
}
}]
}
{
“data”: [{
“entities”: {
“hashtags”: [{
“start”: 8,
“end”: 13,
“tag”: “test”
}],
“mentions”: [{
“start”: 31,
“end”: 42,
“username”: “TwitterDev”
}],
“urls”: [{
“start”: 91,
“end”: 114,
“url”: “https://t.co/XVLZ3uwikc”,
“expanded_url”: “https://developer.x.com/en”,
“display_url”: “developer.x.com/en”,
“status”: 200,
“title”: “Casos de uso, tutoriales y documentación”,
“description”: “Publica y analiza tweets, optimiza anuncios y crea experiencias únicas para el cliente con la API de Twitter, la X Ads API y Twitter para sitios web. Empecemos a construir.”,
“unwound_url”: “https://developer.x.com/en
},
{
“start”: 115,
“end”: 138,
“url”: “https://t.co/dz4oByygWA”,
“expanded_url”: “https://x.com/furiouscamper/status/1370161532013735937/video/1”,
“display_url”: “pic.x.com/dz4oByygWA”
}
]
},
“id”: “1370161532013735937”,
“text”: “Otra #test con un video y mención de @TwitterDev. ¡Emocionado por la nueva documentación de migración de formato! https://t.co/XVLZ3uwikc https://t.co/dz4oByygWA”,
“attachments”: {
“media_keys”: [
“7_1370161464028196868”
]
}
}],
“includes”: {
“media”: [{
“type”: “video”,
“height”: 1280,
“public_metrics”: {
“view_count”: 37
},
“width”: 720,
“media_key”: “7_1370161464028196868”,
“duration_ms”: 5140,
“preview_image_url”: “https://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg
}],
“users”: [{
“public_metrics”: {
“followers_count”: 517233,
“following_count”: 2034,
“tweet_count”: 3677,
“listed_count”: 1727
},
“created_at”: “2013-12-14T04:35:55.000Z”,
“profile_image_url”: “https://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”,
“description”: “La voz del equipo #TwitterDev y tu fuente oficial de actualizaciones, noticias y eventos relacionados con la #TwitterAPI.”,
“verified”: true,
“id”: “2244994945”,
“username”: “TwitterDev”,
“protected”: false,
“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”
}
]
}
},
“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

Migrating from Native Enriched data format to v2

El formato de datos Native Enriched es utilizado por nuestros productos de 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 Edit Tweet, consulta la página Fundamentals de Edit Tweets. Si estás utilizando los endpoints de Standard v1.1, consulta la guía de Standard v1.1 a v2. Si estás utilizando los productos Enterprise con Activity Streams, también contamos con una guía de Activity Streams a v2. 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 adopta la convención de que los valores JSON sin contenido (por ejemplo, null) no se incluyen 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 string
Además de los cambios realizados en el nuevo formato JSON, también introdujimos un nuevo conjunto de fields en el objeto Tweet, que incluye lo siguiente:
  • 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 fields heredados y obsoletos:
  • contributors
  • Determinados fields de entities.media y extended_entities.media
  • filter_level
  • timestamp_ms
  • truncated

Estructura del payload: Native Enriched vs v2

La siguiente tabla muestra los objetos de alto nivel y el formato que puedes esperar recibir en v2 en comparación con el formato Native Enriched.
Estructura de Native EnrichedEstructura de v2
Predeterminada{
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 fields y expansions{
“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 y qué parámetros de v2 se requieren para recibir el nuevo campo.  

Objeto Tweet

Formato Native EnrichedFormato Twitter v2Parámetros v2 requeridosTipo en v2
created_atdata.created_attweet.fields=created_atString
idN/A - Ver 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 - el texto incluye el texto completo
sourcedata.sourcetweet.fields=sourceString
truncatedN/A - el texto incluye el texto completo
No disponibledata.conversation_idtweet.fields=conversation_idString
No disponibledata.reply_settingstweet.fields=reply_settingsString
in_reply_to_status_idN/A - Ver referenced_tweets.id
in_reply_to_status_id_strdata.referenced_tweets.id (if type=replied_to)expansions=referenced_tweets.idString
in_reply_to_user_idN/A - Ver 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 (if type=quoted)tweet.fields=referenced_tweetsString
extended_tweet.full_textN/A - el texto es el texto completo
No disponibledata.public_metricstweet.fields=public_metricsObject
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_metricsObject
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_metricsObject
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
contributorsNo disponibleNo disponible
entitiesdata.entitiestweet.fields=entitiesObject
entities.user_mentionsdata.entities.mentionstweet.fields=entitiesArray of objects
entities.symbolsdata.entities.cashtagstweet.fields=entitiesArray of objects
entities.hashtagsdata.entities.hashtagstweet.fields=entitiesArray of objects
entities.urlsdata.entities.urlstweet.fields=entitiesArray of objects
entities.mediaincludes.mediaexpansions=attachments.media_keysArray of objects
entities.annotationstweet.fields=entities,context_annotationsObject
entities.annotations.contextdata.context_annotationstweet.fields=entities,context_annotationsArray of objects
Sin equivalentedata.context_annotations.domaintweet.fields=context_annotationsObject
entities.annotations.context.context_domain_id_strdata.context_annotations.domain.idtweet.fields=context_annotationsString
entities.annotations.context.context_domain_idNo disponibleNo disponible - ver data.context_annotations.domain.id para formato string
entities.annotations.context.context_domain_namedata.context_annotations.domain.nametweet.fields=context_annotationsString
entities.annotations.context.context_domain_descriptiondata.context_annotations.domain.descriptiontweet.fields=context_annotationsString
Sin equivalentedata.context_annotations.entitytweet.fields=context_annotationsObject
entities.annotations.context.context_entity_id_strdata.context_annotations.entity.idtweet.fields=context_annotationsString
entities.annotations.context.context_entity_idNo disponibleNo disponible - ver data.context_annotations.entity.id para formato string
entities.annotations.context.context_entity_namedata.context_annotations.entity.nametweet.fields=context_annotationsString
entities.annotations.context.context_entity_descriptiondata.context_annotations.entity.descriptiontweet.fields=context_annotationsString
entities.annotations.entitydata.entities.annotationstweet.fields=entities,context_annotationsArray of objects
extended_entitiesdata.attachmentstweet_fields=attachmentsObject
favoritedNo disponibleNo disponible
retweetedNo disponibleNo disponible
retweeted_status
possibly_sensitivedata.possibly_sensitivetweet.fields=possibly_sensitiveBoolean
langdata.langtweet.fields=langString
filter_levelNo disponibleNo disponible
scopesNo disponibleNo disponible
timestamp_msNo disponibleNo disponible
withhelddata.withheldtweet.fields=withheldArray of objects
matching_rulesmatching_rulesArray of objects
matching_rules.idNo disponibleNo disponible
matching_rules.id_strmatching_rules.idPredeterminado con stream filtradoString
matching_rules.tagmatching_rules.tagPredeterminado con stream filtradoString

Objeto de usuario

Formato Native EnrichedFormato X v2Parámetros v2 requeridosTipo en v2
userincludes.usersexpansions=author_idArray of objects
user.idNo disponibleN/A - Ver includes.users.idString
user.id_strincludes.users.idexpansions=author_idString
user.nameincludes.users.nameexpansions=author_idString
user.screen_nameincludes.user.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 - inferir 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_urlVer 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=withheldObject
user.protectedincludes.users.protectedexpansions=author_id&user.fields=protectedBoolean
No disponibleincludes.users.entitiesexpansions=author_id&user.fields=entitiesObject
No disponibleincludes.users.entities.urlexpansions=author_id&user.fields=entitiesObject
No disponibleincludes.users.entities.url.urlsexpansions=author_id&user.fields=entitiesArray of objects
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=entitiesString
user.urlincludes.users.entities.url.urls.expanded_urlexpansions=author_id&user.fields=entitiesString
No disponibleincludes.users.entities.url.urls.display_urlexpansions=author_id&user.fields=entitiesString
No disponibleincludes.users.entities.descriptionsexpansions=author_id&user.fields=entitiesObject
No disponibleincludes.users.entities.descriptions.hashtagsexpansions=author_id&user.fields=entitiesArray of objects
No disponibleincludes.users.entities.descriptions.hashtags.startexpansions=author_id&user.fields=entitiesInt
No disponibleincludes.users.entities.descriptions.hashtags.endexpansions=author_id&user.fields=entitiesInt
Incluido en user.descriptionincludes.users.entities.descriptions.hashtags.tagexpansions=author_id&user.fields=entitiesString
No disponibleincludes.users.entities.descriptions.mentionsexpansions=author_id&user.fields=entitiesArray of objects
No disponibleincludes.users.entities.descriptions.mentions.startexpansions=author_id&user.fields=entitiesInt
No disponibleincludes.users.entities.descriptions.mentions.endexpansions=author_id&user.fields=entitiesInt
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 of objects
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 entities y de entities expandidas

Formato Native EnrichedFormato Twitter v2Parámetros v2 requeridosTipo en v2
entitiesdata.entitiestweet.fields=entitiesObject
entities.hashtagsdata.entities.hashtagstweet.fields=entitiesArray of objects
entities.hashtags.indices[0]data.entities.hashtags.starttweet.fields=entitiesInteger
entities.hashtags.indices[1]data.entities.hashtags.endtweet.fields=entitiesInteger
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=entitiesInteger
entities.urls.indices[1]data.entities.urls.endtweet.fields=entitiesInteger
entities.urls.urldata.entities.urls.urltweet.fields=entitiesString
entities.urls.expanded_urldata.entities.urls.expanded_urltweet.fields=entitiesString
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 of objects
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 of objects
entities.user_mentions.indicies[0]data.entities.mentions.starttweet.fields=entitiesInteger
entities.user_mentions.indicies[1]data.entities.mentions.endtweet.fields=entitiesInteger
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=entitiesInteger
entities.symbols.indices[1]data.entities.cashtags.endtweet.fields=entitiesInteger
entities.symbols.textdata.entities.cashtags.tagtweet.fields=entitiesString
entities.media OR extended_entities.mediaincludes.mediaexpansions=attachments.media_keysArray of objects
entities.media.id_str OR extended_entities.media.id_strincludes.media.media_keyexpansions=attachments.media_keysString
entities.media.id OR extended_entities.media.idNo disponible - id es un String
entities.media.type OR extended_entities.media.typeincludes.media.media.typeexpansions=attachments.media_keysString
entities.media.indices OR extended_entities.media.indicesNo disponibleNo disponible
No disponibleincludes.media.alt_textexpansions=attachments.media_keys&media.fields=alt_textString
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/A - Ver includes.media.urlString
entities.media.media_url_https OR extended_entities.media.media_url_httpsincludes.media.urlexpansions=attachments.media_keys&media.fields=urlString
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_urlString
extended_entitiesdata.attachmentstweet_fields=attachmentsObject
extended_entitiesdata.attachments.media_keystweet.fields=attachmentsArray of objects
No disponibledata.attachments.poll_idstweet.fields=attachmentsArray of objects
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_urlString
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_metricsInt
No disponibleincludes.media.non_public_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
No disponibleincludes.media.non_public_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
No disponibleincludes.media.organic_metricsexpansions=attachments.media_keys&media.fields=organic_metricsObject
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_metricexpansions=attachments.media_keys&media.fields=promoted_metricsObject
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 nativo enriquecidoFormato de Twitter v2Parámetros requeridos de v2Tipo en v2
placeincludes.placesexpansions=geo.place_idMatriz de objetos
place.idincludes.places.idexpansions=geo.place_idCadena
place.urlNo disponibleNo disponible
place.id.place_typeincludes.places.place_typeexpansions=geo.place_id&place.fields=place_typeCadena
place.id.nameincludes.places.nameexpansions=geo.place_id&place.fields=nameCadena
place.id.full_nameincludes.places.full_nameexpansions=geo.place_idCadena
place.id.country_codeincludes.places.country_codeexpansions=geo.place_id&place.fields=country_codeCadena
place.id.countryincludes.places.countryexpansions=geo.place_id&place.fields=countryCadena
place.id.contained_withinincludes.places.contained_withinexpansions=geo.place_id&place.fields=contained_withinMatriz
place.id.bounding_box.typeincludes.places.geo.typeexpansions=geo.place_id&place.fields=place_typeCadena
place.id.bounding_box.coordinatesincludes.places.geo.bboxexpansions=geo.place_id&place.fields=geoMatriz
place.id.attributesincludes.places.propertiesexpansions=geo.place_id&place.fields=geoObjeto

Objeto de encuesta

Formato nativo enriquecidoFormato de Twitter v2Parámetros requeridos de v2Tipo en v2
entities.pollsincludes.pollsexpansions=attachments.poll_idsArreglo de objetos
No disponibleincludes.polls.idexpansions=attachments.poll_idsCadena
entities.poll.optionsincludes.polls.optionsexpansions=attachments.poll_idsArreglo de objetos
entities.polls.options.positionincludes.polls.options.positionexpansions=attachments.poll_idsEntero
entities.polls.options.textincludes.polls.options.labelexpansions=attachments.poll_idsCadena
No disponibleincludes.polls.options.votesexpansions=attachments.poll_idsEntero
No disponibleincludes.polls.voting_statusexpansions=attachments.poll_ids&poll.fields=voting_statusCadena
entities.polls.duration_minutesincludes.polls.duration_minutesexpansions=attachments.poll_ids&poll.fields=duration_minutesEntero
entities.polls.end_datetimeincludes.polls.end_datetimeexpansions=attachments.poll_ids&poll.fields=end_datetimeFecha (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 Edit Tweet, consulta la página Fundamentos de Edit Tweets. Si utiliza los endpoints de Standard v1.1, consulte la guía de Standard v1.1 a v2. Si utiliza los endpoints premium o el formato Native Enriched para Enterprise, consulte la guía de Native Enriched a v2. X API v2 introduce nuevos diseños JSON para los objetos Post y usuario.
  • En el nivel raíz de JSON, el formato Activity Streams devuelve objetos Tweet en un array results, mientras que X API v2 devuelve un array data.
  • En lugar de referirse a “actividades” de Retweet y de Cita, 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 de usuario), X API v2 utiliza el término like.
  • X adopta la convención de que los valores JSON sin valor (por ejemplo, null) no se escriben en la carga útil. Los atributos de Tweet y de usuario solo se incluyen si tienen valores distintos de null.
  • Todos los campos id en v2 estarán en formato string.
Además de los cambios realizados en el nuevo formato JSON, también introdujimos un nuevo conjunto de fields en el objeto Tweet, que incluye lo siguiente:
  • conversation_id
  • reply_settings
  • alt_text en medios
  • Dos campos nuevos 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 reemplazado 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 Twitter v2Parámetros v2 requeridosTipo en v2
postedTimedata.created_attweet.fields=created_atFecha (ISO 8601)
generatorNo disponibleNo disponible
generator.linkNo disponibleNo disponible
generator.displayNamedata.sourcetweet.fields=sourceString
twitter_langdata.langtweet.fields=langString
No disponibledata.conversation_idtweet.fields=conversation_idString
No disponibledata.reply_settingstweet.fields=reply_settingsString
No disponibledata.possibly_sensitivetweet.fields=possibly_sensitiveBoolean
No disponibledata.withheldtweet.fields=withheldObject
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.textdefaultString
object.edit_historydata.edit_history_tweet_idsdefaultArray
object.edit_controlsdata.edit_controlstweet.fields=edit_controlsObject
object.editabledata.edit_controls.is_edit_eligibletweet.fields=edit_controlsBoolean
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_idString
No disponibledata.referenced_tweetstweet.fields=referenced_tweetsArray of objects
No disponibledata.referenced_tweets.typetweet.fields=referenced_tweetsString
Derivado de inReplyTo.linkdata.referenced_tweets.idtweet.fields=referenced_tweetsString
No disponibledata.attachmentstweet.fields=attachmentsObject
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 of objects
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 of objects
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 of objects
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=entitiesString
gnip.urls.expanded_urldata.entities.urls.unwound_urltweet.fields=entitiesString
twitter_entities.symbolsdata.entities.cashtagstweet.fields=entitiesArray of objects
twitter_entities.symbols.indices[0]data.entities.cashtags.starttweet.fields=entitiesInt
twitter_entities.symbols.indices[1]data.entities.cashtags.endtweet.fields=entitiesInt
twitter_entities.symbols.textdata.entities.cashtags.tagtweet.fields=entitiesString
twitter_entities.hashtagsdata.entities.hashtagstweet.fields=entitiesArray of objects
twitter_entities.hashtags.indices[0]data.entities.hashtags.starttweet.fields=entitiesInt
twitter_entities.hashtags.indices[1]data.entities.hashtags.endtweet.fields=entitiesInt
twitter_entities.hashtags.textdata.entities.hashtags.tagtweet.fields=entitiesString
twitter_entities.user_mentionsdata.entities.mentionstweet.fields=entitiesArray of objects
twitter_entities.user_mentions.indices[0]data.entities.mentions.starttweet.fields=entitiesInt
twitter_entities.user_mentions.indices[1]data.entities.mentions.endtweet.fields=entitiesInt
twitter_entities.user_mentions.screen_namedata.entities.mentions.tagtweet.fields=entitiesString
twitter_entities.user_mentions.id_strdata.entities.mentions.idtweet.fields=entitiesString
twitter_entities.user_mentions.idNo disponibleNo disponible
No disponibledata.context_annotationstweet.fields=context_annotationsArray of objects
No disponibledata.context_annotations.domaintweet.fields=context_annotationsObject
No disponibledata.context_annotations.domain.idtweet.fields=context_annotationsString
No disponibledata.context_annotations.domain.nametweet.fields=context_annotationsString
No disponibledata.context_annotations.domain.descriptiontweet.fields=context_annotationsString
No disponibledata.context_annotations.entitytweet.fields=context_annotationsObject
No disponibledata.context_annotations.entity.idtweet.fields=context_annotationsString
No disponibledata.context_annotations.entity.nametweet.fields=context_annotationsString
No disponibledata.context_annotations.entity.descriptiontweet.fields=context_annotationsString
geodata.geotweet.fields=geoObject
Derivado de location.linkdata.geo.place_idtweet.fields=geoString
No disponibledata.public_metricstweet.fields=public_metricsObject
favoritesCountdata.public_metrics.like_counttweet.fields=public_metricsInt
retweetCountdata.public_metrics.retweet_counttweet.fields=public_metricsInt
No disponibledata.public_metrics.quote_counttweet.fields=public_metricsInt
No disponibledata.public_metrics.reply_counttweet.fields=public_metricsInt
No disponibledata.non_public_metricstweet.fields=non_public_metricsObject
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_metricsObject
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 Activity StreamsFormato X v2Parámetros v2 requeridosTipo en v2
actorincludes.usersexpansions=author_idArray de objetos
Derivado de actor.idincludes.users.idexpansions=author_idString
actor.displayNameincludes.users.nameexpansions=author_idString
actor.preferredUsernameincludes.users.usernameexpansions=author_idString
actor.postedTimeincludes.users.created_atexpansions=author_id&user.fields=created_atFecha (ISO 8601)
actor.summaryincludes.users.descriptionexpansions=author_id&user.fields=descriptionString
No disponibleincludes.users.pinned_tweet_idexpansions=author_id&user.fields=pinned_tweet_idString
No disponibleincludes.users.protectedexpansions=author_id&user.fields=protectedBoolean
actor.linkNo disponibleNo disponible - construir desde includes.users.username
actor.twitterTimeZoneNo disponibleNo disponible - inferir desde Post created_at
actor.utcOffsetNo disponibleNo disponible - inferir desde Post 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 - inferir desde Post 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=withheldObject
No disponibleincludes.users.entitiesexpansions=author_id&user.fields=entitiesObject
No disponibleincludes.users.entities.urlexpansions=author_id&user.fields=entitiesObject
actor.linksincludes.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=entitiesString
actor.links.hrefincludes.users.entities.url.urls.expanded_urlexpansions=author_id&user.fields=entitiesString
No disponibleincludes.users.entities.url.urls.display_urlexpansions=author_id&user.fields=entitiesString
No disponibleincludes.users.entities.descriptionexpansions=author_id&user.fields=entitiesObject
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 de encuesta

Formato Activity StreamsFormato de Twitter v2Parámetros v2 requeridosTipo en v2
No disponibleincludes.pollsexpansions=attachments.poll_idsMatriz de objetos
No disponibleincludes.polls.idexpansions=attachments.poll_idsCadena
No disponibleincludes.polls.optionsexpansions=attachments.poll_idsMatriz de objetos
No disponibleincludes.polls.options.positionexpansions=attachments.poll_idsEntero
No disponibleincludes.polls.options.labelexpansions=attachments.poll_idsCadena
No disponibleincludes.polls.options.votesexpansions=attachments.poll_idsEntero
No disponibleincludes.polls.voting_statusexpansions=attachments.poll_ids&poll.fields=voting_statusCadena
No disponibleincludes.polls.duration_minutesexpansions=attachments.poll_ids&poll.fields=duration_minutesEntero
No disponibleincludes.polls.end_datetimeexpansions=attachments.poll_ids&poll.fields=end_datetimeFecha (ISO 8601)

Objeto Place

Formato Activity StreamsFormato de Twitter v2Parámetros requeridos de v2Tipo en v2
locationincludes.placesexpansions=geo.place_idmatriz de objetos
location.displayNameincludes.places.full_nameexpansions=geo.place_idcadena
Extraído de 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=geomatriz
No disponibleincludes.places.geo.propertiesexpansions=geo.place_id&place.fields=geoobjeto

Objeto multimedia

Formato Activity StreamsFormato Twitter v2Parámetros v2 requeridosTipo en v2
twitter_entities.media OR twitter_extended_entities.mediaincludes.mediaexpansions=attachments.media_keysArray of objects
twitter_entities.media.id_str OR twitter_extended_entities.media.id_strincludes.media.media_keyexpansions=attachments.media_keysString
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_urlString
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_textString
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_metricsInt
No disponibleincludes.media.non_public_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
No disponibleincludes.media.non_public_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
No disponibleincludes.media.organic_metricsexpansions=attachments.media_keys&media.fields=organic_metricsObject
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 Activity StreamsFormato de Twitter v2Parámetros v2 obligatoriosTipo en v2
gnip.matching_rulesmatching_rulesPredeterminado en stream filtradoMatriz de objetos
gnip.matching_rules.tagmatching_rules.tagPredeterminado en stream filtradoCadena
gnip.matching_rules.tag.idNo disponibleNo disponible
gnip.matching_rules.tag.id_strmatching_rules.idPredeterminado en stream filtradoCadena

Herramienta visual de migración del formato de datos

La herramienta visual de migración del formato de datos es una aplicación web que muestra los fields que se asignan desde el formato de datos de X API v1.1 al formato de X API v2 para un Tweet u objeto de usuario determinado. Puede proporcionar un id de Tweet o un id de usuario a la aplicación para ver esta correspondencia. Tenga en cuenta que deberá iniciar sesión con su cuenta de Twitter para usar la App.
I