Pular para o conteúdo principal

Introdução

Com o lançamento da versão v2 da X API, adotamos um novo formato de resposta de dados e um novo método para solicitar diferentes objetos e fields, que estamos chamando simplesmente de formato X API v2. Na seção de diferenças gerais, você pode conhecer algumas mudanças relevantes para usuários Standard e Enterprise. Além disso, reunimos um guia específico para o formato nativo Standard v1.1, o Native Enriched format para Enterprise e o Activity Streams format para Enterprise, que ajuda a mapear fields e explica quais fields e expansions você deve usar para solicitar os novos fields da v2. Você também pode se interessar por nossa ferramenta visual de migração de formato de dados, que ajuda a visualizar rapidamente as diferenças entre o formato de dados da X API v1.1 e o formato da X API v2.

Diferenças gerais

Solicitando objetos e fields

Uma das maiores mudanças entre os endpoints anteriores ao v2 e os do v2 é que a versão mais recente retorna apenas alguns fields por padrão, enquanto os endpoints standard, premium e Enterprise entregam a maioria dos fields por padrão. A nova versão usa os parâmetros fields e expansions para solicitar especificamente data adicional além do padrão, o que permite pedir apenas o data de que você precisa, sem ter que ingerir fields que não são relevantes para você. Quaisquer fields que você solicitar e que se relacionem ao objeto de dados primário serão retornados nesse objeto, juntamente com os valores padrão. No entanto, se você solicitar objetos expandidos usando o parâmetro expansions, os objetos secundários serão retornados em um novo objeto includes. Você pode correlacionar os objetos expandidos no objeto includes de volta ao objeto primário usando o campo id, que será retornado em ambos. Por exemplo, se você estiver usando o endpoint de Post lookup do v2 e incluir o parâmetro expansions=author_id na sua solicitação, você receberá o campo author_id dentro do Objeto Post primário, bem como um objeto de usuário por Post no objeto includes; cada um deles incluirá o campo padrão id, que pode ser usado para associar o objeto de usuário de volta ao Objeto Post. Aqui está um exemplo de como isso fica:
{
  "data": [
    {
      "author_id": "2244994945",
      "id": "1397568983931392004",
      "text": "A Plataforma de Desenvolvedor do X. Ooh la la! https://t.co/iGTdPXBfOv https://t.co/Ze8z8EODdg"
    }
  ],
  "includes": {
    "users": [
      {
        "id": "2244994945",
        "name": "X Dev",
        "username": "TwitterDev"
      }
    ]
  }
}

Design de JSON atualizado

Além das mudanças em como você solicita certos fields, a X API v2 também está introduzindo novos designs de JSON para os objetos retornados pelas APIs, incluindo objetos de Post e de user.
  • No nível raiz do JSON, os endpoints padrão retornam objetos Post em um array statuses, enquanto a X API v2 retorna um array data.
  • Em vez de se referir a “statuses” Retweeted e Quoted, o JSON da X API v2 se refere a Tweets Retweeted e Quoted. Muitos fields legados e descontinuados, como contributors e user.translator_type, estão sendo removidos.
  • Em vez de usar tanto favorites (no Objeto Post) quanto favourites (no objeto de usuário), a X API v2 usa o termo like.
  • A X está adotando a convenção de que valores JSON sem valor (por exemplo, null) não são escritos no payload. Atributos de Post e user só são incluídos se tiverem valores não nulos.   

Novos fields do v2

Também introduzimos um novo conjunto de fields no Post object, incluindo o seguinte:
  • Um field conversation_id
  • Dois novos fields de annotations, incluindo context e entities
  • Vários novos fields de metrics
  • Um novo field reply_setting, que mostra quem pode responder a um determinado Post

Migrando do formato de dados do Standard v1.1 para o v2

Se você ainda não fez isso, recomendamos ler primeiro a introdução sobre migração de formatos de dados. Você também pode se interessar pela nossa ferramenta visual de migração de formato de dados, que ajuda a visualizar rapidamente as diferenças entre o formato de dados do X API v1.1 e o formato do X API v2. O formato de dados do Standard v1.1, também conhecido como formato nativo, é o formato principal fornecido pelos endpoints do Standard v1.1. Se você estiver usando o produto Premium, consulte o guia de dados nativos enriquecidos. Clientes Enterprise podem estar usando dados nativos enriquecidos ou activity streams, dependendo de como sua configuração está definida no console do Gnip. 

Estrutura de payload Standard v1.1 vs v2

A tabela a seguir apresenta os objetos e o formato em alto nível que você pode esperar receber da v2 em comparação com o formato v1.1.
estrutura v1.1estrutura v2
Padrão{
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”
}]
}
Com parâmetros definidos de fields e 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”: []
}
Mapeamento de fields A seção a seguir descreve quais fields do v1.1 correspondem aos fields da v2, bem como quais parâmetros da v2 são necessários para receber o novo field.  

Objeto Tweet

Formato do Twitter 1.1Formato do Twitter v2Parâmetros obrigatórios do v2
created_atdata.created_attweet.fields=created_at
idN/A id é uma string
id_strdata.idpadrão
textdata.textpadrão
full_textN/A text inclui o texto completo
truncatedN/A text inclui o texto completo
display_text_rangeN/A text inclui o texto completo
edit_historydata.edit_history_tweet_idspadrão
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 é uma string
in_reply_to_status_id_strdata.referenced_tweets.id (se type=replied_to)expansions=referenced_tweets.id
in_reply_to_user_idN/A in_reply_to_user_id é uma string
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 (se type=retweeted)expansions=referenced_tweets.id
is_quoted_statusNão disponível
quoted_status_idN/A referenced_tweets.id é uma string
quoted_status_id_strdata.referenced_tweets.id (se type=quoted)expansions=referenced_tweets.id
quoted_status_permalinkNão disponível
quoted_statusdata.referenced_tweets (se type=quoted)expansions=referenced_tweets.id
retweet_countdata.public_metrics.retweet_counttweet.fields=public_metrics
favorite_countdata.public_metrics.like_counttweet.fields=public_metrics
favoritedNão disponível
retweetedNão disponível
possibly_sensitivedata.possibly_sensitivetweet.fields=possibly_sensitive
langdata.langtweet.fields=lang
scopesNão disponível
withhelddata.withheldtweet.fields=withheld
Exemplo
Objeto Tweet na v1.1

Exemplo de URI com parâmetros:

https://api.x.com/1.1/statuses/lookup.json?id=1359554366051504129&tweet_mode=extended
Objeto Tweet e requisição na v2

Exemplo de URI com 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”: “Vá em frente, siga outra conta de filhotes. Não vamos julgar. \n\nApresentando os endpoints de gerenciamento de follows para a nova… 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”: “Vá em frente, siga outra conta de filhotes. Não vamos julgar. \n\nApresentando os endpoints de gerenciamento de follows para a nova #TwitterAPI. Agora você pode usar a v2 API para seguir e deixar de seguir contas. Saiba mais 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”: “Apresentando os novos endpoints de gerenciamento de follows para a X API v2”,
“description”: “Seguir ou não seguir? Agora você tem a liberdade de responder essa pergunta como quiser usando a X API v2. Hoje, estamos empolgados em anunciar o lançamento dos novos endpoints de gerenciamento de follows na nova Twitter API. Como antecipado quando lançamos os endpoints de consulta de follows há pouco mais de um mês, a capacidade de gerenciar relacionamentos de follow finalmente chegou. Estes são alguns dos nossos endpoints mais populares em nossas APIs v1.1, então estamos empolgados em desbloquear uma ampla gama de casos de uso na 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 usuário

Formato do Twitter 1.1Formato do Twitter v2Parâmetros v2 obrigatórios
user_iddata.author_idtweet.fields=author_id
user.idN/A use 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
Exemplo
User object em 1.1User object e requisição com 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 e expanded entities

Formato do Twitter 1.1Formato do Twitter v2Parâmetros v2 obrigatóriosTipo no v2
entitiesdata.entitiestweet.fields=entitiesobjeto
entities.hashtagsdata.entities.hashtagstweet.fields=entitiesarray de objetos
entities.hashtags.indices[0]data.entities.hashtags.starttweet.fields=entitiesnúmero
entities.hashtags.indices[1]data.entities.hashtags.endtweet.fields=entitiesnúmero
entities.hashtags.textdata.entities.hashtags.tagtweet.fields=entitiesstring
entities.urlsdata.entities.urlstweet.fields=entitiesarray de objetos
entities.urls.indices[0]data.entities.urls.starttweet.fields=entitiesnúmero
entities.urls.indices[1]data.entities.urls.endtweet.fields=entitiesnúmero
entities.urls.urldata.entities.urls.urltweet.fields=entitiesstring
entities.user_mentionsdata.entities.mentionstweet.fields=entitiesarray de objetos
entities.user_mentions.indicies[0]data.entities.mentions.starttweet.fields=entitiesnúmero
entities.user_mentions.indicies[1]data.entities.mentions.endtweet.fields=entitiesnúmero
entities.user_mentions.screen_namedata.entities.mentions.usernametweet.fields=entitiesstring
entities.symbolsdata.entities.cashtagstweet.fields=entitiesarray de objetos
entities.symbols.indices[0]data.entities.cashtags.starttweet.fields=entitiesnúmero
entities.symbols.indices[1]data.entities.cashtags.endtweet.fields=entitiesnúmero
entities.symbols.textdata.entities.cashtags.tagtweet.fields=entitiesstring
entities.mediaincludes.mediaexpansions=attachments.media_keysarray de objetos
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=attachmentsobjeto
extended_entitiesdata.attachments.media_keystweet.fields=attachmentsarray de objetos
extended_entities.mediaincludes.mediaexpansions=attachments.media_keysarray de objetos
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.wNão disponível
extended_entities.media.sizes.thumb.hNão disponível
extended_entities.media.sizes.thumb.resizeNão disponível
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.resizeNão disponível
extended_entities.media.sizes.small.wNão disponível
extended_entities.media.sizes.small.hNão disponível
extended_entities.media.sizes.small.resizeNão disponível
extended_entities.media.sizes.medium.wNão disponível
extended_entities.media.sizes.medium.hNão disponível
extended_entities.media.sizes.medium.resizeNão disponível
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_msnúmero
Exemplo
Entidades e entidades estendidas no v1.1 (com vídeo)Entidades, anexos e includes no 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, Tutoriais e Documentação”,
“description”: “Publique e analise Tweets, otimize anúncios e crie experiências únicas para clientes com a X API, X Ads API e X para Sites. Vamos começar a desenvolver.”,
“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”: “Outro #test com um vídeo e menção ao @TwitterDev. Animado com a nova documentação de migração 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”: “A voz da equipe #TwitterDev e sua fonte oficial para atualizações, notícias e eventos relacionados à #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 do Twitter 1.1Formato do Twitter v2Parâmetros obrigatórios do 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
Exemplo
Objeto Place no v1.1Objeto Place no 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óximas etapas

Migrando do formato de dados Native Enriched para v2

O formato de dados Native Enriched é usado pelos nossos produtos Enterprise. O formato de dados Native Enriched foi atualizado para fornecer metadata de Tweets editados. Para saber mais sobre a metadata de Edit Tweet, consulte a página Fundamentos de Edit Tweets. Se você estiver usando os endpoints Standard v1.1, consulte o guia de migração de Standard v1.1 para v2. Se você estiver usando os produtos Enterprise com Activity Streams, também temos um guia Activity Streams para v2 para você. X API v2 introduz novos designs JSON para os objetos Tweet e user.
  • No nível raiz do JSON, o formato Native Enriched retorna objetos Tweet em um array results, enquanto a X API v2 retorna um array data.
  • Em vez de usar tanto favorites (no objeto Tweet) quanto favourites (no objeto user), a X API v2 usa o termo like.
  • A X está adotando a convenção de que valores JSON sem valor (por exemplo, null) não são escritos no payload. Atributos de Tweet e user só são incluídos se tiverem valores não nulos.
  • Todos os campos id na v2 serão no formato string
Além das mudanças feitas no novo formato JSON, também introduzimos um novo conjunto de fields no objeto Tweet, incluindo o seguinte:
  • conversation_id
  • reply_settings
  • alt_text em mídia
  • Dois novos fields de annotations, incluindo context e entities
  • Vários novos fields de metrics
  • Vários novos fields de polls
Muitos fields legados e descontinuados estão sendo removidos:
  • contributors
  • Certos fields de entities.media e extended_entities.media
  • filter_level
  • timestamp_ms
  • truncated

Estrutura de payload: Native Enriched vs v2

A tabela a seguir apresenta os objetos e o formato em alto nível que você pode esperar receber na v2 em comparação ao formato Native Enriched.
Estrutura Native EnrichedEstrutura v2
Padrão{
tweet object fields,

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

“edit_history_tweet_ids”
}]
}
Com parâmetros de fields e expansions definidos{
“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”: []
}
Mapeamento de fields A seção a seguir descreve quais fields de Native Enriched correspondem aos fields da v2, bem como quais parâmetros da v2 são necessários para receber o novo field.  

Objeto Tweet

Formato Native EnrichedFormato Twitter v2Parâmetros v2 obrigatóriosTipo no v2
created_atdata.created_attweet.fields=created_atString
idN/A - Veja id
id_strdata.idPadrãoString
textdata.textPadrãoString
edit_historydata.edit_history_tweet_idsPadrãoArray
edit_controlsdata.edit_controlstweet.fields=edit_controlsObject
editabledata.edit_controls.is_edit_eligibletweet.fields=edit_controlsBoolean
display_text_rangeN/A - text inclui o texto completo
sourcedata.sourcetweet.fields=sourceString
truncatedN/A - text inclui o texto completo
Não disponíveldata.conversation_idtweet.fields=conversation_idString
Não disponíveldata.reply_settingstweet.fields=reply_settingsString
in_reply_to_status_idN/A - Veja 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 - Veja 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 - text é o texto completo
Não disponíveldata.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
Não disponíveldata.non_public_metricstweet.fields=non_public_metricsObject
Não disponíveldata.non_public_metrics.impression_counttweet.fields=non_public_metricsInt
Não disponíveldata.non_public_metrics.url_link_counttweet.fields=non_public_metricsInt
Não disponíveldata.non_public_metrics.user_profile_counttweet.fields=non_public_metricsInt
Não disponíveldata.organic_metricstweet.fields=organic_metricsObject
Não disponíveldata.organic_metrics.like_counttweet.fields=organic_metricsInt
Não disponíveldata.organic_metrics.retweet_counttweet.fields=organic_metricsInt
Não disponíveldata.organic_metrics.reply_counttweet.fields=organic_metricsInt
Não disponíveldata.organic_metrics.impression_counttweet.fields=organic_metricsInt
Não disponíveldata.organic_metrics.url_link_counttweet.fields=organic_metricsInt
Não disponíveldata.organic_metrics.user_profile_counttweet.fields=organic_metricsInt
Não disponíveldata.promoted_metricstweet.fields=promoted_metricsObject
Não disponíveldata.promoted_metrics.like_counttweet.fields=promoted_metricsInt
Não disponíveldata.promoted_metrics.retweet_counttweet.fields=promoted_metricsInt
Não disponíveldata.promoted_metrics.reply_counttweet.fields=promoted_metricsInt
Não disponíveldata.promoted_metrics.impression_counttweet.fields=promoted_metricsInt
Não disponíveldata.promoted_metrics.url_link_counttweet.fields=promoted_metricsInt
Não disponíveldata.promoted_metrics.user_profile_counttweet.fields=promoted_metricsInt
contributorsNão disponívelNão disponível
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
Sem 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_idNão disponívelNão disponível - veja 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
Sem 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_idNão disponívelNão disponível - veja 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
favoritedNão disponívelNão disponível
retweetedNão disponívelNão disponível
retweeted_status
possibly_sensitivedata.possibly_sensitivetweet.fields=possibly_sensitiveBoolean
langdata.langtweet.fields=langString
filter_levelNão disponívelNão disponível
scopesNão disponívelNão disponível
timestamp_msNão disponívelNão disponível
withhelddata.withheldtweet.fields=withheldArray of objects
matching_rulesmatching_rulesArray of objects
matching_rules.idNão disponívelNão disponível
matching_rules.id_strmatching_rules.idPadrão com stream filtradoString
matching_rules.tagmatching_rules.tagPadrão com stream filtradoString

Objeto de usuário

Formato Native EnrichedFormato Twitter v2Parâmetros v2 obrigatóriosTipo no v2
userincludes.usersexpansions=author_idArray of objects
user.idNão disponívelN/A - Veja 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
Não disponívelincludes.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_countAinda não disponível
user.verifiedincludes.users.verifiedexpansions=author_id&user.fields=verifiedBoolean
Não disponívelincludes.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_typeNão disponívelNão disponível
user.utc_offsetNão disponívelNão disponível
user.time_zoneNão disponívelNão disponível
user.geo_enabledNão disponívelNão disponível
user.langNão disponívelNão disponível - inferir do lang do Tweet
user.contributors_enabledNão disponívelNão disponível
user.is_translatorNão disponívelNão disponível
user.profile_background_colorNão disponívelNão disponível
user.profile_background_image_urlNão disponívelNão disponível
user.profile_background_image_url_httpsNão disponívelNão disponível
user.profile_background_titleNão disponívelNão disponível
user.profile_sidebar_border_colorNão disponívelNão disponível
user.profile_sidebar_fill_colorNão disponívelNão disponível
user.profile_text_colorNão disponívelNão disponível
user.profile_user_background_imageNão disponívelNão disponível
user.profile_image_urlVeja includes.user.profile_image_url
user.default_profileNão disponívelNão disponível
user.default_profile_imageNão disponívelNão disponível
user.followingNão disponívelNão disponível
user.follow_request_sentNão disponívelNão disponível
user.notificationsNão disponívelNão disponível
user.withheld_in_countriesincludes.users.withheldexpansions=author_id&user.fields=withheldObject
user.protectedincludes.users.protectedexpansions=author_id&user.fields=protectedBoolean
Não disponívelincludes.users.entitiesexpansions=author_id&user.fields=entitiesObject
Não disponívelincludes.users.entities.urlexpansions=author_id&user.fields=entitiesObject
Não disponívelincludes.users.entities.url.urlsexpansions=author_id&user.fields=entitiesArray of objects
Não disponívelincludes.users.entities.url.urls.startexpansions=author_id&user.fields=entitiesInt
Não disponívelincludes.users.entities.url.urls.endexpansions=author_id&user.fields=entitiesInt
Não disponívelincludes.users.entities.url.urls.urlexpansions=author_id&user.fields=entitiesString
user.urlincludes.users.entities.url.urls.expanded_urlexpansions=author_id&user.fields=entitiesString
Não disponívelincludes.users.entities.url.urls.display_urlexpansions=author_id&user.fields=entitiesString
Não disponívelincludes.users.entities.descriptionsexpansions=author_id&user.fields=entitiesObject
Não disponívelincludes.users.entities.descriptions.hashtagsexpansions=author_id&user.fields=entitiesArray of objects
Não disponívelincludes.users.entities.descriptions.hashtags.startexpansions=author_id&user.fields=entitiesInt
Não disponívelincludes.users.entities.descriptions.hashtags.endexpansions=author_id&user.fields=entitiesInt
incluído em user.descriptionincludes.users.entities.descriptions.hashtags.tagexpansions=author_id&user.fields=entitiesString
Não disponívelincludes.users.entities.descriptions.mentionsexpansions=author_id&user.fields=entitiesArray of objects
Não disponívelincludes.users.entities.descriptions.mentions.startexpansions=author_id&user.fields=entitiesInt
Não disponívelincludes.users.entities.descriptions.mentions.endexpansions=author_id&user.fields=entitiesInt
Incluído em user.descriptionincludes.users.entities.descriptions.mentions.usernameexpansions=author_id&user.fields=entitiesString
Não disponívelincludes.users.entities.descriptions.cashtagsexpansions=author_id&user.fields=entitiesArray of objects
Não disponívelincludes.users.entities.descriptions.cashtags.startexpansions=author_id&user.fields=entitiesInt
Não disponívelincludes.users.entities.descriptions.cashtags.endexpansions=author_id&user.fields=entitiesInt
Incluído em user.descriptionincludes.users.entities.descriptions.cashtags.tagexpansions=author_id&user.fields=entitiesString

Objetos de entities e expanded entities

Formato Native EnrichedFormato Twitter v2Parâmetros v2 obrigatóriosTipo no 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
Não disponíveldata.entities.urls.imagestweet.fields=entitiesArray of objects
Não disponíveldata.entities.urls.images.urltweet.fields=entitiesString
Não disponíveldata.entities.urls.images.widthtweet.fields=entitiesInt
Não disponíveldata.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.idNão disponível - id é uma String
entities.media.type OR extended_entities.media.typeincludes.media.media.typeexpansions=attachments.media_keysString
entities.media.indices OR extended_entities.media.indicesNão disponívelNão disponível
Não disponívelincludes.media.alt_textexpansions=attachments.media_keys&media.fields=alt_textString
entities.media.additional_media_info OR extended_entities.media.additional_media_infoNão disponívelNão disponível
entities.media.additional_media_info.monetizable OR extended_entities.media.additional_media_info.monetizableNão disponívelNão disponível
entities.media.media_url OR extended_entities.media.media_urlN/A - Veja 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
Não disponíveldata.attachments.poll_idstweet.fields=attachmentsArray of objects
extended_entities.media.sizes.thumb.wNão disponível
extended_entities.media.sizes.thumb.hNão disponível
extended_entities.media.sizes.thumb.resizeNão disponível
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.resizeNão disponívelNão disponível
extended_entities.media.sizes.small.wNão disponívelNão disponível
extended_entities.media.sizes.small.hNão disponívelNão disponível
extended_entities.media.sizes.small.resizeNão disponívelNão disponível
extended_entities.media.sizes.medium.wNão disponívelNão disponível
extended_entities.media.sizes.medium.hNão disponívelNão disponível
extended_entities.media.sizes.medium.resizeNão disponívelNão disponível
extended_entities.media.media_url_httpsincludes.media.preview_image_urlexpansions=attachments.media_keys&media.fields=preview_image_urlString
extended_entities.media.video_info.aspect_ratioNão disponívelNão disponível
extended_entities.media.variantsNão disponívelNão disponível
extended_entities.media.variants.bitrateNão disponívelNão disponível
extended_entities.media.variants.content_typeNão disponívelNão disponível
extended_entities.media.variants.urlNão disponívelNão disponível
extended_entities.media.video_info.duration_millisincludes.media.duration_msexpansions=attachments.media_keys&media.fields=duration_msInt
Não disponívelincludes.media.public_metricsexpansions=attachments.media_keys&media.fields=public_metricsObject
Não disponívelincludes.media.public_metrics.view_countexpansions=attachments.media_keys&media.fields=public_metricsInt
Não disponívelincludes.media.non_public_metricsexpansions=attachments.media_keys&media.fields=non_public_metricsObject
Não disponívelincludes.media.non_public_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Não disponívelincludes.media.non_public_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Não disponívelincludes.media.non_public_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Não disponívelincludes.media.non_public_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Não disponívelincludes.media.non_public_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Não disponívelincludes.media.organic_metricsexpansions=attachments.media_keys&media.fields=organic_metricsObject
Não disponívelincludes.media.organic_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Não disponívelincludes.media.organic_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Não disponívelincludes.media.organic_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Não disponívelincludes.media.organic_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Não disponívelincludes.media.organic_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Não disponívelincludes.media.organic_metrics.view_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Não disponívelincludes.media.promoted_metricexpansions=attachments.media_keys&media.fields=promoted_metricsObject
Não disponívelincludes.media.promoted_metric.playback_0_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Não disponívelincludes.media.promoted_metric.playback_25_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Não disponívelincludes.media.promoted_metric.playback_50_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Não disponívelincludes.media.promoted_metric.playback_75_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Não disponívelincludes.media.promoted_metric.playback_100_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Não disponívelincludes.media.promoted_metrics.view_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt

Objeto Place

Formato Native EnrichedFormato Twitter v2Parâmetros obrigatórios do v2Tipo no v2
placeincludes.placesexpansions=geo.place_idArray de objetos
place.idincludes.places.idexpansions=geo.place_idString
place.urlNão disponívelNão disponível
place.id.place_typeincludes.places.place_typeexpansions=geo.place_id&place.fields=place_typeString
place.id.nameincludes.places.nameexpansions=geo.place_id&place.fields=nameString
place.id.full_nameincludes.places.full_nameexpansions=geo.place_idString
place.id.country_codeincludes.places.country_codeexpansions=geo.place_id&place.fields=country_codeString
place.id.countryincludes.places.countryexpansions=geo.place_id&place.fields=countryString
place.id.contained_withinincludes.places.contained_withinexpansions=geo.place_id&place.fields=contained_withinArray
place.id.bounding_box.typeincludes.places.geo.typeexpansions=geo.place_id&place.fields=place_typeString
place.id.bounding_box.coordinatesincludes.places.geo.bboxexpansions=geo.place_id&place.fields=geoArray
place.id.attributesincludes.places.propertiesexpansions=geo.place_id&place.fields=geoObjeto

Objeto de enquete

Formato nativo enriquecidoFormato do X v2Parâmetros v2 obrigatóriosTipo no v2
entities.pollsincludes.pollsexpansions=attachments.poll_idsArray de objetos
Não disponívelincludes.polls.idexpansions=attachments.poll_idsString
entities.poll.optionsincludes.polls.optionsexpansions=attachments.poll_idsArray de objetos
entities.polls.options.positionincludes.polls.options.positionexpansions=attachments.poll_idsInt
entities.polls.options.textincludes.polls.options.labelexpansions=attachments.poll_idsString
Não disponívelincludes.polls.options.votesexpansions=attachments.poll_idsInt
Não disponívelincludes.polls.voting_statusexpansions=attachments.poll_ids&poll.fields=voting_statusString
entities.polls.duration_minutesincludes.polls.duration_minutesexpansions=attachments.poll_ids&poll.fields=duration_minutesInt
entities.polls.end_datetimeincludes.polls.end_datetimeexpansions=attachments.poll_ids&poll.fields=end_datetimeData (ISO 8601)

Migrando do formato de dados Activity Streams para v2

O formato de dados Activity Streams está disponível nos nossos produtos Enterprise. O formato de dados Activity Streams foi atualizado para fornecer metadata de Tweets editados. Para saber mais sobre a metadata de edição de Tweets, consulte a página Fundamentos de edição de Tweets. Se você estiver usando os endpoints Standard v1.1, consulte o guia de migração do Standard v1.1 para v2. Se você estiver usando os endpoints Premium ou o formato Native Enriched para Enterprise, consulte o guia de migração do Native Enriched para v2. A X API v2 apresenta novos designs de JSON para objetos de Post e de usuário.
  • No nível raiz do JSON, o formato Activity Streams retorna objetos de Tweet em um array results, enquanto a X API v2 retorna um array data.
  • Em vez de se referir a “activities” de Retweeted e Quoted, o JSON da X API v2 se refere a Tweets Retweeted e Quoted.
  • Em vez de usar tanto favorites (no objeto de Tweet) quanto favourites (no objeto de usuário), a X API v2 usa o termo like.
  • O X está adotando a convenção de que valores JSON sem valor (por exemplo, null) não são escritos no payload. Atributos de Tweet e de usuário só são incluídos se tiverem valores não nulos.
  • Todos os campos id na v2 estarão no formato string.
Além das mudanças feitas no novo formato JSON, também introduzimos um novo conjunto de fields ao objeto de Tweet, incluindo:
  • conversation_id
  • reply_settings
  • alt_text em mídia
  • Dois novos campos de annotations, incluindo context e entities
  • Vários novos campos de metrics
  • Vários novos campos de polls
Muitos fields legados e descontinuados estão sendo removidos ou substituídos:
  • display_text_range
  • generator
  • gnip
  • link
  • objectType
  • provider
  • twitter_entities.symbols substituído por data.entities.cashtags
  • Certos campos de twitter_extended_entities.media e twitter_entities.media
  • twitter_filter_level
  • twitterTimeZone
  • verb

Objeto Tweet

Formato Activity StreamsFormato Twitter v2Parâmetros v2 obrigatóriosTipo em v2
postedTimedata.created_attweet.fields=created_atDate (ISO 8601)
generatorNão disponívelNão disponível
generator.linkNão disponívelNão disponível
generator.displayNamedata.sourcetweet.fields=sourceString
twitter_langdata.langtweet.fields=langString
Não disponíveldata.conversation_idtweet.fields=conversation_idString
Não disponíveldata.reply_settingstweet.fields=reply_settingsString
Não disponíveldata.possibly_sensitivetweet.fields=possibly_sensitiveBoolean
Não disponíveldata.withheldtweet.fields=withheldObject
objectTypeNão disponívelNão disponível
verbNão disponívelNão disponível
providerNão disponívelNão disponível
provider.objectTypeNão disponívelNão disponível
provider.displayNameNão disponívelNão disponível
provider.linkNão disponívelNão disponível
linkNão disponívelNão disponível
display_text_rangeNão disponívelNão disponível
objectNão disponívelNão disponível
object.objectTypeNão disponívelNão disponível
object.idNão disponívelNão disponível
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.linkNão disponívelNão disponível
object.postedTimedata.created_attweet.fields=created_atDate (ISO 8601)
Derivado de actor.iddata.author_idtweet.fields=created_at
twitter_filter_levelNão disponívelNão disponível
Derivado do nome de usuário em inReplyTo.linkdata.in_reply_to_user_idtweet.fields=in_reply_to_user_idString
Não disponíveldata.referenced_tweetstweet.fields=referenced_tweetsArray of objects
Não disponíveldata.referenced_tweets.typetweet.fields=referenced_tweetsString
Derivado de inReplyTo.linkdata.referenced_tweets.idtweet.fields=referenced_tweetsString
Não disponíveldata.attachmentstweet.fields=attachmentsObject
Derivado de twitter_entities.media.id_strdata.attachments.media_keystweet.fields=attachmentsArray
Não disponíveldata.attachments.poll_idstweet.fields=attachmentsArray
twitter_entitiesdata.entitiestweet.fields=entitiesObject
Não disponíveldata.entities.annotationstweet.fields=entitiesArray of objects
Não disponíveldata.entities.annotations.starttweet.fields=entitiesInt
Não disponíveldata.entities.annotations.endtweet.fields=entitiesInt
Não disponíveldata.entities.annotations.probabilitytweet.fields=entitiesFloat
Não disponíveldata.entities.annotations.typetweet.fields=entitiesString
Não disponíveldata.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
Não disponíveldata.entities.urls.imagestweet.fields=entitiesArray of objects
Não disponíveldata.entities.urls.images.urltweet.fields=entitiesString
Não disponíveldata.entities.urls.images.widthtweet.fields=entitiesInt
Não disponíveldata.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.idNão disponívelNão disponível
Não disponíveldata.context_annotationstweet.fields=context_annotationsArray of objects
Não disponíveldata.context_annotations.domaintweet.fields=context_annotationsObject
Não disponíveldata.context_annotations.domain.idtweet.fields=context_annotationsString
Não disponíveldata.context_annotations.domain.nametweet.fields=context_annotationsString
Não disponíveldata.context_annotations.domain.descriptiontweet.fields=context_annotationsString
Não disponíveldata.context_annotations.entitytweet.fields=context_annotationsObject
Não disponíveldata.context_annotations.entity.idtweet.fields=context_annotationsString
Não disponíveldata.context_annotations.entity.nametweet.fields=context_annotationsString
Não disponíveldata.context_annotations.entity.descriptiontweet.fields=context_annotationsString
geodata.geotweet.fields=geoObject
Derivado de location.linkdata.geo.place_idtweet.fields=geoString
Não disponíveldata.public_metricstweet.fields=public_metricsObject
favoritesCountdata.public_metrics.like_counttweet.fields=public_metricsInt
retweetCountdata.public_metrics.retweet_counttweet.fields=public_metricsInt
Não disponíveldata.public_metrics.quote_counttweet.fields=public_metricsInt
Não disponíveldata.public_metrics.reply_counttweet.fields=public_metricsInt
Não disponíveldata.non_public_metricstweet.fields=non_public_metricsObject
Não disponíveldata.non_public_metrics.impression_counttweet.fields=non_public_metricsInt
Não disponíveldata.non_public_metrics.url_link_counttweet.fields=non_public_metricsInt
Não disponíveldata.non_public_metrics.user_profile_counttweet.fields=non_public_metricsInt
Não disponíveldata.organic_metricstweet.fields=organic_metricsObject
Não disponíveldata.organic_metrics.like_counttweet.fields=organic_metricsInt
Não disponíveldata.organic_metrics.retweet_counttweet.fields=organic_metricsInt
Não Disponíveldata.organic_metrics.reply_counttweet.fields=organic_metricsInt
Não Disponíveldata.organic_metrics.impression_counttweet.fields=organic_metricsInt
Não Disponíveldata.organic_metrics.url_link_counttweet.fields=organic_metricsInt
Não Disponíveldata.organic_metrics.user_profile_counttweet.fields=organic_metricsInt
Não Disponíveldata.promoted_metricstweet.fields=promoted_metricsObject
Não Disponíveldata.promoted_metrics.like_counttweet.fields=promoted_metricsInt
Não Disponíveldata.promoted_metrics.retweet_counttweet.fields=promoted_metricsInt
Não Disponíveldata.promoted_metrics.reply_counttweet.fields=promoted_metricsInt
Não Disponíveldata.promoted_metrics.impression_counttweet.fields=promoted_metricsInt
Não Disponíveldata.promoted_metrics.url_link_counttweet.fields=promoted_metricsInt
Não Disponíveldata.promoted_metrics.user_profile_counttweet.fields=promoted_metricsInt
gnip.profileLocationsNão DisponívelNão Disponível
gnip.profileLocations.addressNão DisponívelNão Disponível
gnip.profileLocations.address.countryNão DisponívelNão Disponível
gnip.profileLocations.address.countryCodeNão DisponívelNão Disponível
gnip.profileLocations.displayNameNão DisponívelNão Disponível
gnip.profileLocations.geoNão DisponívelNão Disponível
gnip.profileLocations.geo.coordinatesNão DisponívelNão Disponível
gnip.profileLocations.geo.typeNão DisponívelNão Disponível
gnip.profileLocations.objectTypeNão DisponívelNão Disponível

Objeto de usuário

Formato Activity StreamsFormato X v2Parâmetros v2 obrigatóriosTipo no 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_atData (ISO 8601)
actor.summaryincludes.users.descriptionexpansions=author_id&user.fields=descriptionString
Não Disponívelincludes.users.pinned_tweet_idexpansions=author_id&user.fields=pinned_tweet_idString
Não Disponívelincludes.users.protectedexpansions=author_id&user.fields=protectedBoolean
actor.linkNão DisponívelNão Disponível - construir a partir de includes.users.username
actor.twitterTimeZoneNão DisponívelNão Disponível - inferir a partir do created_at do Tweet
actor.utcOffsetNão DisponívelNão Disponível - inferir a partir do created_at do Tweet
actor.favoritesCountNão DisponívelNão Disponível
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[]Não DisponívelNão Disponível - inferir a partir do lang do Tweet
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
Não Disponívelincludes.users.withheldexpansions=author_id&user.fields=withheldObject
Não Disponívelincludes.users.entitiesexpansions=author_id&user.fields=entitiesObject
Não Disponívelincludes.users.entities.urlexpansions=author_id&user.fields=entitiesObject
actor.linksincludes.users.entities.url.urlsexpansions=author_id&user.fields=entitiesArray de objetos
Não Disponívelincludes.users.entities.url.urls.startexpansions=author_id&user.fields=entitiesInt
Não Disponívelincludes.users.entities.url.urls.endexpansions=author_id&user.fields=entitiesInt
Não Disponívelincludes.users.entities.url.urls.urlexpansions=author_id&user.fields=entitiesString
actor.links.hrefincludes.users.entities.url.urls.expanded_urlexpansions=author_id&user.fields=entitiesString
Não Disponívelincludes.users.entities.url.urls.display_urlexpansions=author_id&user.fields=entitiesString
Não Disponívelincludes.users.entities.descriptionexpansions=author_id&user.fields=entitiesObject
Não Disponívelincludes.users.entities.description.hashtagsexpansions=author_id&user.fields=entitiesArray de objetos
Não Disponívelincludes.users.entities.description.hashtags.startexpansions=author_id&user.fields=entitiesInt
Não Disponívelincludes.users.entities.description.hashtags.endexpansions=author_id&user.fields=entitiesInt
Não Disponívelincludes.users.entities.description.hashtags.tagexpansions=author_id&user.fields=entitiesString
Não Disponívelincludes.users.entities.description.mentionsexpansions=author_id&user.fields=entitiesArray de objetos
Não Disponívelincludes.users.entities.description.mentions.startexpansions=author_id&user.fields=entitiesInt
Não Disponívelincludes.users.entities.description.mentions.endexpansions=author_id&user.fields=entitiesInt
Não Disponívelincludes.users.entities.description.mentions.usernameexpansions=author_id&user.fields=entitiesString
Não Disponívelincludes.users.entities.description.cashtagsexpansions=author_id&user.fields=entitiesArray de objetos
Não Disponívelincludes.users.entities.description.cashtags.startexpansions=author_id&user.fields=entitiesInt
Não Disponívelincludes.users.entities.description.cashtags.endexpansions=author_id&user.fields=entitiesInt
Não Disponívelincludes.users.entities.description.cashtags.tagexpansions=author_id&user.fields=entitiesString

Objeto de enquete

Formato Activity StreamsFormato do X v2Parâmetros v2 obrigatóriosTipo no v2
Não disponívelincludes.pollsexpansions=attachments.poll_idsArray de objetos
Não disponívelincludes.polls.idexpansions=attachments.poll_idsString
Não disponívelincludes.polls.optionsexpansions=attachments.poll_idsArray de objetos
Não disponívelincludes.polls.options.positionexpansions=attachments.poll_idsInt
Não disponívelincludes.polls.options.labelexpansions=attachments.poll_idsString
Não disponívelincludes.polls.options.votesexpansions=attachments.poll_idsInt
Não disponívelincludes.polls.voting_statusexpansions=attachments.poll_ids&poll.fields=voting_statusString
Não disponívelincludes.polls.duration_minutesexpansions=attachments.poll_ids&poll.fields=duration_minutesInt
Não disponívelincludes.polls.end_datetimeexpansions=attachments.poll_ids&poll.fields=end_datetimeData (ISO 8601)

Objeto Place

Formato Activity StreamsFormato do Twitter v2Parâmetros v2 obrigatóriosTipo no v2
locationincludes.placesexpansions=geo.place_idarray de objetos
location.displayNameincludes.places.full_nameexpansions=geo.place_idstring
Parsed from location.linkincludes.places.idexpansions=geo.place_idstring
location.nameincludes.places.nameexpansions=geo.place_id&place.fields=namestring
location.country_codeincludes.places.countryexpansions=geo.place_id&place.fields=countrystring
location.twitter_place_typeincludes.places.place_typeexpansions=geo.place_id&place.fields=place_typestring
location.twitter_country_codeincludes.places.country_codeexpansions=geo.place_id&place.fields=country_codestring
location.geoincludes.places.geoexpansions=geo.place_id&place.fields=geoobject
location.geo.typeincludes.places.geo.typeexpansions=geo.place_id&place.fields=geostring
location.geo.coordinatesincludes.places.geo.bboxexpansions=geo.place_id&place.fields=geoarray
Not Availableincludes.places.geo.propertiesexpansions=geo.place_id&place.fields=geoobject

Objeto de mídia

Formato Activity StreamsFormato X v2Parâmetros v2 obrigatóriosTipo no v2
twitter_entities.media OR twitter_extended_entities.mediaincludes.mediaexpansions=attachments.media_keysArray de objetos
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.idNão disponívelNão disponível
twitter_entities.media.indices OR twitter_extended_entities.media.indicesNão disponívelNão disponível
twitter_entities.media.additional_media_info OR twitter_extended_entities.media.additional_media_infoNão disponívelNão disponível
twitter_entities.media.additional_media_info.monetizable OR twitter_extended_entities.media.additional_media_info.monetizableNão disponívelNão disponível
twitter_entities.media.media_url OR twitter_extended_entities.media.media_urlNão disponívelNão disponível
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.urlNão disponívelNão disponível
twitter_entities.media.display_url OR twitter_extended_entities.media.display_urlNão disponívelNão disponível
twitter_entities.media.expanded_url OR twitter_extended_entities.media.expanded_urlNão disponívelNão disponível
twitter_entities.media.type OR twitter_extended_entities.media.typeincludes.media.typeexpansions=attachments.media_keysString
twitter_entities.media.sizes OR twitter_extended_entities.media.sizesNão disponívelNão disponível
twitter_entities.media.sizes.thumb OR twitter_extended_entities.media.sizes.thumbNão disponívelNão disponível
twitter_entities.media.sizes.thumb.h OR twitter_extended_entities.media.sizes.thumb.hNão disponívelNão disponível
twitter_entities.media.sizes.thumb.w OR twitter_extended_entities.media.sizes.thumb.wNão disponívelNão disponível
twitter_entities.media.sizes.thumb.resize OR twitter_extended_entities.media.sizes.thumb.resizeNão disponívelNão disponível
twitter_entities.media.sizes.small OR twitter_extended_entities.media.sizes.smallNão disponívelNão disponível
twitter_entities.media.sizes.small.h OR twitter_extended_entities.media.sizes.small.hNão disponívelNão disponível
twitter_entities.media.sizes.small.w OR twitter_extended_entities.media.sizes.small.wNão disponívelNão disponível
twitter_entities.media.sizes.small.resize OR twitter_extended_entities.media.sizes.small.resizeNão disponívelNão disponível
twitter_entities.media.sizes.medium OR twitter_extended_entities.media.sizes.mediumNão disponívelNão disponível
twitter_entities.media.sizes.medium.h OR twitter_extended_entities.media.sizes.medium.hNão disponívelNão disponível
twitter_entities.media.sizes.medium.w OR twitter_extended_entities.media.sizes.medium.wNão disponívelNão disponível
twitter_entities.media.sizes.medium.resize OR twitter_extended_entities.media.sizes.medium.resizeNão disponívelNão disponível
twitter_entities.media.sizes.large OR twitter_extended_entities.media.sizes.largeNão disponívelNão disponível
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.resizeNão disponívelNão disponível
twitter_extended_entities.media.video_infoNão disponívelNão disponível
twitter_extended_entities.media.video_info.aspect_ratioNão disponívelNão disponível
twitter_extended_entities.media.video_info.duration_millisincludes.media.duration_msexpansions=attachments.media_keys&media.fields=duration_msInt
twitter_extended_entities.media.video_info.variantsNão disponívelNão disponível
twitter_extended_entities.media.video_info.variants.bitrateNão disponívelNão disponível
twitter_extended_entities.media.video_info.variants.content_typeNão disponívelNão disponível
twitter_extended_entities.media.video_info.variants.urlNão disponívelNão disponível
Não disponívelincludes.media.alt_textexpansions=attachments.media_keys&media.fields=alt_textString
Não disponívelincludes.media.public_metricsexpansions=attachments.media_keys&media.fields=public_metricsObject
Não disponívelincludes.media.public_metrics.view_countexpansions=attachments.media_keys&media.fields=public_metricsInt
Não disponívelincludes.media.non_public_metricsexpansions=attachments.media_keys&media.fields=non_public_metricsObject
Não disponívelincludes.media.non_public_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Não disponívelincludes.media.non_public_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Não disponívelincludes.media.non_public_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Não disponívelincludes.media.non_public_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Não disponívelincludes.media.non_public_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Não disponívelincludes.media.organic_metricsexpansions=attachments.media_keys&media.fields=organic_metricsObject
Não disponívelincludes.media.organic_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Não disponívelincludes.media.organic_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Não disponívelincludes.media.organic_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Não disponívelincludes.media.organic_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Não disponívelincludes.media.organic_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Não disponívelincludes.media.organic_metrics.view_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Não disponívelincludes.media.promoted_metricsexpansions=attachments.media_keys&media.fields=promoted_metricsObject
Não disponívelincludes.media.promoted_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Não disponívelincludes.media.promoted_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Não disponívelincludes.media.promoted_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Não disponívelincludes.media.promoted_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Não disponívelincludes.media.promoted_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Não disponívelincludes.media.promoted_metrics.view_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt

Objeto de regras correspondentes

Formato Activity StreamsFormato Twitter v2Parâmetros obrigatórios no v2Tipo no v2
gnip.matching_rulesmatching_rulesPadrão no stream filtradoArray de objetos
gnip.matching_rules.tagmatching_rules.tagPadrão no stream filtradoString
gnip.matching_rules.tag.idNão disponívelNão disponível
gnip.matching_rules.tag.id_strmatching_rules.idPadrão no stream filtradoString

Ferramenta visual de migração de formato de dados

A ferramenta visual de migração de formato de dados é um aplicativo web que exibe os fields que fazem o mapeamento do formato de dados da X API v1.1 para o formato da X API v2 para um determinado Tweet ou objeto de usuário. É possível fornecer um Tweet ID ou um user ID ao aplicativo para visualizar esse mapeamento. Observe que será necessário fazer login com sua conta do X para usar o App.
I