Passer au contenu principal

Introduction

Avec le lancement de la version v2 de la X API, nous avons adopté un nouveau format de réponse des données et une nouvelle méthode pour demander différents objets et fields, que nous appelons simplement le format X API v2.  Dans la section sur les différences générales, vous pouvez découvrir certains changements pertinents pour les utilisateurs Standard et Enterprise. Cependant, nous avons également préparé un guide spécifique pour le format natif Standard v1.1, le format Native Enriched pour Enterprise et le format Activity Streams pour Enterprise, qui aide à faire correspondre les fields et explique quels fields et expansions vous devez utiliser pour demander les nouveaux fields v2.  Vous pouvez également être intéressé par notre outil visuel de migration de format de données, qui vous aide à voir rapidement les différences entre le format de données X API v1.1 et le format X API v2.

Différences générales

Demande d’objets et de fields

L’un des principaux changements entre les endpoints antérieurs à v2 et v2 est que la version la plus récente ne renvoie que quelques fields par défaut, tandis que les endpoints standard, premium et Enterprise fournissent la plupart des fields par défaut. La nouvelle version utilise des paramètres appelés fields et expansions pour demander explicitement des data supplémentaires au-delà des valeurs par défaut, ce qui signifie que vous pouvez demander uniquement les data dont vous avez besoin sans avoir à ingérer des fields qui ne vous concernent pas. Tous les fields que vous demandez et qui se rapportent à l’objet de data principal seront renvoyés dans cet objet de data principal avec les valeurs par défaut. En revanche, si vous demandez des objets étendus à l’aide du paramètre expansions, les objets secondaires seront renvoyés dans un nouvel objet includes. Vous pouvez faire correspondre les objets étendus de l’objet includes à l’objet principal en utilisant le champ id, qui sera renvoyé dans les deux. Par exemple, si vous utilisez l’endpoint v2 Post lookup et que vous incluez le paramètre expansions=author_id dans votre requête, vous recevrez le champ author_id dans l’Objet Post principal, ainsi qu’un objet utilisateur par Post dans l’objet includes, chacun incluant le champ id par défaut qui peut être utilisé pour faire correspondre l’objet utilisateur à l’Objet Post. Voici un exemple de ce à quoi cela ressemble :
{
  "data": [
    {
      "author_id": "2244994945",
      "id": "1397568983931392004",
      "text": "La plateforme de développement X. Ooh la la ! https://t.co/iGTdPXBfOv https://t.co/Ze8z8EODdg"
    }
  ],
  "includes": {
    "users": [
      {
        "id": "2244994945",
        "name": "X Dev",
        "username": "TwitterDev"
      }
    ]
  }
}

Conception JSON mise à jour

En plus des changements dans la manière de demander certains fields, X API v2 introduit également de nouvelles conceptions JSON pour les objets renvoyés par les API, notamment les objets Post et user.
  • Au niveau racine du JSON, les endpoints standard renvoient des Objets Post dans un tableau statuses, tandis que X API v2 renvoie un tableau data.
  • Au lieu de faire référence aux « statuses » Retweeted et Quoted, le JSON de X API v2 fait référence aux Tweets Retweeted et Quoted. De nombreux fields hérités et obsolètes, tels que contributors et user.translator_type, sont supprimés.
  • Au lieu d’utiliser à la fois favorites (dans l’Objet Post) et favourites (dans l’objet utilisateur), X API v2 utilise le terme like.
  • X adopte la convention selon laquelle les valeurs JSON vides (par exemple, null) ne sont pas écrites dans le payload. Les attributs Post et user ne sont inclus que s’ils ont une valeur non nulle.   

Nouveaux champs v2

Nous avons également introduit un nouvel ensemble de champs dans l’Objet Post, notamment :
  • Un champ conversation_id
  • Deux nouveaux champs annotations, incluant context et entities
  • Plusieurs nouveaux champs metrics
  • Un nouveau champ reply_setting, qui indique qui peut répondre à un Post donné

Migration du format de données Standard v1.1 vers v2

Si ce n’est pas déjà fait, nous vous recommandons de commencer par lire l’introduction à la migration des formats de données. Vous pouvez également être intéressé par notre outil visuel de migration de format de données, qui vous aidera à visualiser rapidement les différences entre le format de données X API v1.1 et le format X API v2. Le format de données Standard v1.1, également appelé format natif, est le format principal fourni avec les endpoints Standard v1.1. Si vous utilisez l’offre Premium, veuillez consulter le guide du format natif enrichi. Les clients Enterprise peuvent utiliser le format natif enrichi ou des activity streams, selon la configuration de votre compte dans la console Gnip. 

Structure de payload Standard v1.1 vs v2

Le tableau suivant présente les objets et le format de haut niveau que vous pouvez attendre de v2, par comparaison avec le format v1.1.
Structure v1.1Structure v2
Par défaut{
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”
}]
}
Avec des paramètres fields et expansions définis{
“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”: []
}
Correspondance des champs La section suivante indique quels champs v1.1 correspondent aux champs v2, ainsi que les paramètres v2 requis pour recevoir le nouveau champ.  

Objet Tweet

Format Twitter 1.1Format Twitter v2Paramètres v2 requis
created_atdata.created_attweet.fields=created_at
idN/A id est une chaîne
id_strdata.idpar défaut
textdata.textpar défaut
full_textN/A text inclut le texte complet
truncatedN/A text inclut le texte complet
display_text_rangeN/A text inclut le texte complet
edit_historydata.edit_history_tweet_idspar défaut
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 est une chaîne
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 est une chaîne
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_statusNon disponible
quoted_status_idN/A referenced_tweets.id est une chaîne
quoted_status_id_strdata.referenced_tweets.id (si type=quoted)expansions=referenced_tweets.id
quoted_status_permalinkNon 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
favoritedNon disponible
retweetedNon disponible
possibly_sensitivedata.possibly_sensitivetweet.fields=possibly_sensitive
langdata.langtweet.fields=lang
scopesNon disponible
withhelddata.withheldtweet.fields=withheld
Exemple
Objet Tweet en v1.1

Exemple d’URI avec paramètres :

https://api.x.com/1.1/statuses/lookup.json?id=1359554366051504129&tweet_mode=extended
Objet Tweet et requête avec v2

Exemple d’URI avec paramètres :

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”: “Allez-y, suivez un autre compte de chiot. Nous ne vous jugerons pas. \n\nPrésentation des endpoints de gestion des abonnements pour le nouveau… 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”: “Allez-y, suivez un autre compte de chiot. Nous ne vous jugerons pas. \n\nPrésentation des endpoints de gestion des abonnements pour le nouveau #TwitterAPI. Vous pouvez désormais utiliser l’API v2 pour suivre et ne plus suivre des comptes. En savoir plus 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”: “Présentation des nouveaux endpoints de gestion des abonnements pour X API v2”,
“description”: “Suivre ou ne pas suivre ? Vous êtes désormais libre de répondre à cette question comme vous le souhaitez en utilisant X API v2. Aujourd’hui, nous sommes ravis d’annoncer la sortie des nouveaux endpoints de gestion des abonnements dans la nouvelle Twitter API. Comme annoncé lors du lancement des endpoints de recherche d’abonnements il y a un peu plus d’un mois, la possibilité de gérer les relations d’abonnement est enfin disponible. Il s’agit de certains de nos endpoints les plus populaires sur nos API v1.1, nous sommes donc ravis de débloquer un large éventail de cas d’usage sur 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”: “Catégorie de marque”,
“description”: “Catégories au sein des secteurs de marque qui affinent la portée des marques”
},
“entity”: {
“id”: “781974596752842752”,
“name”: “Services”
}
},
{
“domain”: {
“id”: “47”,
“name”: “Marque”,
“description”: “Marques et entreprises”
},
“entity”: {
“id”: “10045225402”,
“name”: “Twitter”
}
}
]
}]
}

Objet utilisateur

Format Twitter 1.1Format Twitter v2Paramètres v2 requis
user_iddata.author_idtweet.fields=author_id
user.idN/A : utiliser 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
Exemple
Objet utilisateur dans la version 1.1Objet utilisateur et requête avec 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”
}]
}
}

Objets entities et expanded entities

Format Twitter 1.1Format Twitter v2Paramètres v2 requisType dans v2
entitiesdata.entitiestweet.fields=entitiesobjet
entities.hashtagsdata.entities.hashtagstweet.fields=entitiestableau d’objets
entities.hashtags.indices[0]data.entities.hashtags.starttweet.fields=entitiesnombre
entities.hashtags.indices[1]data.entities.hashtags.endtweet.fields=entitiesnombre
entities.hashtags.textdata.entities.hashtags.tagtweet.fields=entitieschaîne
entities.urlsdata.entities.urlstweet.fields=entitiestableau d’objets
entities.urls.indices[0]data.entities.urls.starttweet.fields=entitiesnombre
entities.urls.indices[1]data.entities.urls.endtweet.fields=entitiesnombre
entities.urls.urldata.entities.urls.urltweet.fields=entitieschaîne
entities.user_mentionsdata.entities.mentionstweet.fields=entitiestableau d’objets
entities.user_mentions.indicies[0]data.entities.mentions.starttweet.fields=entitiesnombre
entities.user_mentions.indicies[1]data.entities.mentions.endtweet.fields=entitiesnombre
entities.user_mentions.screen_namedata.entities.mentions.usernametweet.fields=entitieschaîne
entities.symbolsdata.entities.cashtagstweet.fields=entitiestableau d’objets
entities.symbols.indices[0]data.entities.cashtags.starttweet.fields=entitiesnombre
entities.symbols.indices[1]data.entities.cashtags.endtweet.fields=entitiesnombre
entities.symbols.textdata.entities.cashtags.tagtweet.fields=entitieschaîne
entities.mediaincludes.mediaexpansions=attachments.media_keystableau d’objets
entities.media.id_strincludes.media.media_keyexpansions=attachments.media_keyschaîne
entities.media.typeincludes.media.media.typeexpansions=attachments.media_keyschaîne
entities.media.media_urlN/A utiliser includes.media.urlchaîne
entities.media.media_url_httpsincludes.media.urlexpansions=attachments.media_keys&media.fields=urlchaîne
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_urlchaîne
extended_entitiesdata.attachmentstweet_fields=attachmentsobjet
extended_entitiesdata.attachments.media_keystweet.fields=attachmentstableau d’objets
extended_entities.mediaincludes.mediaexpansions=attachments.media_keystableau d’objets
extended_entities.media.id_strincludes.media.media_keyexpansions=attachments.media_keyschaîne
extended_entities.media.typeincludes.media.media.typeexpansions=attachments.media_keyschaîne
extended_entities.media.sizes.thumb.wNon disponible
extended_entities.media.sizes.thumb.hNon disponible
extended_entities.media.sizes.thumb.resizeNon 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.resizeNon disponible
extended_entities.media.sizes.small.wNon disponible
extended_entities.media.sizes.small.hNon disponible
extended_entities.media.sizes.small.resizeNon disponible
extended_entities.media.sizes.medium.wNon disponible
extended_entities.media.sizes.medium.hNon disponible
extended_entities.media.sizes.medium.resizeNon disponible
extended_entities.media.media_url_httpsincludes.media.urlexpansions=attachments.media_keys&media.fields=urlchaîne
extended_entities.media.media_url_httpsincludes.media.preview_image_urlexpansions=attachments.media_keys&media.fields=preview_image_urlchaîne
extended_entities.media.video_info.duration_millisincludes.media.duration_msexpansions=attachments.media_keys&media.fields=duration_msnombre
Exemple
Entités et entités étendues en v1.1 (avec vidéo)Entités, pièces jointes et 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”: “Cas d’usage, tutoriels et documentation”,
“description”: “Publiez et analysez des tweets, optimisez les publicités et créez des expériences client uniques avec l’API Twitter, l’X Ads API et Twitter for Websites. Commençons à développer.”,
“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”: “Un autre #test avec une vidéo et une mention @TwitterDev. Hâte de voir la nouvelle documentation de migration de format ! 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 voix de l’équipe #TwitterDev et votre source officielle pour les mises à jour, actualités et événements liés à l’#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”
}]
}
}

Objet Place

Format Twitter 1.1Format Twitter v2Paramètres v2 requis
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
Exemple
Objet Place en v1.1Objet Place avec 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”
}]
}
Étape suivante

Migration du format de données Native Enriched vers v2

Le format de données Native Enriched est utilisé par nos produits Enterprise. Le format de données Native Enriched a été mis à jour pour fournir des métadonnées de Tweets édités. Pour en savoir plus sur les métadonnées liées à l’édition de Tweets, consultez la page Principes de base de l’édition de Tweets. Si vous utilisez les endpoints Standard v1.1, veuillez vous référer au guide de migration Standard v1.1 vers v2. Si vous utilisez les produits Enterprise avec Activity Streams, nous proposons également un guide Activity Streams vers v2. X API v2 introduit de nouveaux schémas JSON pour les objets Tweet et user.
  • Au niveau racine du JSON, le format Native Enriched renvoie des objets Tweet dans un tableau results, tandis que X API v2 renvoie un tableau data.
  • Au lieu d’utiliser à la fois favorites (dans l’objet Tweet) et favourites (dans l’objet user), X API v2 utilise le terme like.
  • X adopte la convention selon laquelle les valeurs JSON sans valeur (par exemple null) ne sont pas écrites dans le payload. Les attributs Tweet et user ne sont inclus que s’ils ont des valeurs non nulles.
  • Tous les champs id dans v2 seront au format chaîne
En plus des changements apportés au nouveau format JSON, nous avons également introduit un nouvel ensemble de fields dans l’objet Tweet, notamment :
  • conversation_id
  • reply_settings
  • alt_text sur les médias
  • Deux nouveaux champs annotations, y compris context et entities
  • Plusieurs nouveaux champs metrics
  • Plusieurs nouveaux champs polls
De nombreux champs historiques et obsolètes sont supprimés :
  • contributors
  • Certains champs entities.media et extended_entities.media
  • filter_level
  • timestamp_ms
  • truncated

Structure du payload Native Enriched vs v2

Le tableau suivant présente les objets et le format généraux que vous pouvez attendre de v2, comparés au format Native Enriched.
Structure Native EnrichedStructure v2
Par défaut{
tweet object fields,

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

“edit_history_tweet_ids”
}]
}
Avec des paramètres fields et expansions définis{
“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”: []
}
Correspondance des champs La section suivante décrit quels champs du format Native Enriched correspondent aux champs v2, ainsi que les paramètres v2 requis pour recevoir le nouveau champ.  

Objet Tweet

Format Native EnrichedFormat Twitter v2Paramètres v2 requisType en v2
created_atdata.created_attweet.fields=created_atString
idS.O. - Voir id
id_strdata.idPar défautString
textdata.textPar défautString
edit_historydata.edit_history_tweet_idsPar défautArray
edit_controlsdata.edit_controlstweet.fields=edit_controlsObject
editabledata.edit_controls.is_edit_eligibletweet.fields=edit_controlsBoolean
display_text_rangeS.O. - text inclut le texte complet
sourcedata.sourcetweet.fields=sourceString
truncatedS.O. - text inclut le texte complet
Non disponibledata.conversation_idtweet.fields=conversation_idString
Non disponibledata.reply_settingstweet.fields=reply_settingsString
in_reply_to_status_idS.O. - Voir referenced_tweets.id
in_reply_to_status_id_strdata.referenced_tweets.id (if type=replied_to)expansions=referenced_tweets.idString
in_reply_to_user_idS.O. - Voir 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_textS.O. - text est le texte complet
Non 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
Non disponibledata.non_public_metricstweet.fields=non_public_metricsObject
Non disponibledata.non_public_metrics.impression_counttweet.fields=non_public_metricsInt
Non disponibledata.non_public_metrics.url_link_counttweet.fields=non_public_metricsInt
Non disponibledata.non_public_metrics.user_profile_counttweet.fields=non_public_metricsInt
Non disponibledata.organic_metricstweet.fields=organic_metricsObject
Non disponibledata.organic_metrics.like_counttweet.fields=organic_metricsInt
Non disponibledata.organic_metrics.retweet_counttweet.fields=organic_metricsInt
Non disponibledata.organic_metrics.reply_counttweet.fields=organic_metricsInt
Non disponibledata.organic_metrics.impression_counttweet.fields=organic_metricsInt
Non disponibledata.organic_metrics.url_link_counttweet.fields=organic_metricsInt
Non disponibledata.organic_metrics.user_profile_counttweet.fields=organic_metricsInt
Non disponibledata.promoted_metricstweet.fields=promoted_metricsObject
Non disponibledata.promoted_metrics.like_counttweet.fields=promoted_metricsInt
Non disponibledata.promoted_metrics.retweet_counttweet.fields=promoted_metricsInt
Non disponibledata.promoted_metrics.reply_counttweet.fields=promoted_metricsInt
Non disponibledata.promoted_metrics.impression_counttweet.fields=promoted_metricsInt
Non disponibledata.promoted_metrics.url_link_counttweet.fields=promoted_metricsInt
Non disponibledata.promoted_metrics.user_profile_counttweet.fields=promoted_metricsInt
contributorsNon disponibleNon disponible
entitiesdata.entitiestweet.fields=entitiesObject
entities.user_mentionsdata.entities.mentionstweet.fields=entitiesTableau d’objets
entities.symbolsdata.entities.cashtagstweet.fields=entitiesTableau d’objets
entities.hashtagsdata.entities.hashtagstweet.fields=entitiesTableau d’objets
entities.urlsdata.entities.urlstweet.fields=entitiesTableau d’objets
entities.mediaincludes.mediaexpansions=attachments.media_keysTableau d’objets
entities.annotationstweet.fields=entities,context_annotationsObject
entities.annotations.contextdata.context_annotationstweet.fields=entities,context_annotationsTableau d’objets
Aucun équivalentdata.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_idNon disponibleNon disponible - voir data.context_annotations.domain.id pour le format 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
Aucun équivalentdata.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_idNon disponibleNon disponible - voir data.context_annotations.entity.id pour le format 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_annotationsTableau d’objets
extended_entitiesdata.attachmentstweet_fields=attachmentsObject
favoritedNon disponibleNon disponible
retweetedNon disponibleNon disponible
retweeted_status
possibly_sensitivedata.possibly_sensitivetweet.fields=possibly_sensitiveBoolean
langdata.langtweet.fields=langString
filter_levelNon disponibleNon disponible
scopesNon disponibleNon disponible
timestamp_msNon disponibleNon disponible
withhelddata.withheldtweet.fields=withheldTableau d’objets
matching_rulesmatching_rulesTableau d’objets
matching_rules.idNon disponibleNon disponible
matching_rules.id_strmatching_rules.idPar défaut avec flux filtréString
matching_rules.tagmatching_rules.tagPar défaut avec flux filtréString

Objet utilisateur

Format Native EnrichedFormat X v2Paramètres v2 requisType en v2
userincludes.usersexpansions=author_idTableau d’objets
user.idNon disponibleN/A - Voir 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
Non 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_countPas encore disponible
user.verifiedincludes.users.verifiedexpansions=author_id&user.fields=verifiedBoolean
Non 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_typeNon disponibleNon disponible
user.utc_offsetNon disponibleNon disponible
user.time_zoneNon disponibleNon disponible
user.geo_enabledNon disponibleNon disponible
user.langNon disponibleNon disponible - inférer à partir du lang du Tweet
user.contributors_enabledNon disponibleNon disponible
user.is_translatorNon disponibleNon disponible
user.profile_background_colorNon disponibleNon disponible
user.profile_background_image_urlNon disponibleNon disponible
user.profile_background_image_url_httpsNon disponibleNon disponible
user.profile_background_titleNon disponibleNon disponible
user.profile_sidebar_border_colorNon disponibleNon disponible
user.profile_sidebar_fill_colorNon disponibleNon disponible
user.profile_text_colorNon disponibleNon disponible
user.profile_user_background_imageNon disponibleNon disponible
user.profile_image_urlVoir includes.user.profile_image_url
user.default_profileNon disponibleNon disponible
user.default_profile_imageNon disponibleNon disponible
user.followingNon disponibleNon disponible
user.follow_request_sentNon disponibleNon disponible
user.notificationsNon disponibleNon disponible
user.withheld_in_countriesincludes.users.withheldexpansions=author_id&user.fields=withheldObject
user.protectedincludes.users.protectedexpansions=author_id&user.fields=protectedBoolean
Non disponibleincludes.users.entitiesexpansions=author_id&user.fields=entitiesObject
Non disponibleincludes.users.entities.urlexpansions=author_id&user.fields=entitiesObject
Non disponibleincludes.users.entities.url.urlsexpansions=author_id&user.fields=entitiesTableau d’objets
Non disponibleincludes.users.entities.url.urls.startexpansions=author_id&user.fields=entitiesInt
Non disponibleincludes.users.entities.url.urls.endexpansions=author_id&user.fields=entitiesInt
Non disponibleincludes.users.entities.url.urls.urlexpansions=author_id&user.fields=entitiesString
user.urlincludes.users.entities.url.urls.expanded_urlexpansions=author_id&user.fields=entitiesString
Non disponibleincludes.users.entities.url.urls.display_urlexpansions=author_id&user.fields=entitiesString
Non disponibleincludes.users.entities.descriptionsexpansions=author_id&user.fields=entitiesObject
Non disponibleincludes.users.entities.descriptions.hashtagsexpansions=author_id&user.fields=entitiesTableau d’objets
Non disponibleincludes.users.entities.descriptions.hashtags.startexpansions=author_id&user.fields=entitiesInt
Non disponibleincludes.users.entities.descriptions.hashtags.endexpansions=author_id&user.fields=entitiesInt
Inclus dans user.descriptionincludes.users.entities.descriptions.hashtags.tagexpansions=author_id&user.fields=entitiesString
Non disponibleincludes.users.entities.descriptions.mentionsexpansions=author_id&user.fields=entitiesTableau d’objets
Non disponibleincludes.users.entities.descriptions.mentions.startexpansions=author_id&user.fields=entitiesInt
Non disponibleincludes.users.entities.descriptions.mentions.endexpansions=author_id&user.fields=entitiesInt
Inclus dans user.descriptionincludes.users.entities.descriptions.mentions.usernameexpansions=author_id&user.fields=entitiesString
Non disponibleincludes.users.entities.descriptions.cashtagsexpansions=author_id&user.fields=entitiesTableau d’objets
Non disponibleincludes.users.entities.descriptions.cashtags.startexpansions=author_id&user.fields=entitiesInt
Non disponibleincludes.users.entities.descriptions.cashtags.endexpansions=author_id&user.fields=entitiesInt
Inclus dans user.descriptionincludes.users.entities.descriptions.cashtags.tagexpansions=author_id&user.fields=entitiesString

Objets entities et expanded_entities

Format Native EnrichedFormat Twitter v2Paramètres v2 requisType 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
Non disponibledata.entities.urls.imagestweet.fields=entitiesArray of objects
Non disponibledata.entities.urls.images.urltweet.fields=entitiesString
Non disponibledata.entities.urls.images.widthtweet.fields=entitiesInt
Non 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.idNon disponible - id est une chaîne de caractères
entities.media.type OR extended_entities.media.typeincludes.media.media.typeexpansions=attachments.media_keysString
entities.media.indices OR extended_entities.media.indicesNon disponibleNon disponible
Non disponibleincludes.media.alt_textexpansions=attachments.media_keys&media.fields=alt_textString
entities.media.additional_media_info OR extended_entities.media.additional_media_infoNon disponibleNon disponible
entities.media.additional_media_info.monetizable OR extended_entities.media.additional_media_info.monetizableNon disponibleNon disponible
entities.media.media_url OR extended_entities.media.media_urlN/A - Voir 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
Non disponibledata.attachments.poll_idstweet.fields=attachmentsArray of objects
extended_entities.media.sizes.thumb.wNon disponible
extended_entities.media.sizes.thumb.hNon disponible
extended_entities.media.sizes.thumb.resizeNon 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.resizeNon disponibleNon disponible
extended_entities.media.sizes.small.wNon disponibleNon disponible
extended_entities.media.sizes.small.hNon disponibleNon disponible
extended_entities.media.sizes.small.resizeNon disponibleNon disponible
extended_entities.media.sizes.medium.wNon disponibleNon disponible
extended_entities.media.sizes.medium.hNon disponibleNon disponible
extended_entities.media.sizes.medium.resizeNon disponibleNon 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_ratioNon disponibleNon disponible
extended_entities.media.variantsNon disponibleNon disponible
extended_entities.media.variants.bitrateNon disponibleNon disponible
extended_entities.media.variants.content_typeNon disponibleNon disponible
extended_entities.media.variants.urlNon disponibleNon disponible
extended_entities.media.video_info.duration_millisincludes.media.duration_msexpansions=attachments.media_keys&media.fields=duration_msInt
Non disponibleincludes.media.public_metricsexpansions=attachments.media_keys&media.fields=public_metricsObject
Non disponibleincludes.media.public_metrics.view_countexpansions=attachments.media_keys&media.fields=public_metricsInt
Non disponibleincludes.media.non_public_metricsexpansions=attachments.media_keys&media.fields=non_public_metricsObject
Non disponibleincludes.media.non_public_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibleincludes.media.non_public_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibleincludes.media.non_public_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibleincludes.media.non_public_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibleincludes.media.non_public_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibleincludes.media.organic_metricsexpansions=attachments.media_keys&media.fields=organic_metricsObject
Non disponibleincludes.media.organic_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibleincludes.media.organic_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibleincludes.media.organic_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibleincludes.media.organic_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibleincludes.media.organic_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibleincludes.media.organic_metrics.view_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibleincludes.media.promoted_metricexpansions=attachments.media_keys&media.fields=promoted_metricsObjet
Non disponibleincludes.media.promoted_metric.playback_0_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibleincludes.media.promoted_metric.playback_25_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibleincludes.media.promoted_metric.playback_50_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibleincludes.media.promoted_metric.playback_75_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibleincludes.media.promoted_metric.playback_100_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibleincludes.media.promoted_metrics.view_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt

Objet Place

Format natif enrichiFormat Twitter v2Paramètres v2 requisType dans v2
placeincludes.placesexpansions=geo.place_idTableau d’objets
place.idincludes.places.idexpansions=geo.place_idChaîne
place.urlNon disponibleNon disponible
place.id.place_typeincludes.places.place_typeexpansions=geo.place_id&place.fields=place_typeChaîne
place.id.nameincludes.places.nameexpansions=geo.place_id&place.fields=nameChaîne
place.id.full_nameincludes.places.full_nameexpansions=geo.place_idChaîne
place.id.country_codeincludes.places.country_codeexpansions=geo.place_id&place.fields=country_codeChaîne
place.id.countryincludes.places.countryexpansions=geo.place_id&place.fields=countryChaîne
place.id.contained_withinincludes.places.contained_withinexpansions=geo.place_id&place.fields=contained_withinTableau
place.id.bounding_box.typeincludes.places.geo.typeexpansions=geo.place_id&place.fields=place_typeChaîne
place.id.bounding_box.coordinatesincludes.places.geo.bboxexpansions=geo.place_id&place.fields=geoTableau
place.id.attributesincludes.places.propertiesexpansions=geo.place_id&place.fields=geoObjet

Objet « sondage »

Format natif enrichiFormat Twitter v2Paramètres v2 requisType dans v2
entities.pollsincludes.pollsexpansions=attachments.poll_idsTableau d’objets
Non disponibleincludes.polls.idexpansions=attachments.poll_idsChaîne
entities.poll.optionsincludes.polls.optionsexpansions=attachments.poll_idsTableau d’objets
entities.polls.options.positionincludes.polls.options.positionexpansions=attachments.poll_idsEntier
entities.polls.options.textincludes.polls.options.labelexpansions=attachments.poll_idsChaîne
Non disponibleincludes.polls.options.votesexpansions=attachments.poll_idsEntier
Non disponibleincludes.polls.voting_statusexpansions=attachments.poll_ids&poll.fields=voting_statusChaîne
entities.polls.duration_minutesincludes.polls.duration_minutesexpansions=attachments.poll_ids&poll.fields=duration_minutesEntier
entities.polls.end_datetimeincludes.polls.end_datetimeexpansions=attachments.poll_ids&poll.fields=end_datetimeDate (ISO 8601)

Migration du format de données Activity Streams vers v2

Le format de données Activity Streams est disponible avec nos produits Enterprise. Le format de données Activity Streams a été mis à jour afin de fournir des métadonnées relatives aux Tweets édités. Pour en savoir plus sur les métadonnées d’édition de Tweet, consultez la page Principes fondamentaux des Tweets édités. Si vous utilisez les endpoints Standard v1.1, veuillez consulter le guide de migration de Standard v1.1 vers v2. Si vous utilisez les endpoints Premium ou le format Native Enriched pour Enterprise, veuillez consulter le guide de migration de Native Enriched vers v2. X API v2 introduit de nouvelles conceptions JSON pour les objets Post et user.
  • Au niveau racine du JSON, le format Activity Streams renvoie des objets Tweet dans un tableau results, tandis que X API v2 renvoie un tableau data.
  • Au lieu de faire référence à des « activités » de Retweet et de citation, le JSON de X API v2 fait référence à des Tweets Retweeted et Quoted.
  • Au lieu d’utiliser à la fois favorites (dans l’objet Tweet) et favourites (dans l’objet user), X API v2 utilise le terme like.
  • X adopte la convention selon laquelle les valeurs JSON sans valeur (par exemple, null) ne sont pas incluses dans le payload. Les attributs des objets Tweet et user ne sont inclus que s’ils ont des valeurs non nulles.
  • Tous les champs id dans v2 seront au format chaîne.
En plus des changements apportés au nouveau format JSON, nous avons également introduit un nouvel ensemble de champs dans l’objet Tweet, comprenant les éléments suivants :
  • conversation_id
  • reply_settings
  • alt_text sur les médias
  • Deux nouveaux champs annotations, notamment context et entities
  • Plusieurs nouveaux champs de metrics
  • Plusieurs nouveaux champs polls
De nombreux champs hérités et obsolètes sont supprimés ou remplacés :
  • display_text_range
  • generator
  • gnip
  • link
  • objectType
  • provider
  • twitter_entities.symbols remplacé par data.entities.cashtags
  • Certains champs twitter_extended_entities.media et twitter_entities.media
  • twitter_filter_level
  • twitterTimeZone
  • verb

Objet Tweet

Format Activity StreamsFormat X v2Paramètres v2 requisType dans v2
postedTimedata.created_attweet.fields=created_atDate (ISO 8601)
generatorIndisponibleIndisponible
generator.linkIndisponibleIndisponible
generator.displayNamedata.sourcetweet.fields=sourceChaîne
twitter_langdata.langtweet.fields=langChaîne
Indisponibledata.conversation_idtweet.fields=conversation_idChaîne
Indisponibledata.reply_settingstweet.fields=reply_settingsChaîne
Indisponibledata.possibly_sensitivetweet.fields=possibly_sensitiveBooléen
Indisponibledata.withheldtweet.fields=withheldObjet
objectTypeIndisponibleIndisponible
verbIndisponibleIndisponible
providerIndisponibleIndisponible
provider.objectTypeIndisponibleIndisponible
provider.displayNameIndisponibleIndisponible
provider.linkIndisponibleIndisponible
linkIndisponibleIndisponible
display_text_rangeIndisponibleIndisponible
objectIndisponibleIndisponible
object.objectTypeIndisponibleIndisponible
object.idIndisponibleIndisponible
object.summarydata.textpar défautChaîne
object.edit_historydata.edit_history_tweet_idspar défautTableau
object.edit_controlsdata.edit_controlstweet.fields=edit_controlsObjet
object.editabledata.edit_controls.is_edit_eligibletweet.fields=edit_controlsBooléen
object.linkIndisponibleIndisponible
object.postedTimedata.created_attweet.fields=created_atDate (ISO 8601)
Dérivé de actor.iddata.author_idtweet.fields=created_at
twitter_filter_levelIndisponibleIndisponible
Dérivé du nom d’utilisateur dans inReplyTo.linkdata.in_reply_to_user_idtweet.fields=in_reply_to_user_idChaîne
Indisponibledata.referenced_tweetstweet.fields=referenced_tweetsTableau d’objets
Indisponibledata.referenced_tweets.typetweet.fields=referenced_tweetsChaîne
Dérivé de inReplyTo.linkdata.referenced_tweets.idtweet.fields=referenced_tweetsChaîne
Indisponibledata.attachmentstweet.fields=attachmentsObjet
Dérivé de twitter_entities.media.id_strdata.attachments.media_keystweet.fields=attachmentsTableau
Indisponibledata.attachments.poll_idstweet.fields=attachmentsTableau
twitter_entitiesdata.entitiestweet.fields=entitiesObjet
Indisponibledata.entities.annotationstweet.fields=entitiesTableau d’objets
Indisponibledata.entities.annotations.starttweet.fields=entitiesEntier
Indisponibledata.entities.annotations.endtweet.fields=entitiesEntier
Indisponibledata.entities.annotations.probabilitytweet.fields=entitiesFlottant
Indisponibledata.entities.annotations.typetweet.fields=entitiesChaîne
Indisponibledata.entities.annotations.normalized_texttweet.fields=entitiesChaîne
twitter_entities.urlsdata.entities.urlstweet.fields=entitiesTableau d’objets
twitter_entities.urls.indices[0]data.entities.urls.starttweet.fields=entitiesEntier
twitter_entities.urls.indices[1]data.entities.urls.endtweet.fields=entitiesEntier
twitter_entities.urls.urldata.entities.urls.urltweet.fields=entitiesChaîne
twitter_entities.urls.expanded_urldata.entities.urls.expanded_urltweet.fields=entitiesChaîne
twitter_entities.urls.display_urldata.entities.urls.display_urltweet.fields=entitiesChaîne
Indisponibledata.entities.urls.imagestweet.fields=entitiesTableau d’objets
Indisponibledata.entities.urls.images.urltweet.fields=entitiesChaîne
Indisponibledata.entities.urls.images.widthtweet.fields=entitiesEntier
Indisponibledata.entities.urls.images.heighttweet.fields=entitiesEntier
gnip.urls.expanded_statusdata.entities.urls.statustweet.fields=entitiesEntier
gnip.urls.expanded_url_titledata.entities.urls.titletweet.fields=entitiesChaîne
gnip.urls.expanded_url_descriptiondata.entities.urls.descriptiontweet.fields=entitiesChaîne
gnip.urls.expanded_urldata.entities.urls.unwound_urltweet.fields=entitiesChaîne
twitter_entities.symbolsdata.entities.cashtagstweet.fields=entitiesTableau d’objets
twitter_entities.symbols.indices[0]data.entities.cashtags.starttweet.fields=entitiesEntier
twitter_entities.symbols.indices[1]data.entities.cashtags.endtweet.fields=entitiesEntier
twitter_entities.symbols.textdata.entities.cashtags.tagtweet.fields=entitiesChaîne
twitter_entities.hashtagsdata.entities.hashtagstweet.fields=entitiesTableau d’objets
twitter_entities.hashtags.indices[0]data.entities.hashtags.starttweet.fields=entitiesEntier
twitter_entities.hashtags.indices[1]data.entities.hashtags.endtweet.fields=entitiesEntier
twitter_entities.hashtags.textdata.entities.hashtags.tagtweet.fields=entitiesChaîne
twitter_entities.user_mentionsdata.entities.mentionstweet.fields=entitiesTableau d’objets
twitter_entities.user_mentions.indices[0]data.entities.mentions.starttweet.fields=entitiesEntier
twitter_entities.user_mentions.indices[1]data.entities.mentions.endtweet.fields=entitiesEntier
twitter_entities.user_mentions.screen_namedata.entities.mentions.tagtweet.fields=entitiesChaîne
twitter_entities.user_mentions.id_strdata.entities.mentions.idtweet.fields=entitiesChaîne
twitter_entities.user_mentions.idIndisponibleIndisponible
Indisponibledata.context_annotationstweet.fields=context_annotationsTableau d’objets
Indisponibledata.context_annotations.domaintweet.fields=context_annotationsObjet
Indisponibledata.context_annotations.domain.idtweet.fields=context_annotationsChaîne
Indisponibledata.context_annotations.domain.nametweet.fields=context_annotationsChaîne
Indisponibledata.context_annotations.domain.descriptiontweet.fields=context_annotationsChaîne
Indisponibledata.context_annotations.entitytweet.fields=context_annotationsObjet
Indisponibledata.context_annotations.entity.idtweet.fields=context_annotationsChaîne
Indisponibledata.context_annotations.entity.nametweet.fields=context_annotationsChaîne
Indisponibledata.context_annotations.entity.descriptiontweet.fields=context_annotationsChaîne
geodata.geotweet.fields=geoObjet
Dérivé de location.linkdata.geo.place_idtweet.fields=geoChaîne
Indisponibledata.public_metricstweet.fields=public_metricsObjet
favoritesCountdata.public_metrics.like_counttweet.fields=public_metricsEntier
retweetCountdata.public_metrics.retweet_counttweet.fields=public_metricsEntier
Indisponibledata.public_metrics.quote_counttweet.fields=public_metricsEntier
Indisponibledata.public_metrics.reply_counttweet.fields=public_metricsEntier
Indisponibledata.non_non_public_metricstweet.fields=non_public_metricsObjet
Indisponibledata.non_public_metrics.impression_counttweet.fields=non_public_metricsEntier
Indisponibledata.non_public_metrics.url_link_counttweet.fields=non_public_metricsEntier
Indisponibledata.non_public_metrics.user_profile_counttweet.fields=non_public_metricsEntier
Indisponibledata.organic_metricstweet.fields=organic_metricsObjet
Indisponibledata.organic_metrics.like_counttweet.fields=organic_metricsEntier
Indisponibledata.organic_metrics.retweet_counttweet.fields=organic_metricsEntier
Non disponibledata.organic_metrics.reply_counttweet.fields=organic_metricsInt
Non disponibledata.organic_metrics.impression_counttweet.fields=organic_metricsInt
Non disponibledata.organic_metrics.url_link_counttweet.fields=organic_metricsInt
Non disponibledata.organic_metrics.user_profile_counttweet.fields=organic_metricsInt
Non disponibledata.promoted_metricstweet.fields=promoted_metricsObject
Non disponibledata.promoted_metrics.like_counttweet.fields=promoted_metricsInt
Non disponibledata.promoted_metrics.retweet_counttweet.fields=promoted_metricsInt
Non disponibledata.promoted_metrics.reply_counttweet.fields=promoted_metricsInt
Non disponibledata.promoted_metrics.impression_counttweet.fields=promoted_metricsInt
Non disponibledata.promoted_metrics.url_link_counttweet.fields=promoted_metricsInt
Non disponibledata.promoted_metrics.user_profile_counttweet.fields=promoted_metricsInt
gnip.profileLocationsNon disponibleNon disponible
gnip.profileLocations.addressNon disponibleNon disponible
gnip.profileLocations.address.countryNon disponibleNon disponible
gnip.profileLocations.address.countryCodeNon disponibleNon disponible
gnip.profileLocations.displayNameNon disponibleNon disponible
gnip.profileLocations.geoNon disponibleNon disponible
gnip.profileLocations.geo.coordinatesNon disponibleNon disponible
gnip.profileLocations.geo.typeNon disponibleNon disponible
gnip.profileLocations.objectTypeNon disponibleNon disponible

Objet utilisateur

Format Activity StreamsFormat X v2Paramètres v2 requisType dans v2
actorincludes.usersexpansions=author_idTableau d’objets
Dérivé de actor.idincludes.users.idexpansions=author_idChaîne
actor.displayNameincludes.users.nameexpansions=author_idChaîne
actor.preferredUsernameincludes.users.usernameexpansions=author_idChaîne
actor.postedTimeincludes.users.created_atexpansions=author_id&user.fields=created_atDate (ISO 8601)
actor.summaryincludes.users.descriptionexpansions=author_id&user.fields=descriptionChaîne
Non disponibleincludes.users.pinned_tweet_idexpansions=author_id&user.fields=pinned_tweet_idChaîne
Non disponibleincludes.users.protectedexpansions=author_id&user.fields=protectedBooléen
actor.linkNon disponibleNon disponible — à construire à partir de includes.users.username
actor.twitterTimeZoneNon disponibleNon disponible — à déduire à partir de Tweet created_at
actor.utcOffsetNon disponibleNon disponible — à déduire à partir de Tweet created_at
actor.favoritesCountNon disponibleNon disponible
actor.followersCountincludes.users.public_metrics.followers_countexpansions=author_id&user.fields=public_metricsEntier
actor.friendsCountincludes.users.public_metrics.following_countexpansions=author_id&user.fields=public_metricsEntier
actor.listedCountincludes.users.public_metrics.listed_countexpansions=author_id&user.fields=public_metricsEntier
actor.statusesCountincludes.users.public_metrics.tweet_countexpansions=author_id&user.fields=public_metricsEntier
actor.languages[]Non disponibleNon disponible — à déduire à partir de Tweet lang
actor.location.displayNameincludes.users.locationexpansions=author_id&user.fields=locationChaîne
actor.imageincludes.users.profile_image_urlexpansions=author_id&user.fields=profile_image_urlChaîne
actor.linksincludes.users.urlexpansions=author_id&user.fields=urlChaîne
actor.verifiedincludes.users.verifiedexpansions=author_id&user.fields=verifiedBooléen
Non disponibleincludes.users.withheldexpansions=author_id&user.fields=withheldObjet
Non disponibleincludes.users.entitiesexpansions=author_id&user.fields=entitiesObjet
Non disponibleincludes.users.entities.urlexpansions=author_id&user.fields=entitiesObjet
actor.linksincludes.users.entities.url.urlsexpansions=author_id&user.fields=entitiesTableau d’objets
Non disponibleincludes.users.entities.url.urls.startexpansions=author_id&user.fields=entitiesEntier
Non disponibleincludes.users.entities.url.urls.endexpansions=author_id&user.fields=entitiesEntier
Non disponibleincludes.users.entities.url.urls.urlexpansions=author_id&user.fields=entitiesChaîne
actor.links.hrefincludes.users.entities.url.urls.expanded_urlexpansions=author_id&user.fields=entitiesChaîne
Non disponibleincludes.users.entities.url.urls.display_urlexpansions=author_id&user.fields=entitiesChaîne
Non disponibleincludes.users.entities.descriptionexpansions=author_id&user.fields=entitiesObjet
Non disponibleincludes.users.entities.description.hashtagsexpansions=author_id&user.fields=entitiesTableau d’objets
Non disponibleincludes.users.entities.description.hashtags.startexpansions=author_id&user.fields=entitiesEntier
Non disponibleincludes.users.entities.description.hashtags.endexpansions=author_id&user.fields=entitiesEntier
Non disponibleincludes.users.entities.description.hashtags.tagexpansions=author_id&user.fields=entitiesChaîne
Non disponibleincludes.users.entities.description.mentionsexpansions=author_id&user.fields=entitiesTableau d’objets
Non disponibleincludes.users.entities.description.mentions.startexpansions=author_id&user.fields=entitiesEntier
Non disponibleincludes.users.entities.description.mentions.endexpansions=author_id&user.fields=entitiesEntier
Non disponibleincludes.users.entities.description.mentions.usernameexpansions=author_id&user.fields=entitiesChaîne
Non disponibleincludes.users.entities.description.cashtagsexpansions=author_id&user.fields=entitiesTableau d’objets
Non disponibleincludes.users.entities.description.cashtags.startexpansions=author_id&user.fields=entitiesEntier
Non disponibleincludes.users.entities.description.cashtags.endexpansions=author_id&user.fields=entitiesEntier
Non disponibleincludes.users.entities.description.cashtags.tagexpansions=author_id&user.fields=entitiesChaîne

Objet de sondage

Format Activity StreamsFormat Twitter v2Paramètres v2 requisType dans v2
Non disponibleincludes.pollsexpansions=attachments.poll_idsTableau d’objets
Non disponibleincludes.polls.idexpansions=attachments.poll_idsChaîne
Non disponibleincludes.polls.optionsexpansions=attachments.poll_idsTableau d’objets
Non disponibleincludes.polls.options.positionexpansions=attachments.poll_idsEntier
Non disponibleincludes.polls.options.labelexpansions=attachments.poll_idsChaîne
Non disponibleincludes.polls.options.votesexpansions=attachments.poll_idsEntier
Non disponibleincludes.polls.voting_statusexpansions=attachments.poll_ids&poll.fields=voting_statusChaîne
Non disponibleincludes.polls.duration_minutesexpansions=attachments.poll_ids&poll.fields=duration_minutesEntier
Non disponibleincludes.polls.end_datetimeexpansions=attachments.poll_ids&poll.fields=end_datetimeDate (ISO 8601)

Objet Place

Format Activity StreamsFormat Twitter v2Paramètres v2 requisType dans v2
locationincludes.placesexpansions=geo.place_idtableau d’objets
location.displayNameincludes.places.full_nameexpansions=geo.place_idchaîne
Extrait de location.linkincludes.places.idexpansions=geo.place_idchaîne
location.nameincludes.places.nameexpansions=geo.place_id&place.fields=namechaîne
location.country_codeincludes.places.countryexpansions=geo.place_id&place.fields=countrychaîne
location.twitter_place_typeincludes.places.place_typeexpansions=geo.place_id&place.fields=place_typechaîne
location.twitter_country_codeincludes.places.country_codeexpansions=geo.place_id&place.fields=country_codechaîne
location.geoincludes.places.geoexpansions=geo.place_id&place.fields=geoobjet
location.geo.typeincludes.places.geo.typeexpansions=geo.place_id&place.fields=geochaîne
location.geo.coordinatesincludes.places.geo.bboxexpansions=geo.place_id&place.fields=geotableau
Non disponibleincludes.places.geo.propertiesexpansions=geo.place_id&place.fields=geoobjet

Objet multimédia

Format Activity StreamsFormat X v2Paramètres v2 requisType dans v2
twitter_entities.media OR twitter_extended_entities.mediaincludes.mediaexpansions=attachments.media_keysTableau d’objets
twitter_entities.media.id_str OR twitter_extended_entities.media.id_strincludes.media.media_keyexpansions=attachments.media_keysChaîne
twitter_entities.media.id OR twitter_extended_entities.media.idNon disponibleNon disponible
twitter_entities.media.indices OR twitter_extended_entities.media.indicesNon disponibleNon disponible
twitter_entities.media.additional_media_info OR twitter_extended_entities.media.additional_media_infoNon disponibleNon disponible
twitter_entities.media.additional_media_info.monetizable OR twitter_extended_entities.media.additional_media_info.monetizableNon disponibleNon disponible
twitter_entities.media.media_url OR twitter_extended_entities.media.media_urlNon disponibleNon 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_urlChaîne
twitter_entities.media.url OR twitter_extended_entities.media.urlNon disponibleNon disponible
twitter_entities.media.display_url OR twitter_extended_entities.media.display_urlNon disponibleNon disponible
twitter_entities.media.expanded_url OR twitter_extended_entities.media.expanded_urlNon disponibleNon disponible
twitter_entities.media.type OR twitter_extended_entities.media.typeincludes.media.typeexpansions=attachments.media_keysChaîne
twitter_entities.media.sizes OR twitter_extended_entities.media.sizesNon disponibleNon disponible
twitter_entities.media.sizes.thumb OR twitter_extended_entities.media.sizes.thumbNon disponibleNon disponible
twitter_entities.media.sizes.thumb.h OR twitter_extended_entities.media.sizes.thumb.hNon disponibleNon disponible
twitter_entities.media.sizes.thumb.w OR twitter_extended_entities.media.sizes.thumb.wNon disponibleNon disponible
twitter_entities.media.sizes.thumb.resize OR twitter_extended_entities.media.sizes.thumb.resizeNon disponibleNon disponible
twitter_entities.media.sizes.small OR twitter_extended_entities.media.sizes.smallNon disponibleNon disponible
twitter_entities.media.sizes.small.h OR twitter_extended_entities.media.sizes.small.hNon disponibleNon disponible
twitter_entities.media.sizes.small.w OR twitter_extended_entities.media.sizes.small.wNon disponibleNon disponible
twitter_entities.media.sizes.small.resize OR twitter_extended_entities.media.sizes.small.resizeNon disponibleNon disponible
twitter_entities.media.sizes.medium OR twitter_extended_entities.media.sizes.mediumNon disponibleNon disponible
twitter_entities.media.sizes.medium.h OR twitter_extended_entities.media.sizes.medium.hNon disponibleNon disponible
twitter_entities.media.sizes.medium.w OR twitter_extended_entities.media.sizes.medium.wNon disponibleNon disponible
twitter_entities.media.sizes.medium.resize OR twitter_extended_entities.media.sizes.medium.resizeNon disponibleNon disponible
twitter_entities.media.sizes.large OR twitter_extended_entities.media.sizes.largeNon disponibleNon disponible
twitter_entities.media.sizes.large.h OR twitter_extended_entities.media.sizes.large.hincludes.media.heightexpansions=attachments.media_keys&media.fields=heightEntier
twitter_entities.media.sizes.large.w OR twitter_extended_entities.media.sizes.large.wincludes.media.widthexpansions=attachments.media_keys&media.fields=widthEntier
twitter_entities.media.sizes.large.resize OR twitter_extended_entities.media.sizes.large.resizeNon disponibleNon disponible
twitter_extended_entities.media.video_infoNon disponibleNon disponible
twitter_extended_entities.media.video_info.aspect_ratioNon disponibleNon disponible
twitter_extended_entities.media.video_info.duration_millisincludes.media.duration_msexpansions=attachments.media_keys&media.fields=duration_msEntier
twitter_extended_entities.media.video_info.variantsNon disponibleNon disponible
twitter_extended_entities.media.video_info.variants.bitrateNon disponibleNon disponible
twitter_extended_entities.media.video_info.variants.content_typeNon disponibleNon disponible
twitter_extended_entities.media.video_info.variants.urlNon disponibleNon disponible
Not availableincludes.media.alt_textexpansions=attachments.media_keys&media.fields=alt_textChaîne
Not availableincludes.media.public_metricsexpansions=attachments.media_keys&media.fields=public_metricsObjet
Not availableincludes.media.public_metrics.view_countexpansions=attachments.media_keys&media.fields=public_metricsEntier
Not availableincludes.media.non_public_metricsexpansions=attachments.media_keys&media.fields=non_public_metricsObjet
Not availableincludes.media.non_public_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=non_public_metricsEntier
Not availableincludes.media.non_public_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=non_public_metricsEntier
Not availableincludes.media.non_public_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=non_public_metricsEntier
Not availableincludes.media.non_public_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=non_public_metricsEntier
Not availableincludes.media.non_public_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=non_public_metricsEntier
Not availableincludes.media.organic_metricsexpansions=attachments.media_keys&media.fields=organic_metricsObjet
Not availableincludes.media.organic_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=organic_metricsEntier
Not availableincludes.media.organic_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=organic_metricsEntier
Not availableincludes.media.organic_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=organic_metricsEntier
Not availableincludes.media.organic_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=organic_metricsEntier
Not availableincludes.media.organic_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=organic_metricsEntier
Not availableincludes.media.organic_metrics.view_countexpansions=attachments.media_keys&media.fields=organic_metricsEntier
Not availableincludes.media.promoted_metricsexpansions=attachments.media_keys&media.fields=promoted_metricsObjet
Not availableincludes.media.promoted_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=promoted_metricsEntier
Not availableincludes.media.promoted_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=promoted_metricsEntier
Not availableincludes.media.promoted_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=promoted_metricsEntier
Not availableincludes.media.promoted_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=promoted_metricsEntier
Not availableincludes.media.promoted_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=promoted_metricsEntier
Not availableincludes.media.promoted_metrics.view_countexpansions=attachments.media_keys&media.fields=promoted_metricsEntier

Objet des règles de correspondance

Format Activity StreamsFormat Twitter v2Paramètres v2 requisType dans v2
gnip.matching_rulesmatching_rulesPar défaut dans le flux filtréTableau d’objets
gnip.matching_rules.tagmatching_rules.tagPar défaut dans le flux filtréChaîne
gnip.matching_rules.tag.idIndisponibleIndisponible
gnip.matching_rules.tag.id_strmatching_rules.idPar défaut dans le flux filtréChaîne

Outil visuel de migration du format de données

L’outil visuel de migration du format de données est une application web qui affiche les fields correspondant du format de données de X API v1.1 au format X API v2 pour un Tweet ou un objet utilisateur donné. Vous pouvez fournir un Tweet ID ou un user ID à l’application pour afficher cette correspondance. Veuillez noter que vous devrez vous connecter avec votre compte Twitter pour utiliser l’App.
I