Pular para o conteúdo principal

Modelo de Objetos

Tweet

Tweets são a unidade básica de tudo no X. O objeto Tweet tem uma longa lista de fields em nível “root”, como id, text e created_at. Objetos Tweet também são o objeto “pai” de vários objetos filho, incluindo user, media, poll e place. Use o parâmetro de fields tweet.fields ao solicitar esses fields de nível root no objeto Tweet. O objeto Tweet pode ser encontrado e expandido no recurso de usuário. Tweets adicionais relacionados ao Tweet solicitado também podem ser encontrados e expandidos no recurso Tweet. O objeto está disponível para expansão com ?expansions=pinned_tweet_id no recurso de usuário ou ?expansions=referenced_tweets.id no recurso Tweet para obter o objeto apenas com os fields padrão. Use a expansion com o parâmetro de fields tweet.fields ao solicitar fields adicionais para completar o objeto.
Valor do CampoTipoDescriçãoComo Pode Ser Usado
id (padrão)stringO identificador único do Tweet solicitado.Use para recuperar programaticamente um Tweet específico.
text (padrão)stringO texto UTF-8 real do Tweet. Consulte twitter-text para detalhes sobre caracteres válidos.Extração de palavras-chave e análise/classificação de sentimento.
edit_history_tweet_ids (padrão)objectIdentificadores únicos indicando todas as versões de um Tweet. Para Tweets sem edições, haverá um ID. Para Tweets com histórico de edição, haverá múltiplos IDs.Use esta informação para encontrar o histórico de edição de um Tweet.
articleobjectContém metadata para o Artigo presente neste Tweet.Use para obter o texto e entidades de um Artigo.
attachmentsobjectEspecifica o tipo de anexos (se houver) presentes neste Tweet.Compreender os objetos retornados para expansões solicitadas.
author_idstringO identificador único do Usuário que postou este Tweet.Hidratar objeto de usuário, compartilhar conjunto de dados para revisão por pares.
card_uristringO URI para o Card presente neste tweet.
community_idstringO identificador único para a Comunidade à qual este Post pertence.
context_annotationsarrayContém anotações de contexto para o Tweet.Reconhecimento/extração de entidades, análise tópica.
conversation_idstringO ID do Tweet original da conversa (que inclui respostas diretas, respostas de respostas).Use para reconstruir a conversa a partir de um Tweet.
created_atdate (ISO 8601)Horário de criação do Tweet.Útil para análise de séries temporais e compreender quando um Tweet foi criado.
display_text_rangearrayUm array contendo um índice de início e fim para a porção de texto que é exibida.Útil para saber qual porção do texto é exibida por padrão para posts longos.
edit_controlsobjectIndica por quanto tempo mais o Tweet pode ser editado e o número de edições restantes.Use para determinar se um Tweet é elegível para edição.
entitiesobjectEntidades que foram analisadas do texto do Tweet. Consulte entidades em Objetos do Twitter.Fornece informações adicionais sobre hashtags, URLs, menções, etc.
geoobjectIndica a localização ou lugar de um Tweet com geolocalização.Use para determinar a localização de um Tweet com geolocalização.
in_reply_to_user_idstringSe o Tweet representado for uma resposta, este campo conterá o ID do autor do Tweet original.Determinar se um Tweet foi em resposta a outro Tweet.
langstringIdioma do Tweet, se detectado pelo Twitter.Classificar Tweets por idioma falado.
non_public_metricsobjectMétricas de engajamento não públicas para o Tweet no momento da solicitação. Requer autenticação de contexto do usuário.Determinar impressões totais geradas para o Tweet.
note_tweetobjectContém o texto completo de um Post para Posts de formato longo (>280 caracteres).Obter o texto completo de um post.
organic_metricsobjectMétricas de engajamento, rastreadas em contexto orgânico, para o Tweet no momento da solicitação. Requer autenticação de contexto do usuário.Medir engajamento orgânico para o Tweet.
possibly_sensitivebooleanIndica se o conteúdo pode ser reconhecido como sensível.Estudar circulação de certos tipos de conteúdo.
promoted_metricsobjectMétricas de engajamento, rastreadas em contexto promovido, para o Tweet no momento da solicitação. Requer autenticação de contexto do usuário.Medir engajamento para o Tweet quando foi promovido.
public_metricsobjectMétricas de engajamento públicas para o Tweet no momento da solicitação.Medir engajamento do Tweet.
referenced_tweetsarrayUma lista de Tweets aos quais este Tweet se refere, como Retweets, Tweets citados ou respostas.Compreender aspectos conversacionais de retweets, etc.
reply_settingsstringMostra quem pode responder a um determinado Tweet. As opções são “everyone”, “mentioned_users” e “followers”.Determinar configurações de resposta da conversa para o Tweet.
withheldobjectContém detalhes de retenção para conteúdo retido.
scopesobjectContém detalhes de escopo para o tweet.Indica quem pode visualizar o post. Retornado apenas para posts promovidos.
media_metadataarrayContém metadata para anexos de mídia do Tweet.Obter metadata adicional como o alt_text de um anexo de mídia do Tweet.
Recuperando um objeto Tweet Exemplo de solicitação Na solicitação a seguir, estamos requisitando fields do Tweet no endpoint Tweets lookup. Certifique-se de substituir $BEARER_TOKEN pelo seu próprio Bearer Token gerado.
curl --request GET 'https://api.x.com/2/tweets?ids=1212092628029698048&tweet.fields=attachments,author_id,context_annotations,created_at,entities,geo,id,in_reply_to_user_id,lang,possibly_sensitive,public_metrics,referenced_tweets,text,withheld&expansions=referenced_tweets.id' --header 'Authorization: Bearer $BEARER_TOKEN'
Exemplo de resposta
{
  "data": [
    {
      "text": "Acreditamos que a melhor versão futura da nossa API virá da construção dela com VOCÊS. Um brinde a mais um ótimo ano com todos que desenvolvem na plataforma Twitter. Mal podemos esperar para continuar trabalhando com vocês no novo ano. https://t.co/yvxdK6aOo2",
      "edit_history_tweet_ids": [
        "1212092628029698048"
      ],
      "lang": "en",
      "in_reply_to_user_id": "2244994945",
      "entities": {
        "urls": [
          {
            "start": 222,
            "end": 245,
            "url": "https://t.co/yvxdK6aOo2",
            "expanded_url": "https://x.com/LovesNandos/status/1211797914437259264/photo/1",
            "display_url": "pic.x.com/yvxdK6aOo2",
            "media_key": "16_1211797899316740096"
          }
        ],
        "annotations": [
          {
            "start": 42,
            "end": 44,
            "probability": 0.5359,
            "type": "Other",
            "normalized_text": "API"
          },
          {
            "start": 144,
            "end": 150,
            "probability": 0.9832,
            "type": "Other",
            "normalized_text": "Twitter"
          }
        ]
      },
      "author_id": "2244994945",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1212092627178287104"
        }
      ],
      "id": "1212092628029698048",
      "public_metrics": {
        "retweet_count": 7,
        "reply_count": 3,
        "like_count": 38,
        "quote_count": 1
      },
      "context_annotations": [
        {
          "domain": {
            "id": "29",
            "name": "Events [Entity Service]",
            "description": "Eventos do mundo real. "
          },
          "entity": {
            "id": "1186637514896920576",
            "name": " New Years Eve"
          }
        },
        {
          "domain": {
            "id": "29",
            "name": "Events [Entity Service]",
            "description": "Eventos do mundo real. "
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "Happy New Year: It's finally 2020 everywhere!",
            "description": "Acompanhe fogos de artifício e outras celebrações enquanto pessoas ao redor do mundo entram no novo ano.\nFoto via @GettyImages "
          }
        },
        {
          "domain": {
            "id": "119",
            "name": "Holiday",
            "description": "Feriados como Natal ou Halloween"
          },
          "entity": {
            "id": "1186637514896920576",
            "name": " New Years Eve"
          }
        },
        {
          "domain": {
            "id": "119",
            "name": "Holiday",
            "description": "Feriados como Natal ou Halloween"
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "Happy New Year: It's finally 2020 everywhere!",
            "description": "Acompanhe fogos de artifício e outras celebrações enquanto pessoas ao redor do mundo entram no novo ano.\nFoto via @GettyImages "
          }
        },
        {
          "domain": {
            "id": "30",
            "name": "Entities [Entity Service]",
            "description": "Domínio de nível superior do Entity Service, todo item que está no Entity Service deve estar neste domínio"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Services"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Marcas e Empresas"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "131",
            "name": "Unified Twitter Taxonomy",
            "description": "Uma taxonomia de interesses do usuário. "
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "131",
            "name": "Unified Twitter Taxonomy",
            "description": "Uma taxonomia de interesses do usuário. "
          },
          "entity": {
            "id": "847868745150119936",
            "name": "Family & relationships",
            "description": "Hobbies e interesses"
          }
        },
        {
          "domain": {
            "id": "131",
            "name": "Unified Twitter Taxonomy",
            "description": "Uma taxonomia de interesses do usuário. "
          },
          "entity": {
            "id": "1196446161223028736",
            "name": "Social media"
          }
        },
        {
          "domain": {
            "id": "29",
            "name": "Events [Entity Service]",
            "description": "Eventos do mundo real. "
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "Happy New Year: It's finally 2020 everywhere!",
            "description": "Acompanhe fogos de artifício e outras celebrações enquanto pessoas ao redor do mundo entram no novo ano.\nFoto via @GettyImages "
          }
        },
        {
          "domain": {
            "id": "119",
            "name": "Holiday",
            "description": "Feriados como Natal ou Halloween"
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "Happy New Year: It's finally 2020 everywhere!",
            "description": "Acompanhe fogos de artifício e outras celebrações enquanto pessoas ao redor do mundo entram no novo ano.\nFoto via @GettyImages "
          }
        }
      ],
      "created_at": "2019-12-31T19:26:16.000Z",
      "attachments": {
        "media_keys": [
          "16_1211797899316740096"
        ]
      },
      "possibly_sensitive": false
    }
  ],
  "includes": {
    "tweets": [
      {
        "text": "Esses lançamentos não seriam possíveis sem o feedback que vocês forneceram ao longo do caminho, então OBRIGADO a todos que contribuíram com seu tempo e ideias. Tem mais feedback? Nos avisem ⬇️ https://t.co/Vxp4UKnuJ9",
        "edit_history_tweet_ids": [
          "1212092627178287104"
        ],
        "lang": "en",
        "in_reply_to_user_id": "2244994945",
        "entities": {
          "urls": [
            {
              "start": 187,
              "end": 210,
              "url": "https://t.co/Vxp4UKnuJ9",
              "expanded_url": "https://twitterdevfeedback.uservoice.com/forums/921790-twitter-developer-labs",
              "display_url": "twitterdevfeedback.uservoice.com/forums/921790-…",
              "status": 200,
              "title": "Atualizações sobre nossos canais de feedback",
              "description": "Construímos nossa plataforma de desenvolvedor de forma aberta, com sua contribuição e feedback. Ao longo do ano passado, ouvir diretamente de vocês e dos usuários de seus apps nos ajudou a construir produtos para desenvolvedores que atendem aos casos de uso que vocês nos ajudaram a identificar. Queremos tornar essa a forma como construímos produtos e, daqui para frente, estamos consolidando nossos canais de feedback. Encontrando vocês onde estão A partir de hoje, vamos aposentar nosso canal de feedback UserVoice em favor de engajamentos diretos mais frequentes com v...",
              "unwound_url": "https://devcommunity.x.com/t/updates-on-our-feedback-channels/169706"
            }
          ]
        },
        "author_id": "2244994945",
        "referenced_tweets": [
          {
            "type": "replied_to",
            "id": "1212092626247110657"
          }
        ],
        "id": "1212092627178287104",
        "public_metrics": {
          "retweet_count": 2,
          "reply_count": 1,
          "like_count": 19,
          "quote_count": 0
        },
        "created_at": "2019-12-31T19:26:16.000Z",
        "possibly_sensitive": false
      }
    ]
  }

Usuário

O objeto de usuário contém metadados da conta de usuário do X que descrevem o usuário referenciado. O objeto de usuário é o principal objeto retornado no endpoint users lookup. Ao solicitar campos adicionais de usuário nesse endpoint, use o parâmetro user.fields. O objeto de usuário também pode aparecer como objeto filho e ser expandido dentro do objeto Tweet. Ele está disponível para expansão com ?expansions=author_id ou ?expansions=in_reply_to_user_id para obter o objeto condensado apenas com os campos padrão. Use a expansão em conjunto com o parâmetro user.fields ao solicitar campos adicionais para completar o objeto.  
Valor do campoTipoDescriçãoComo pode ser usado
id (padrão)stringO identificador único deste usuário.

"id": "2244994945"
Use para recuperar programaticamente informações sobre um usuário específico do Twitter.
name (padrão)stringO nome do usuário, conforme definido em seu perfil. Não necessariamente o nome de uma pessoa. Normalmente limitado a 50 caracteres, mas sujeito a alterações.

"name": "Twitter Dev"
username (padrão)stringO nome de usuário, identificador ou alias do Twitter com o qual este usuário se identifica. Os nomes de usuário são únicos, mas sujeitos a alterações. Normalmente têm no máximo 15 caracteres, mas algumas contas históricas podem existir com nomes mais longos.

"username": "TwitterDev"
affiliationobjectContém detalhes sobre a afiliação de um usuário.Pode ser usado para obter o selo de afiliado de um usuário.
confirmed_emailstringO email confirmado do usuário autenticado.
connection_statusarrayFornece uma lista de relações entre o usuário autenticado e o usuário sendo consultado, como seguindo, seguido, solicitação de seguir enviada, solicitação de seguir recebida, bloqueando, silenciando

”connection_status”: [
“follow_request_received”,
“follow_request_sent”,
“blocking”,
“followed_by”,
“following”,
“muting”
]
Pode ser usado para determinar o status da conexão entre o usuário autenticado e o usuário sendo consultado.
created_atdate (ISO 8601)A data e hora UTC em que a conta do usuário foi criada no Twitter.

"created_at": "2013-12-14T04:35:55.000Z"
Pode ser usado para determinar há quanto tempo alguém está usando o Twitter.
descriptionstringO texto da descrição do perfil deste usuário (também conhecida como bio), se o usuário forneceu uma.

"description": "The voice of the X Dev team and your official source for updates, news, and events, related to the X API."
entitiesobjectContém detalhes sobre texto que tem um significado especial na descrição do usuário.

"entities": { <br/> "url": { <br/> "urls": [ <br/> { <br/> "start": 0, <br/> "end": 23, <br/> "url": "https://t.co/3ZX3TNiZCY", <br/> "expanded_url": "/content/developer-twitter/en/community", <br/> "display_url": "developer.x.com/en/community" <br/> } <br/> ] <br/> }, <br/> "description": { <br/> "urls": [ <br/> { <br/> "start": 0, <br/> "end": 23, <br/> "url": "https://t.co/3ZX3TNiZCY", <br/> "expanded_url": "/content/developer-twitter/en/community", <br/> "display_url": "developer.x.com/en/community" <br/> }, <br/> "hashtags": [ <br/> { <br/> "start": 23, <br/> "end": 30, <br/> "tag": "DevRel" <br/> }, <br/> { <br/> "start": 113, <br/> "end": 130, <br/> "tag": "BlackLivesMatter" <br/> }, <br/> "mentions": [ <br/> { <br/> "start": 0, <br/> "end": 10, <br/> "tag": "TwitterDev" <br/> }, <br/> "cashtags": [ <br/> { <br/> "start": 12, <br/> "end": 16, <br/> "tag": "twtr" <br/> } <br/> ] <br/> } <br/> }
Entidades são objetos JSON que fornecem informações adicionais sobre hashtags, URLs, menções de usuários e cashtags associados à descrição. Consulte cada entidade respectiva para mais detalhes.

Todos os índices start do usuário são inclusivos, enquanto todos os índices end do usuário são exclusivos.
is_identity_verifiedbooleanIndica se o usuário tem identidade verificada.
locationstringA localização especificada no perfil do usuário, se o usuário forneceu uma. Como este é um valor de formato livre, pode não indicar uma localização válida, mas pode ser avaliado de forma aproximada ao realizar buscas com consultas de localização.

"location": "127.0.0.1"
most_recent_tweet_idstringIdentificador único do Tweet mais recente deste usuário.Determina o Tweet mais recente do usuário.
parodybooleanIndica se esta conta de usuário possui ou não o rótulo de Paródia.
pinned_tweet_idstringIdentificador único do Tweet fixado deste usuário.

"pinned_tweet_id": "1255542774432063488"
Determina o Tweet fixado no topo do perfil do usuário. Pode potencialmente ser usado para determinar o idioma do usuário.
profile_banner_urlstringA URL para o banner do perfil deste usuário, conforme mostrado no perfil do usuário.

"profile_banner_url": "https://pbs.twimg.com/profile_banners/1716450569358098432/1721022977"
Pode ser usado para baixar o banner do perfil deste usuário.
profile_image_urlstringA URL para a imagem do perfil deste usuário, conforme mostrada no perfil do usuário.

"profile_image_url": "https://pbs.twimg.com/profile_images/1267175364003901441/tBZNFAgA_normal.jpg"
Pode ser usado para baixar a imagem do perfil deste usuário.
protectedbooleanIndica se este usuário escolheu proteger seus Tweets (em outras palavras, se os Tweets deste usuário são privados).

"protected": false
public_metricsobjectContém detalhes sobre a atividade deste usuário.

"public_metrics": { "followers_count": 507902, "following_count": 1863, "tweet_count": 3561, "listed_count": 1550 }
Pode ser usado para determinar o alcance ou influência de um usuário do X, quantificar a variedade de interesses do usuário e o nível de engajamento do usuário no X.
receives_your_dmbooleanIndica se este usuário receberá ou não a mensagem direta do usuário autenticado.
subscriptionobjectContém detalhes sobre se o usuário está inscrito ou não no usuário autenticado.
subscription_typestringUma string que representa o tipo de assinatura X Premium que o usuário autenticado possui. Exemplo: None, Basic, Premium,PremiumPlus. Sempre retornará None se o usuário não for o usuário autenticado.
urlstringA URL especificada no perfil do usuário, se presente.

"url": "https://t.co/3ZX3TNiZCY"
Uma URL fornecida por um usuário do X em seu perfil. Pode ser uma página inicial, mas nem sempre é o caso.
verifiedbooleanIndica se este usuário é um usuário verificado do X.

"verified": true
Indica se este usuário do X possui ou não uma conta verificada. Uma conta verificada permite que as pessoas saibam que uma conta de interesse público é autêntica.
verified_followers_countstringUma string que representa o número de seguidores verificados de um usuário.
verified_typestringUma string que representa o tipo de verificação que um usuário possui. Exemplo: “blue”, “business”, “government”
withheldobjectContém detalhes de retenção para conteúdo retido, se aplicável.
Recuperando um objeto de usuário Exemplo de requisição Na requisição a seguir, estamos solicitando fields do usuário no endpoint users lookup. Certifique-se de substituir $BEARER_TOKEN pelo seu próprio Bearer Token gerado.
  curl --request GET 'https://api.x.com/2/users?
  ids=2244994945&user.fields=created_at,description,entities,id,location,name,pinned_tweet_id,profile_image_url,protected,url,username,verified,withheld&expansions=pinned_tweet_id'
  --header 'Authorization: Bearer $BEARER_TOKEN'
  }
Resposta de exemplo
    "data": [
        {
            "id": "2244994945",
            "name": "Twitter Dev",
            "username": "TwitterDev",
            "location": "127.0.0.1",
            "entities": {
                "url": {
                    "urls": [
                        {
                            "start": 0,
                            "end": 23,
                            "url": "https://t.co/3ZX3TNiZCY",
                            "expanded_url": "/content/developer-twitter/en/community",
                            "display_url": "developer.x.com/en/community"
                        }
                    ]
                },
                "description": {
                    "hashtags": [
                        {
                            "start": 23,
                            "end": 30,
                            "tag": "DevRel"
                        },
                        {
                            "start": 113,
                            "end": 130,
                            "tag": "BlackLivesMatter"
                        }
                    ]
                }
            },
            "verified": true,
            "description": "A voz da equipe #DevRel do Twitter e sua fonte oficial de atualizações, notícias e eventos sobre a API do Twitter. \n\n#BlackLivesMatter",
            "url": "https://t.co/3ZX3TNiZCY",
            "profile_image_url": "https://pbs.twimg.com/profile_images/1267175364003901441/tBZNFAgA_normal.jpg",
            "protected": false,
            "pinned_tweet_id": "1255542774432063488",
            "created_at": "2013-12-14T04:35:55.000Z"
        }
    ],
    "includes": {
        "tweets": [
            {
                "id": "1255542774432063488",
                "text": "Durante estes tempos sem precedentes, o que está acontecendo no Twitter pode ajudar o mundo a compreender melhor e responder à pandemia. \n\nEstamos lançando um endpoint de stream gratuito sobre COVID-19 para que desenvolvedores e pesquisadores qualificados possam estudar a conversa pública em tempo real. https://t.co/BPqMcQzhId"
            }
        ]
    }
}

Space

Spaces permitem expressão e interação por meio de conversas de áudio ao vivo. O dicionário de dados de Space contém metadata relevante sobre um Space; todos os detalhes são atualizados em tempo real. Objetos de usuário podem ser encontrados e expandidos no recurso de usuário. Esses objetos ficam disponíveis para expansão ao adicionar pelo menos um entre host_ids, creator_id, speaker_ids, mentioned_user_ids ao parâmetro de query expansions. Diferentemente de Tweets, Spaces são efêmeros e ficam indisponíveis após terminarem ou quando são cancelados por seu criador. Quando sua App processa dados de Spaces, você é responsável por retornar as informações mais atualizadas e deve remover dados que não estejam mais disponíveis na plataforma. Os endpoints de lookup de Spaces podem ajudar você a garantir que respeita as expectativas e a intenção dos usuários.
Field ValueTypeDescriptionHow it can be used
id (default)stringO identificador exclusivo do Space solicitado.
"id": "1zqKVXPQhvZJB"
Identificar de forma exclusiva um Space retornado na resposta.
state (default)stringIndica se o Space começou, vai começar ou terminou.
"state": "live"
Filtrar Spaces ao vivo ou agendados.
created_atdate (ISO 8601)Horário de criação deste Space.
"created_at": "2021-07-04T23:12:08.000Z"
Entender quando um Space foi criado e ordenar por horário.
creator_idstringIdentificador exclusivo do criador do Space.
"creator_id": "2244994945"
ended_atdate (ISO 8601)Horário em que o Space terminou, se aplicável.
"ended_at": "2021-07-04T00:11:44.000Z"
Determinar quando um Space ao vivo terminou para calcular a duração.
host_idsarrayIdentificadores exclusivos dos hosts do Space.
"host_ids": ["2244994945", "6253282"]
Expandir objetos de usuário, entender engajamento.
langstringIdioma do Space, se detectado.
"lang": "en"
Classificar Spaces por idioma.
is_ticketedbooleanIndica se este é um Space com ingressos.
"is_ticketed": false
Destacar conteúdo de interesse.
invited_user_idsarrayLista de IDs de usuários convidados como palestrantes.
"invited_user_ids": ["2244994945", "6253282"]
Expandir objetos de usuário, entender engajamento.
participant_countintegerNúmero de usuários no Space, incluindo hosts e palestrantes.
"participant_count": 420
Entender engajamento, criar relatórios.
subscriber_countintegerNúmero de pessoas que definiram um lembrete para um Space.
"subscriber_count": 36
Entender interesse no evento.
scheduled_startdate (ISO 8601)Horário de início agendado do Space.
"scheduled_start": "2021-07-14T08:00:00.000Z"
Integrar com notificações de calendário.
speaker_idsarrayLista de usuários que falaram em algum momento.
"speaker_ids": ["2244994945", "6253282"]
Expandir objetos de usuário, entender engajamento.
started_atdate (ISO 8601)Horário de início efetivo de um Space.
"started_at": "2021-07-14T08:00:12.000Z"
Determinar a hora de início do Space.
titlestringTítulo do Space.
"title": "Say hello to the Space data object!"
Entender palavras‑chave, hashtags, menções.
topic_idsarrayIDs dos tópicos selecionados pelo criador do Space.
"topic_ids": ["2244994945", "6253282"]
Entender palavras‑chave, hashtags, menções.
updated_atdate (ISO 8601)Última atualização da metadata do Space.
"updated_at": "2021-07-11T14:44:44.000Z"
Manter as informações atualizadas.
Recuperando um objeto de Space Exemplo de solicitação Na solicitação a seguir, estamos pedindo fields para o Space no endpoint de lookup de Spaces. Certifique-se de substituir $BEARER_TOKEN pelo seu próprio Bearer Token gerado.
curl "https://api.x.com/2/spaces/1DXxyRYNejbKM?space.fields=created_at,creator_id,created_athost_ids,lang,is_ticketed,invited_user_ids,participant_count,scheduled_start,speaker_ids,started_at,state,title,updated_at&expansions=creator_id,host_ids,invited_user_ids,speaker_ids" --header "Authorization: Bearer $BEARER_TOKEN"
** Exemplo de resposta **
{
  "data": {
    "id": "1zqKVXPQhvZJB",
    "state": "live",
    "created_at": "2021-07-04T23:12:08.000Z",
    "host_ids": [
      "2244994945",
      "6253282"
    ],
    "lang": "en",
    "is_ticketed": false,
    "invited_user_ids": [
      "2244994945",
      "6253282"
    ],
    "participant_count": 420,
    "scheduled_start": "2021-07-14T08:00:00.000Z",
    "speaker_ids": [
      "2244994945",
      "6253282"
    ],
    "started_at": "2021-07-14T08:00:12.000Z",
    "title": "Diga olá ao objeto de dados do Space!",
    "updated_at": "2021-07-11T14:44:44.000Z"
  },
  "includes": {
    "users": [
      {
        "id": "2244994945",
        "name": "Twitter Dev",
        "username": "TwitterDev"
      },
      {
        "id": "6253282",
        "name": "Twitter API",
        "username": "TwitterAPI"
      }
    ]
  }
}

List

O objeto List contém metadados de Twitter Lists que descrevem a List referenciada. O objeto List é o principal objeto retornado no endpoint de consulta de List. Ao solicitar campos adicionais da List nesse endpoint, basta usar o parâmetro fields list.fields. O objeto List não aparece como filho de outros objetos de dados. No entanto, objetos de usuário podem ser encontrados e expandidos no recurso de usuário. Esses objetos ficam disponíveis para expansão ao adicionar owner_id ao parâmetro de query expansions. Use essa expansão com o parâmetro de campo list.fields ao solicitar campos adicionais para completar o objeto List primário e user.fields para completar o objeto expandido.
Valor do campoTipoDescriçãoComo pode ser usado
id (padrão)stringO identificador exclusivo desta List.
"id": "2244994945"
Use para recuperar programaticamente informações sobre uma List específica.
name (padrão)stringO nome da List, conforme definido ao criar a List.
"name": "Twitter Lists"
created_atdate (ISO 8601)A data e hora em UTC em que a List foi criada.
"created_at": "2013-12-14T04:35:55.000Z"
Determine há quanto tempo uma List está no Twitter.
descriptionstringUma breve descrição para informar os usuários sobre a List.
"description": "People that are active members of the Bay area cycling community on Twitter."
follower_countintegerMostra quantos usuários seguem esta List.
"follower_count": 198
member_countintegerMostra quantos membros fazem parte desta List.
"member_count": 60
privatebooleanIndica se a List é privada.
"private": false
owner_idstringIdentificador exclusivo do proprietário desta List.
"owner_id": "1255542774432063488"
Pode ser usado para verificar se esse usuário é proprietário de outras Lists e para expandir objetos de usuário.
Recuperando um objeto de usuário Exemplo de solicitação Na solicitação a seguir, estamos requisitando fields para o usuário no endpoint List lookup by ID. Substitua $BEARER_TOKEN pelo seu Bearer Token gerado.
curl --request GET 'https://api.x.com/2/lists/1355797419175383040?list.fields=created_at,description,private,follower_count,member_count,owner_id&expansions=owner_id' --header 'Authorization: Bearer $BEARER_TOKEN'
Exemplo de resposta
{
  "data": {
    "name": "Twitter Comms",
    "member_count": 60,
    "id": "1355797419175383040",
    "private": false,
    "description": "",
    "follower_count": 198,
    "owner_id": "257366942",
    "created_at": "2021-01-31T08:37:48.000Z"
  },
  "includes": {
    "users": [
      {
        "created_at": "2011-02-25T07:51:26.000Z",
        "name": "Ashleigh Hay 🤸🏼‍♀️",
        "id": "257366942",
        "username": "shleighhay",
        "verified": false
      }
    ]
  }
}

Mídia

“Mídia” refere-se a qualquer imagem, GIF ou vídeo anexado a um Tweet. O objeto de mídia não é um objeto primário em nenhum endpoint, mas pode ser encontrado e expandido dentro do objeto Tweet. Esse objeto pode ser incluído via expansão com ?expansions=attachments.media_keys para obter a versão condensada apenas com os campos padrão. Use a expansão junto com o parâmetro de campos media.fields ao solicitar campos adicionais para completar o objeto.
Valor do campoTipoDescriçãoComo pode ser usado
media_key (default)stringIdentificador exclusivo do conteúdo de mídia expandido.
"media_key": "13_1263145212760805376"
Pode ser usado para recuperar a mídia programaticamente
type (default)stringTipo de conteúdo (animated_gif, photo, video).
"type": "video"
Classificar a mídia como foto, GIF ou vídeo
urlstringURL direta para o arquivo de mídia no X.Retorna um objeto Media com um campo URL para fotos
duration_msintegerDisponível quando o type é video. Duração do vídeo em milissegundos.
"duration_ms": 46947
heightintegerAltura deste conteúdo em pixels.
"height": 1080
non_public_metricsobjectMétricas de engajamento não públicas do conteúdo de mídia no momento da solicitação. Requer autenticação com contexto do usuário.
"non_public_metrics": { "playback_0_count": 1561, "playback_100_count": 116, "playback_25_count": 559, "playback_50_count": 305, "playback_75_count": 183,}
Determinar o engajamento do vídeo: quantos usuários assistiram até cada quarto do vídeo.
organic_metricsobjectMétricas de engajamento do conteúdo de mídia, acompanhadas em contexto orgânico, no momento da solicitação. Requer autenticação com contexto do usuário.
"organic_metrics": { "playback_0_count": 1561, "playback_100_count": 116, "playback_25_count": 559, "playback_50_count": 305, "playback_75_count": 183, "view_count": 629}
Determinar o engajamento orgânico da mídia.
preview_image_urlstringURL da prévia estática (placeholder) deste conteúdo.
"preview_image_url": "https://pbs.twimg.com/media/EYeX7akWsAIP1_1.jpg"
promoted_metricsobjectMétricas de engajamento do conteúdo de mídia, acompanhadas em contexto promovido, no momento da solicitação. Requer autenticação com contexto do usuário.
"promoted_metrics": { "playback_0_count": 259, "playback_100_count": 15, "playback_25_count": 113, "playback_50_count": 57, "playback_75_count": 25, "view_count": 124}
Determinar o engajamento da mídia quando o Tweet foi promovido.
public_metricsobjectMétricas públicas de engajamento do conteúdo de mídia no momento da solicitação.
"public_metrics": { "view_count": 6865141}
Determinar o número total de visualizações do vídeo anexado ao Tweet.
widthintegerLargura deste conteúdo em pixels.
"width": 1920
alt_textstringDescrição de uma imagem para habilitar e dar suporte à acessibilidade. Pode ter até 1000 caracteres. No momento, o alt text só pode ser adicionado a imagens.
"alt_text": "Rugged hills along the Na Pali coast on the island of Kauai"
Pode ser usado para fornecer uma descrição escrita de uma imagem caso o usuário tenha deficiência visual.
variantsarrayCada objeto de mídia pode ter várias variantes de exibição ou reprodução, com diferentes resoluções ou formatos.
"variants": [{ "bit_rate": 632000, "content_type": "video/mp4", "url": "https://video.twimg.com/ext_tw_video/1527322141724532740/pu/vid/320x568/lnBaR2hCqE-R_90a.mp4?tag=12"}]
Recuperando um objeto de mídia Exemplo de solicitação Na solicitação a seguir, estamos requisitando fields para o objeto de mídia anexado ao Tweet no endpoint Tweet lookup. Como a mídia é um objeto filho de um Tweet, a expansão attachment.media_keys é necessária. Certifique-se de substituir $BEARER_TOKEN pelo seu próprio Bearer Token gerado.
curl --request GET 'https://api.x.com/2/tweets?ids=1263145271946551300&expansions=attachments.media_keys&media.fields=duration_ms,height,media_key,preview_image_url,public_metrics,type,url,width,alt_text' --header 'Authorization: Bearer $BEARER_TOKEN'
{
  "data": [
    {
      "text": "Testando, testando...\n\nUma nova forma de conversar com exatamente quem você quer. Estamos começando com uma pequena % globalmente, então fique de 👀 para ver isso em ação. https://t.co/pV53mvjAVT",
      "id": "1263145271946551300",
      "attachments": {
        "media_keys": [
          "13_1263145212760805376"
        ]
      }
    }
  ],
  "includes": {
    "media": [
      {
        "duration_ms": 46947,
        "type": "video",
        "height": 1080,
        "media_key": "13_1263145212760805376",
        "public_metrics": {
          "view_count": 6909260
        },
        "preview_image_url": "https://pbs.twimg.com/media/EYeX7akWsAIP1_1.jpg",
        "width": 1920
      }
    ]
  }
}

Enquete

Uma enquete incluída em um Tweet não é um objeto primário em nenhum endpoint, mas pode ser localizada e expandida dentro do objeto Tweet. O objeto está disponível para expansão com ?expansions=attachments.poll_ids para obter a versão condensada apenas com os campos padrão. Use a expansão em conjunto com o parâmetro de campos poll.fields ao solicitar campos adicionais para completar o objeto.
Field valueTypeDescription
id (default)stringIdentificador exclusivo da enquete expandida.
{"id": "1199786642791452673"}
options (default)arrayContém objetos que descrevem cada opção na enquete referenciada.
{"options": [ { "position": 1, "label": "“C Sharp”", "votes": 795 }, { "position": 2, "label": "“C Hashtag”", "votes": 156 } ]}
duration_minutesintegerEspecifica a duração total desta enquete.
{"duration_minutes": 1440}
end_datetimedate (ISO 8601)Especifica a data e hora de término desta enquete.
{"end_datetime": "2019-11-28T20:26:41.000Z"}
voting_statusstringIndica se esta enquete ainda está ativa e pode receber votos, ou se a votação já foi encerrada.
{"voting_status": "closed"}
Recuperando um objeto de enquete Exemplo de solicitação Na solicitação a seguir, estamos solicitando fields para o objeto de enquete anexado ao Tweet no endpoint Tweets lookup. Como a enquete é um objeto filho de um Tweet, a expansão attachments.poll_id é necessária. Certifique-se de substituir $BEARER_TOKEN pelo seu próprio Bearer Token gerado.
curl --request GET 'https://api.x.com/2/tweets?ids=1199786642791452673&expansions=attachments.poll_ids&poll.fields=duration_minutes,end_datetime,id,options,voting_status' --header 'Authorization: Bearer $BEARER_TOKEN'
Exemplo de resposta
{
  "data": [
    {
      "text": "C#",
      "id": "1199786642791452673",
      "attachments": {
        "poll_ids": [
          "1199786642468413448"
        ]
      }
    }
  ],
  "includes": {
    "polls": [
      {
        "id": "1199786642468413448",
        "voting_status": "closed",
        "duration_minutes": 1440,
        "options": [
          {
            "position": 1,
            "label": ""C Sharp"",
            "votes": 795
          },
          {
            "position": 2,
            "label": ""C Hashtag"",
            "votes": 156
          }
        ],
        "end_datetime": "2019-11-28T20:26:41.000Z"
      }
    ]
  }
}

Place

O local marcado em um Tweet não é um objeto primário em nenhum endpoint, mas pode ser encontrado e expandido no recurso de Tweet. O objeto está disponível para expansão com ?expansions=geo.place_id para obter o objeto condensado apenas com os campos padrão. Use a expansão com o parâmetro de fields: place.fields ao solicitar campos adicionais para completar o objeto.
Field valueTypeDescriptionHow it can be used
full_name (default)stringUm nome de local detalhado em formato mais longo.Classificar um Tweet por um nome de local específico
"full_name": "Manhattan, NY"
id (default)stringO identificador exclusivo do local expandido, se for um ponto de interesse marcado no Tweet.Use para recuperar um local programaticamente
"id": "01a9a39529b27f36"
contained_withinarrayRetorna os identificadores de locais conhecidos que contêm o local referenciado.
countrystringO nome completo do país ao qual este local pertence.Classificar um Tweet por nome de país
"country": "United States"
country_codestringO código de país ISO Alpha-2 ao qual este local pertence.Classificar um Tweet por código de país
"country_code": "US"
geoobjectContém detalhes do local em formato GeoJSON.
`json
”geo”:
“type”: “Feature”,
“bbox”: [
-74.026675,
40.683935,
-73.910408,
40.877483
],
“properties”:
}
`
namestringO nome curto deste local.Classificar um Tweet por um nome de local específico
"name": "Manhattan"
place_typestringEspecifica o tipo de informação representada por este local, como o nome de uma cidade ou um ponto de interesse.Classificar um Tweet por um tipo específico de local
"place_type": "city"
Recuperando um objeto de local Exemplo de solicitação Na solicitação a seguir, estamos solicitando fields para o objeto de local anexado ao Tweet no endpoint de Tweets lookup. Como place é um objeto filho de um Tweet, a expansão geo.place_id é necessária. Certifique-se de substituir $BEARER_TOKEN pelo seu próprio Bearer Token gerado.
curl --request GET 'https://api.x.com/2/tweets?ids=1136048014974423040&expansions=geo.place_id&place.fields=contained_within,country,country_code,full_name,geo,id,name,place_type' --header 'Authorization: Bearer $BEARER_TOKEN'
Exemplo de resposta
{
  "data": [
    {
      "text": "Estamos compartilhando uma demonstração ao vivo do novo programa Twitter Developer Labs, conduzida por um membro da nossa equipe DevRel, @jessicagarson #TapIntoTwitter https://t.co/ghv7f4dW5M",
      "id": "1136048014974423040",
      "geo": {
        "place_id": "01a9a39529b27f36"
      }
    }
  ],
  "includes": {
    "places": [
      {
        "geo": {
          "type": "Feature",
          "bbox": [
            -74.026675,
            40.683935,
            -73.910408,
            40.877483
          ],
          "properties": {}
        },
        "country_code": "US",
        "name": "Manhattan",
        "id": "01a9a39529b27f36",
        "place_type": "city",
        "country": "Estados Unidos",
        "full_name": "Manhattan, NY"
      }
    ]
  }
}

Eventos de Mensagens diretas

As conversas de Mensagens diretas (DM) são compostas por eventos. A X API v2 atualmente oferece suporte a três tipos de evento: MessageCreate, ParticipantsJoin e ParticipantsLeave. Objetos de eventos de DM são retornados pelos endpoints de consulta de Mensagens diretas, e um evento MessageCreate é criado quando Mensagens diretas são criadas com sucesso com os endpoints de Gerenciar Mensagens diretas. Ao solicitar eventos de DM, há três atributos padrão do objeto de evento, ou fields, incluídos: id, event_type e text. Para receber fields de evento adicionais, use o parâmetro fields dm_event.fields para selecionar outros. Outros fields de evento disponíveis incluem: dm_conversation_id, created_at, sender_id, attachments, participant_ids e referenced_tweets. Vários desses fields fornecem os IDs de outros objetos da X relacionados ao evento de Mensagem direta:
  • sender_id - O ID da conta que enviou a mensagem ou que convidou um participante para uma conversa em grupo
  • participant_ids - Uma matriz (array) de IDs de conta. Para eventos ParticipantsJoin e ParticipantsLeave, essa matriz conterá um único ID da conta que criou o evento
  • attachments - Fornece IDs de mídia para conteúdo que foi enviado à X pelo remetente
  • referenced_tweets - Se uma URL de um Tweet for encontrada no field text, o ID desse Tweet é incluído na resposta
As expansions de sender_id, participant_ids, referenced_tweets.id e attachments.media_keys estão disponíveis para expandir esses IDs de objetos da X.
Field valueTypeDescriptionHow it can be used
id (default)stringO identificador exclusivo do evento.

”id”: “1050118621198921728”
Use para recuperar programaticamente um evento de conversa específico (disponível com endpoints v1.1).
event_type (default)stringDescreve o tipo de evento. Três tipos são atualmente compatíveis: 

* MessageCreate

* ParticipantsJoin

* ParticipantsLeave


“event_type”: “MessageCreate”
Ao recuperar o histórico de uma conversa, para entender quando as mensagens foram criadas e, em conversas em grupo, quando os participantes entraram e saíram. Todos os métodos GET oferecem suporte à filtragem por tipos específicos de evento com o parâmetro de query event_type=.
text (default)stringO texto UTF-8 da Mensagem direta. 

“text”: “Hello, just you!”
Com chatbots, pode ser usado para analisar o conteúdo das mensagens e determinar respostas automatizadas. Também pode ser usado para criar recursos de busca em conversas.
entitiesobjectEntidades extraídas do texto da MD.Fornece informações adicionais sobre hashtags, URLs, menções etc.
sender_idstringID do Usuário que criou o evento. Para expandir esse objeto na resposta, inclua sender_id como uma expansão e use o parâmetro de query user.fields para especificar atributos do objeto de Usuário de interesse.

”sender_id”: “906948460078698496”
Recupere o objeto de Usuário de quem criou o evento MessageCreate ou ParticipantsJoin.
participant_idsarray (of strings)IDs dos participantes que entram e saem de uma conversa em grupo. Também usado ao criar novas conversas em grupo. Para expandir esse objeto na resposta, inclua participant_ids como uma expansão e use o parâmetro de query user.fields para especificar atributos do objeto de Usuário de interesse.

”participant_ids”: [

     “906948460078698496”

]
Usado para recuperar objetos de Usuário dos participantes que entram e saem de conversas em grupo.
dm_conversation_idstringO identificador exclusivo da conversa da qual o evento faz parte.

”dm_conversation_id”: “1584988213961031680”
Use para recuperar programaticamente eventos de uma conversa e adicionar Mensagens diretas a ela.
created_atdate (ISO 8601)Horário de criação (UTC) do Tweet.

”created_at”: “2019-06-04T23:12:08.000Z”
Este campo pode ser usado para entender quando uma Mensagem direta foi criada ou quando os participantes da conversa entraram ou saíram.
referenced_tweetsarrayID de qualquer Tweet mencionado no texto da Mensagem direta. Para expandir esse objeto na resposta, inclua referenced_tweets.id como uma expansão e use o parâmetro de query tweet.fields para especificar atributos do objeto de Tweet de interesse.

”referenced_tweets”: [

   

“id”: “1578868150510456833”

   

]
Quando Mensagens diretas fazem referência a um Tweet, esses IDs podem ser usados para buscar os detalhes do Tweet.
attachmentsobjectPara Mensagens diretas com mídia anexada, fornece a media key do conteúdo enviado (foto, vídeo ou GIF). Para expandir esse objeto na resposta, inclua attachments.media_keys como uma expansão e use o parâmetro de query media.fields para especificar atributos do objeto de mídia de interesse. Atualmente, é compatível apenas um anexo. 

“attachments”:

    “media_keys”: [

        “3_1136048009270239232”

    ]

Para entender os objetos de mídia anexados às Mensagens diretas.
Recuperando um objeto de evento de Mensagem direta Exemplo de solicitação Neste exemplo, construiremos uma solicitação que recupera eventos associados a uma conversa um a um. Essa solicitação retornará campos fundamentais do evento de Mensagem direta, juntamente com campos adicionais para Tweets referenciados e seus autores. Vamos construir uma query que solicita:
  • Atributos fundamentais do evento, como quando foi criado e de qual conversa faz parte (dm_conversation).
  • O ID da conta e a descrição de quem enviou a Mensagem direta.
  • O texto de qualquer Tweet referenciado e quando foi publicado.
  • O ID da conta e a descrição de qualquer autor de Tweet referenciado.
Para retornar esses atributos, a query da sua solicitação incluiria o seguinte: ?dm_event.fields=id,sender_id,text,created_at,dm_conversation_id&expansions=sender_id,referenced_tweets.id&tweet.fields=created_at,text,author_id&user.fields=description
      curl --request GET 'https://api.x.com/2/dm_conversations/with/:participant_id/dm_events?tweet.fields=created_at,text,author_id&user.fields=description&expansions=sender_id,participant_ids,referenced_tweets.id&dm_event.fields=id,sender_id,text,participant_ids,created_at,'
    --header 'Authorization: Bearer $BEARER_TOKEN'
Certifique-se de substituir $BEARER_TOKEN pelo seu próprio Bearer Token gerado. Resposta de amostra
      {
	"data": [{
			"id": "1585047616894574596",
			"sender_id": "944480690",
			"text": "Olá, apenas você!",
			"created_at": "2022-10-25T23:16:15.000Z",
			"event_type": "MessageCreate",
			"dm_conversation_id": "944480690-906948460078698496"
		},
		{
			"id": "1581048670673260549",
			"sender_id": "944480690",
			"text": "Link simples do Tweet: https://t.co/IYFbRIdXHg",
			"referenced_tweets": [{
				"id": "1578900353814519810"
			}],
			"created_at": "2022-10-14T22:25:52.000Z",
			"event_type": "MessageCreate",
			"dm_conversation_id": "944480690-906948460078698496"
		},
		{
			"id": "1580705121553420292",
			"sender_id": "944480690",
			"text": "Adicionando uma nova Mensagem Direta 1 para 1.",
			"created_at": "2022-10-13T23:40:43.000Z",
			"event_type": "MessageCreate",
			"dm_conversation_id": "944480690-906948460078698496"
		}
	],
	"includes": {
		"users": [{
				"name": "Demos da API",
				"description": "Hospedando integrações do TwitterDev... @TwitterDev #DevRel",
				"id": "944480690",
				"username": "FloodSocial"
			},
			{
				"name": "o SnowBot",
				"description": "Casa do SnowBot do @TwitterDev... Fornecendo relatórios de neve, fotos de neve e links de pesquisa sobre neve... O chatbot está sendo remodelado para a API v2 do Twitter.",
				"id": "906948460078698496",
				"username": "SnowBotDev"
			}
		],
		"tweets": [{
				"text": "Me sentindo meio mal por não ter desejado a todos um feliz novo Ano Hidrológico do Colorado…\n\nFeliz Ano Hidrológico para todos os meus amigos e colegas do Colorado, novos e antigos…\n\nQue este seja um ano hidrológico generoso, mas não muito generoso…",
				"id": "1578900353814519810",
				"created_at": "2022-10-09T00:09:13.000Z",
				"author_id": "944480690",
				"edit_history_tweet_ids": [
					"1578900353814519810"
				]
			}
		]
	},
	"meta": {
		"result_count": 3,
		"next_token": "18LAA581J5II7LA00C00ZZZZ",
		"previous_token": "1BLC45G1H8CAL5DG0G00ZZZZ"
	}
}

Comunidade

As Comunidades são espaços dedicados para que usuários do X se conectem, compartilhem e se aproximem das discussões que mais lhes importam. Posts em Comunidades podem ser vistos por qualquer pessoa no X, mas somente quem está dentro da própria Comunidade pode interagir e participar da discussão. O objeto Community contém metadados relevantes sobre uma Comunidade.
Field valueTypeDescription
created_atdate (ISO 8601)Horário de criação da Comunidade.
idstringO identificador exclusivo da Comunidade.
namestringO nome da Comunidade.
descriptionstringO texto da descrição da Comunidade, se fornecido.
accessstringO nível de acesso da Comunidade.

Pode ser um dos:
- Public
- Closed
join_policystringA política de adesão da Comunidade.

Pode ser uma das:
- Open
- RestrictedJoinRequestsDisabled
- RestrictedJoinRequestsRequireAdminApproval
- RestrictedJoinRequestsRequireModeratorApproval
- SuperFollowRequired
member_countintegerO número de membros que ingressaram na Comunidade.
Recuperando objetos Community Exemplo de solicitação Na solicitação a seguir, estamos pedindo fields específicos ao pesquisar uma lista de Comunidades com base em uma palavra-chave fornecida. Certifique-se de substituir $BEARER_TOKEN pelo seu próprio Bearer Token gerado.
curl --location 'https://api.x.com/2/communities/search?query=anime&amp;community.fields=access,created_at,description,id,join_policy,member_count,name' --header 'Authorization: $BEARER_TOKEN'
Exemplo de resposta
{
  "data": [
    {
      "id": "Q29tbXVuaXR5OjE3NTg3NDc4MTc2NDI3MDA5MjI=",
      "description": "Bem-vindos à Comunidade de Anime! Onde fãs de anime se reúnem para compartilhar suas séries favoritas e discutir tudo relacionado a anime.",
      "join_policy": "Open",
      "access": "Public",
      "member_count": 39915,
      "name": "Comunidade de Anime",
      "created_at": "2024-02-17T06:58:50.000Z"
    },
    {
      "id": "Q29tbXVuaXR5OjE1MDY3OTM5NTMxMDYwNDI4OTE=",
      "description": "Participe e converse sobre anime 🥰",
      "join_policy": "Open",
      "access": "Public",
      "member_count": 26019,
      "name": "Mundo do Anime 🌸",
      "created_at": "2022-03-24T00:44:07.000Z"
    },
    {
      "id": "Q29tbXVuaXR5OjE0OTY3NzYyMTU5Mzk1MzQ4NDk=",
      "description": "Para todos os amantes e criadores de anime!",
      "join_policy": "Open",
      "access": "Public",
      "member_count": 5612,
      "name": "Anime",
      "created_at": "2022-02-24T09:17:13.000Z"
    }
  ],
  "meta": {
    "next_token": "7140dibdnow9c7btw481s8m561gat797rboud5r80xvzm"
  }
}

Como usar fields e expansions

Por padrão, os objetos de dados da X API v2 incluem um pequeno número de campos quando você faz uma solicitação sem usar os parâmetros fields ou expansions. Este guia mostra como usar os parâmetros de query fields e expansions na sua solicitação para receber objetos e campos adicionais na resposta. Neste guia, solicitaremos vários campos com base na captura de tela de Tweet a seguir.  
Esta imagem inclui uma captura de tela de um Tweet publicado por @X. É possível ver o texto do Tweet, o nome de usuário, a data e a hora de publicação, a origem e as public metrics. Também inclui um vídeo.
Como você pode ver na captura de tela, há várias informações visíveis relacionadas ao Tweet, incluindo o autor do Tweet, as métricas do Tweet, o timestamp de criação, o vídeo e a contagem de visualizações do vídeo. Há também vários dados que não são visíveis na captura, mas que ainda podem ser solicitados.  Ao fazer uma solicitação à API, a resposta padrão é simples, contendo apenas os campos padrão do Tweet (id e text). Você também receberá somente o objeto principal retornado pelo endpoint que estiver usando, e não os objetos de dados associados que possam estar relacionados ao objeto principal. Essa simplicidade, juntamente com os parâmetros fields e expansions, permite solicitar apenas os campos de que você precisa, de acordo com seu caso de uso.   

Solicitando fields e objetos adicionais.

Primeiro, vamos solicitar um objeto Tweet usando um ID de Tweet e o endpoint GET /tweets. Requisição:
curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969' \
  --header 'Authorization: Bearer $BEARER_TOKEN'
Resposta:
{
    "data": [
        {
            "id": "1260294888811347969",
            "text": "Não perca os Tweets sobre seu Tweet. \n\nAgora no iOS, você pode ver Retweets com comentários todos em um só lugar. https://t.co/oanjZfzC6y"
        }
    ]
}
O guia passo a passo a seguir mostrará como recuperar os dados adicionais que podemos ver na captura de tela.
  1. Identifique os fields adicionais que deseja solicitar usando nosso modelo de objeto ou consultando a lista de fields nas páginas de referência da API dos endpoints. Neste caso, solicitaremos os seguintes fields adicionais: attachments, author_id, created_at, public_metrics.
  2. Construa o parâmetro de query tweet.fields usando os campos acima como valor, em uma lista separada por vírgulas: ?tweet.fields=attachments,author_id,created_at,public_metrics
  3. Adicione o parâmetro query à solicitação GET /tweets que você realizou anteriormente.
Requisição: curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics' \ --header 'Authorization: Bearer $BEARER_TOKEN' Resposta:
{
    "data": [
        {
            "id": "1260294888811347969",
            "text": "Não perca os Tweets sobre o seu Tweet. \n\nAgora no iOS, você pode ver Retweets com comentários tudo em um só lugar. https://t.co/oanjZfzC6y",
            "author_id": "783214",
            "public_metrics": {
                "retweet_count": 5219,
                "reply_count": 1828,
                "like_count": 17141,
                "quote_count": 3255
            },
            "attachments": {
                "media_keys": [
                    "13_1260294804770041858"
                ]
            },
            "created_at": "2020-05-12T19:44:51.000Z"
        }
    ]
}
  1. Em seguida, vamos solicitar campos relacionados ao vídeo que foi incluído no Tweet. Para isso, usaremos o parâmetro expansions com attachments.media_keys como valor e adicionaremos isso à requisição.
?expansions=attachments.media_keys Requisição:
curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics&expansions=attachments.media_keys' \
  --header 'Authorization: Bearer $BEARER_TOKEN'
Resposta, com o objeto de mídia representado no objeto includes:
{
    "data": [
        {
            "id": "1260294888811347969",
            "text": "Não perca os Tweets sobre o seu Tweet. \n\nAgora no iOS, você pode ver Retweets com comentários tudo em um só lugar. https://t.co/oanjZfzC6y",
            "public_metrics": {
                "retweet_count": 5219,
                "reply_count": 1828,
                "like_count": 17141,
                "quote_count": 3255
            },
            "created_at": "2020-05-12T19:44:51.000Z",
            "attachments": {
                "media_keys": [
                    "13_1260294804770041858"
                ]
            },
            "author_id": "783214"
        }
    ],
    "includes": {
        "media": [
            {
                "media_key": "13_1260294804770041858",
                "type": "video"
            }
        ]
    }
}
  1. E por fim, vamos solicitar a contagem de visualizações e a duração do vídeo. Estes não são fields padrão, então precisamos solicitá-los especificamente. Use o parâmetro media.fields com os valores separados por vírgula, public_metrics e duration_ms em sua requisição.
?media.fields=public_metrics,duration_ms Requisição:   curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics&expansions=attachments.media_keys&media.fields=duration_ms,public_metrics' --header 'Authorization: Bearer $BEARER_TOKEN' Resposta, que agora inclui todos os dados visíveis na captura de tela do Tweet:
  {
    "data": [
        {
            "id": "1260294888811347969",
            "text": "Não perca os Tweets sobre o seu Tweet. \n\nAgora no iOS, você pode ver Retweets com comentários, tudo em um só lugar. https://t.co/oanjZfzC6y",
            "author_id": "783214",
            "public_metrics": {
                "retweet_count": 5219,
                "reply_count": 1828,
                "like_count": 17141,
                "quote_count": 3255
            },
            "created_at": "2020-05-12T19:44:51.000Z",
            "attachments": {
                "media_keys": [
                    "13_1260294804770041858"
                ]
            }
        }
    ],
    "includes": {
        "media": [
            {
                "duration_ms": 36503,
                "media_key": "13_1260294804770041858",
                "public_metrics": {
                    "view_count": 1534703
                },
                "type": "video"
            }
        ]
    }
}
No total, incluímos os seguintes parâmetros neste exemplo:
  • ids=1260294888811347969
  • tweet.fields=attachments,author_id,created_at,public_metrics
  • expansions=attachments.media_keys
  • media.fields=public_metrics,duration_ms  
Quando combinados, a string de query completa fica assim:
?ids=1260294888811347969&tweet.fields=attachments,author\_id,created\_at,public\_metrics&expansions=attachments.media\_keys&media.fields=public\_metrics,duration\_ms

Exemplos de cargas úteis da X API v2

Tweet

{
  "data": [
    {
      "conversation_id": "1304102743196356610",
      "id": "1307025659294674945",
      "possibly_sensitive": false,
      "public_metrics": {
        "retweet_count": 11,
        "reply_count": 2,
        "like_count": 70,
        "quote_count": 1
      },
      "entities": {
        "urls": [
          {
            "start": 74,
            "end": 97,
            "url": "https://t.co/oeF3ZHeKQQ",
            "expanded_url": "https://dev.to/twitterdev/understanding-the-new-tweet-payload-in-the-twitter-api-v2-1fg5",
            "display_url": "dev.to/twitterdev/und…",
            "images": [
              {
                "url": "https://pbs.twimg.com/news_img/1317156296982867969/2uLfv-Bh?format=jpg&name=orig",
                "width": 1128,
                "height": 600
              },
              {
                "url": "https://pbs.twimg.com/news_img/1317156296982867969/2uLfv-Bh?format=jpg&name=150x150",
                "width": 150,
                "height": 150
              }
            ],
            "status": 200,
            "title": "Entendendo o novo payload do Tweet no X API v2",
            "description": "O X anunciou recentemente o novo X API v2, reconstruído do zero para oferecer novos recursos...",
            "unwound_url": "https://dev.to/twitterdev/understanding-the-new-tweet-payload-in-the-twitter-api-v2-1fg5"
          }
        ]
      },
      "text": "Aqui está um artigo que destaca as atualizações no novo payload do Tweet v2 https://t.co/oeF3ZHeKQQ",
      "in_reply_to_user_id": "2244994945",
      "created_at": "2020-09-18T18:36:15.000Z",
      "author_id": "2244994945",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1304102743196356610"
        }
      ],
      "lang": "en",
      "source": "Twitter Web App",
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "id": "2244994945",
        "verified": true,
        "location": "127.0.0.1",
        "description": "A voz da equipe #TwitterDev e sua fonte oficial para atualizações, notícias e eventos relacionados ao #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "username": "TwitterDev",
        "public_metrics": {
          "followers_count": 513961,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "name": "Twitter Dev",
        "url": "https://t.co/3ZX3TNiZCY",
        "protected": false
      }
    ],
    "tweets": [
      {
        "conversation_id": "1304102743196356610",
        "id": "1304102743196356610",
        "possibly_sensitive": false,
        "public_metrics": {
          "retweet_count": 31,
          "reply_count": 12,
          "like_count": 104,
          "quote_count": 4
        },
        "entities": {
          "mentions": [
            {
              "start": 146,
              "end": 158,
              "username": "suhemparack"
            }
          ],
          "urls": [
            {
              "start": 237,
              "end": 260,
              "url": "https://t.co/CjneyMpgCq",
              "expanded_url": "https://x.com/TwitterDev/status/1304102743196356610/video/1",
              "display_url": "pic.x.com/CjneyMpgCq"
            }
          ],
          "hashtags": [
            {
              "start": 8,
              "end": 19,
              "tag": "TwitterAPI"
            }
          ]
        },
        "attachments": {
          "media_keys": [
            "13_1303848070984024065"
          ]
        },
        "text": "O novo #TwitterAPI inclui algumas melhorias no payload do Tweet. Você provavelmente está se perguntando — quais são as principais diferenças? 🧐\n\nNeste vídeo, @SuhemParack compara o payload do Tweet v1.1 com o que você encontrará usando nossos endpoints v2. https://t.co/CjneyMpgCq",
        "created_at": "2020-09-10T17:01:37.000Z",
        "author_id": "2244994945",
        "lang": "en",
        "source": "Twitter Media Studio"
      }
    ]
  }
}

Resposta a um Tweet

{
  "data": [
    {
      "lang": "en",
      "conversation_id": "1296887091901718529",
      "text": "Veja como o @PennMedCDH está usando dados do Twitter para entender a crise de saúde da COVID-19 📊\n\nhttps://t.co/1tdA8uDWes",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1296887091901718529"
        }
      ],
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 30,
            "end": 36,
            "probability": 0.6318,
            "type": "Product",
            "normalized_text": "Twitter"
          }
        ],
        "mentions": [
          {
            "start": 8,
            "end": 19,
            "username": "PennMedCDH"
          }
        ],
        "urls": [
          {
            "start": 87,
            "end": 110,
            "url": "https://t.co/1tdA8uDWes",
            "expanded_url": "https://developer.x.com/en/use-cases/success-stories/penn",
            "display_url": "developer.x.com/en/use-cases/s…",
            "status": 200,
            "title": "Penn Medicine Center for Digital Health",
            "description": "O Penn Med Center for Digital Health criou um mapa do Twitter sobre a COVID-19 que inclui gráficos detalhando o sentimento, sintomas relatados, recortes de dados por estado e dados de fronteira sobre o surto de COVID-19. Além disso, a iniciativa Penn Med With You usa informações regionais agregadas do Twitter para alimentar seu site e serviço de mensagens de texto. O serviço usa essas informações para disseminar recursos relevantes e oportunos.",
            "unwound_url": "https://developer.x.com/en/use-cases/success-stories/penn"
          }
        ]
      },
      "id": "1296887316556980230",
      "public_metrics": {
        "retweet_count": 9,
        "reply_count": 3,
        "like_count": 26,
        "quote_count": 2
      },
      "author_id": "2244994945",
      "in_reply_to_user_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "Categoria de marca",
            "description": "Categorias dentro de verticais de marca que reduzem o escopo das marcas",
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Serviços",
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Marcas e empresas",
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "123",
            "name": "Notícia em andamento",
            "description": "Histórias de notícias em andamento, como ‘Brexit’",
          },
          "entity": {
            "id": "1220701888179359745",
            "name": "COVID-19"
          }
        }
      ],
      "source": "Twitter Web App",
      "created_at": "2020-08-21T19:10:05.000Z"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "A voz da equipe #TwitterDev e sua fonte oficial de atualizações, notícias e eventos relacionados à #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      },
      {
        "created_at": "2013-07-23T16:58:03.000Z",
        "id": "1615654896",
        "protected": false,
        "username": "PennMedCDH",
        "verified": false,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/7eS9RuwIb9",
                "expanded_url": "http://centerfordigitalhealth.upenn.edu/",
                "display_url": "centerfordigitalhealth.upenn.edu"
              }
            ]
          },
          "description": {
            "mentions": [
              {
                "start": 0,
                "end": 13,
                "username": "PennMedicine"
              }
            ]
          }
        },
        "description": "O Center for Digital Health da @PennMedicine promove a ciência pesquisando as implicações do avanço da tecnologia de saúde digital na área da saúde.",
        "public_metrics": {
          "followers_count": 1348,
          "following_count": 455,
          "tweet_count": 1288,
          "listed_count": 92
        },
        "location": "Filadélfia, PA",
        "name": "Penn Med CDH",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1067488849725726723/MoO3FQ44_normal.jpg",
        "url": "https://t.co/7eS9RuwIb9"
      }
    ],
    "tweets": [
      {
        "lang": "en",
        "conversation_id": "1296887091901718529",
        "text": "A Dra. @RainaMerchant e sua equipe no Penn Medicine CDH estão ajudando a construir o futuro da saúde.\n\nA equipe está usando insights de dados sociais de várias maneiras — desde descobrir fatores de risco até lançar luz sobre o sentimento público. 🔎",
        "possibly_sensitive": false,
        "entities": {
          "annotations": [
            {
              "start": 39,
              "end": 55,
              "probability": 0.8274,
              "type": "Organization",
              "normalized_text": "Penn Medicine CDH"
            }
          ],
          "mentions": [
            {
              "start": 4,
              "end": 18,
              "username": "RainaMerchant"
            }
          ]
        },
        "id": "1296887091901718529",
        "public_metrics": {
          "retweet_count": 9,
          "reply_count": 7,
          "like_count": 32,
          "quote_count": 0
        },
        "author_id": "2244994945",
        "source": "Twitter Web App"
        "created_at": "2020-08-21T19:09:12.000Z"
      }
    ]
  }
}

Tweet estendido

{
  "data": [
    {
      "conversation_id": "1296121314218897408",
      "id": "1296121314218897408",
      "possibly_sensitive": false,
      "public_metrics": {
        "retweet_count": 54,
        "reply_count": 9,
        "like_count": 172,
        "quote_count": 23
      },
      "entities": {
        "urls": [
          {
            "start": 192,
            "end": 215,
            "url": "https://t.co/khXhTurm9x",
            "expanded_url": "https://devcommunity.x.com/t/hide-replies-now-available-in-the-new-twitter-api/140996",
            "display_url": "devcommunity.com/t/hide-replies…",
            "images": [
              {
                "url": "https://pbs.twimg.com/news_img/1296121315514957825/3CI24hSI?format=png&name=orig",
                "width": 400,
                "height": 400
              },
              {
                "url": "https://pbs.twimg.com/news_img/1296121315514957825/3CI24hSI?format=png&name=150x150",
                "width": 150,
                "height": 150
              }
            ],
            "status": 200,
            "title": "Ocultar respostas agora disponível na nova API do Twitter",
            "description": "Hoje, temos o prazer de anunciar a disponibilidade geral do endpoint de ocultar respostas na nova API do Twitter. O endpoint de ocultar respostas permite que você crie ferramentas que ajudem as pessoas a ocultar ou mostrar respostas aos seus Tweets. As pessoas gerenciam suas respostas por diversos motivos, incluindo dar menos atenção a comentários abusivos, que distraem, enganosos, ou para tornar as conversas mais envolventes. Por meio deste endpoint, você pode criar ferramentas para ajudar as pessoas no Twitter a ocultar ou mostrar respostas de forma mais rápida e...",
            "unwound_url": "https://devcommunity.x.com/t/hide-replies-now-available-in-the-new-twitter-api/140996"
          }
        ],
        "hashtags": [
          {
            "start": 178,
            "end": 189,
            "tag": "TwitterAPI"
          }
        ]
      },
      "text": "O endpoint de ocultar respostas está sendo lançado hoje! \n\nDesenvolvedores podem ocultar respostas a Tweets - uma forma essencial de os desenvolvedores ajudarem a melhorar a qualidade da conversa pública usando a #TwitterAPI.\n\nhttps://t.co/khXhTurm9x",
      "created_at": "2020-08-19T16:26:16.000Z",
      "context_annotations": [
        {
          "domain": {
            "id": "65",
            "name": "Interests and Hobbies Vertical",
            "description": "Agrupamentos de nível superior de interesses e hobbies, como Comida ou Viagem"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Technology",
            "description": "Tecnologia e computação"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Interests and Hobbies Category",
            "description": "Um agrupamento de entidades de interesses e hobbies, como Comida Inovadora ou Destinos"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Computer programming",
            "description": "Programação de computadores"
          }
        }
      ],
      "author_id": "2244994945",
      "lang": "en",
      "source": "Twitter Web App"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "id": "2244994945",
        "verified": true,
        "location": "127.0.0.1",
        "description": "A voz da equipe #TwitterDev e sua fonte oficial para atualizações, notícias e eventos relacionados à #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "username": "TwitterDev",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "name": "Twitter Dev",
        "url": "https://t.co/3ZX3TNiZCY",
        "protected": false
      }
    ]
  }
}

Tweet com mídia

{
  "data": [
    {
      "lang": "en",
      "conversation_id": "1293593516040269825",
      "text": "Finalmente chegou! 🥁 Dê as boas-vindas à nova #TwitterAPI.\n\nEstamos reconstruindo a X API v2 do zero para atender melhor nossa comunidade de desenvolvedores. E o lançamento de hoje é só o começo.\n\nhttps://t.co/32VrwpGaJw https://t.co/KaFSbjWUA8",
      "attachments": {
        "media_keys": [
          "7_1293565706408038401"
        ]
      },
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 78,
            "end": 88,
            "probability": 0.4381,
            "type": "Product",
            "normalized_text": "Twitter API"
          }
        ],
        "hashtags": [
          {
            "start": 42,
            "end": 53,
            "tag": "TwitterAPI"
          }
        ],
        "urls": [
          {
            "start": 195,
            "end": 218,
            "url": "https://t.co/32VrwpGaJw",
            "expanded_url": "https://blog.x.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html",
            "display_url": "blog.x.com/developer/en_u…",
            "images": [
              {
                "url": "https://pbs.twimg.com/news_img/1336475659279818754/_cmRh7QE?format=jpg&name=orig",
                "width": 1200,
                "height": 627
              },
              {
                "url": "https://pbs.twimg.com/news_img/1336475659279818754/_cmRh7QE?format=jpg&name=150x150",
                "width": 150,
                "height": 150
              }
            ],
            "status": 200,
            "title": "Apresentando uma X API nova e aprimorada",
            "description": "Apresentamos a nova X API — reconstruída do zero para entregar novos recursos mais rapidamente, para que desenvolvedores possam ajudar o mundo a se conectar à conversa pública que acontece no Twitter.",
            "unwound_url": "https://blog.x.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html"
          },
          {
            "start": 219,
            "end": 242,
            "url": "https://t.co/KaFSbjWUA8",
            "expanded_url": "https://x.com/TwitterDev/status/1293593516040269825/video/1",
            "display_url": "pic.x.com/KaFSbjWUA8"
          }
        ]
      },
      "id": "1293593516040269825",
      "public_metrics": {
        "retweet_count": 958,
        "reply_count": 171,
        "like_count": 2848,
        "quote_count": 333
      },
      "author_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "Brand Category",
            "description": "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"
          }
        },
        {
          "domain": {
            "id": "65",
            "name": "Interests and Hobbies Vertical",
            "description": "Top level interests and hobbies groupings, like Food or Travel"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Technology",
            "description": "Technology and computing"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Interests and Hobbies Category",
            "description": "A grouping of interests and hobbies entities, like Novelty Food or Destinations"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Computer programming",
            "description": "Computer programming"
          }
        }
      ],
      "source": "Twitter Web App",
      "created_at": "2020-08-12T17:01:42.000Z"
    }
  ],
  "includes": {
    "media": [
      {
        "height": 720,
        "duration_ms": 34875,
        "media_key": "7_1293565706408038401",
        "type": "video",
        "preview_image_url": "https://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
        "public_metrics": {
          "view_count": 279438
        },
        "width": 1280
      }
    ],
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "A voz da equipe #TwitterDev e sua fonte oficial de atualizações, notícias e eventos relacionados à #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      }
    ]
  }
}`


### Retweet

      `{
  "data": [
    {
      "public_metrics": {
        "retweet_count": 19,
        "reply_count": 0,
        "like_count": 0,
        "quote_count": 0
      },
      "conversation_id": "1229851574555508737",
      "id": "1229851574555508737",
      "entities": {
        "annotations": [
          {
            "start": 28,
            "end": 38,
            "probability": 0.261,
            "type": "Product",
            "normalized_text": "Alexa Skill"
          },
          {
            "start": 44,
            "end": 50,
            "probability": 0.7332,
            "type": "Product",
            "normalized_text": "Twitter"
          }
        ],
        "mentions": [
          {
            "start": 3,
            "end": 15,
            "username": "suhemparack"
          }
        ]
      },
      "text": "RT @suhemparack: Criei uma Alexa Skill para o Twitter usando APL que permite visualizar Tweets e tendências no Echo Show!\n\nConfira aqui…",
      "created_at": "2020-02-18T19:33:59.000Z",
      "possibly_sensitive": false,
      "author_id": "2244994945",
      "referenced_tweets": [
        {
          "type": "retweeted",
          "id": "1229843515603144704"
        }
      ],
      "context_annotations": [
        {
          "domain": {
            "id": "47",
            "name": "Marca",
            "description": "Marcas e empresas"
          },
          "entity": {
            "id": "10026792024",
            "name": "Amazon"
          }
        },
        {
          "domain": {
            "id": "48",
            "name": "Product",
            "description": "Produtos criados por marcas. Exemplos: Ford Explorer, Apple iPhone."
          },
          "entity": {
            "id": "968221983803494400",
            "name": "Amazon - Alexa",
            "description": "Alexa"
          }
        },
        {
          "domain": {
            "id": "46",
            "name": "Brand Category",
            "description": "Categories within Brand Verticals that narrow down the scope of Brands"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Serviços"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Marcas e empresas"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        }
      ],
      "source": "Twitter Web App"
      "lang": "en"
    }
  ],
  "includes": {
    "users": [
      {
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "username": "TwitterDev",
        "name": "Twitter Dev"
        "location": "127.0.0.1"
        "url": "https://t.co/3ZX3TNiZCY",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community"
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "id": "2244994945",
        "description": "A voz da equipe #TwitterDev e sua fonte oficial para atualizações, notícias e eventos relacionados à #TwitterAPI.",
        "verified": true,
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "pinned_tweet_id": "1293593516040269825",
        "created_at": "2013-12-14T04:35:55.000Z",
        "protected": false
      },
      {
        "profile_image_url": "https://pbs.twimg.com/profile_images/1230703695051935747/TbQKe91L_normal.jpg",
        "username": "suhemparack",
        "name": "Suhem Parack",
        "location": "Seattle, WA"
        "url": "https://t.co/8IkCzClPCz",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/8IkCzClPCz",
                "expanded_url": "https://developer.x.com",
                "display_url": "developer.x.com"
              }
            ]
          },
          "description": {
            "mentions": [
              {
                "start": 42,
                "end": 50,
                "username": "Twitter"
              }
            ]
          }
        },
        "id": "857699969263964161",
        "description": "Relações com desenvolvedores para pesquisa acadêmica @Twitter. Fale comigo sobre pesquisa com dados do Twitter. Anteriormente: Amazon Alexa. As opiniões são minhas.",
        "verified": false,
        "public_metrics": {
          "followers_count": 738,
          "following_count": 512,
          "tweet_count": 460,
          "listed_count": 12
        },
        "pinned_tweet_id": "1296498078233571329",
        "created_at": "2017-04-27T20:56:22.000Z",
        "protected": false
      }
    ],
    "tweets": [
      {
        "public_metrics": {
          "retweet_count": 19,
          "reply_count": 1,
          "like_count": 71,
          "quote_count": 6
        },
        "conversation_id": "1229843515603144704",
        "id": "1229843515603144704",
        "entities": {
          "annotations": [
            {
              "start": 11,
              "end": 21,
              "probability": 0.3342,
              "type": "Product",
              "normalized_text": "Alexa Skill"
            },
            {
              "start": 27,
              "end": 33,
              "probability": 0.6727,
              "type": "Product",
              "normalized_text": "Twitter"
            }
          ],
          "urls": [
            {
              "start": 127,
              "end": 150,
              "url": "https://t.co/l5J8wq748G",
              "expanded_url": "https://dev.to/twitterdev/building-an-alexa-skill-for-twitter-using-alexa-presentation-language-1aj0",
              "display_url": "dev.to/twitterdev/bui…",
              "status": 200,
              "unwound_url": "https://dev.to/twitterdev/building-an-alexa-skill-for-twitter-using-alexa-presentation-language-1aj0"
            }
          ]
        },
        "text": "Criei uma Alexa Skill para o Twitter usando APL que permite visualizar Tweets e tendências no Echo Show!\n\nConfira aqui 👇\n\nhttps://t.co/l5J8wq748G"
        "created_at": "2020-02-18T19:01:58.000Z",
        "possibly_sensitive": false,
        "author_id": "857699969263964161",
        "context_annotations": [
          {
            "domain": {
              "id": "47",
              "name": "Marca"
              "description": "Marcas e empresas"
            },
            "entity": {
              "id": "10026792024",
              "name": "Amazon"
            }
          },
          {
            "domain": {
              "id": "48",
              "name": "Product",
              "description": "Produtos criados por marcas. Exemplos: Ford Explorer, Apple iPhone."
            },
            "entity": {
              "id": "968221983803494400",
              "name": "Amazon - Alexa",
              "description": "Alexa"
            }
          },
          {
            "domain": {
              "id": "46",
              "name": "Brand Category",
              "description": "Categories within Brand Verticals that narrow down the scope of Brands"
            },
            "entity": {
              "id": "781974596752842752",
              "name": "Serviços"
            }
          },
          {
            "domain": {
              "id": "47",
              "name": "Brand",
              "description": "Marcas e empresas"
            },
            "entity": {
              "id": "10045225402",
              "name": "Twitter"
            }
          }
        ],
        "source": "Twitter Web App"
        "lang": "en"
      }
    ]
  }
}`


### Tweet com citação

      `{
  "data": [
    {
      "lang": "en",
      "conversation_id": "1328399838128467969",
      "text": "Conforme planejado, os endpoints do Labs v2 referenciados abaixo foram descontinuados. Avise-nos nos fóruns se você tiver dúvidas ou precisar de ajuda com a X API v2! https://t.co/JaxttUMmjX",
      "referenced_tweets": [
        {
          "type": "quoted",
          "id": "1327011423252144128"
        }
      ],
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 151,
            "end": 157,
            "probability": 0.8115,
            "type": "Product",
            "normalized_text": "Twitter",
          }
        ],
        "urls": [
          {
            "start": 167,
            "end": 190,
            "url": "https://t.co/JaxttUMmjX",
            "expanded_url": "https://x.com/TwitterDev/status/1327011423252144128",
            "display_url": "twitter.com/TwitterDev/sta…",
          }
        ]
      },
      "id": "1328399838128467969",
      "public_metrics": {
        "retweet_count": 7,
        "reply_count": 4,
        "like_count": 29,
        "quote_count": 1
      },
      "author_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "Categoria de marca",
            "description": "Categorias dentro de verticais de marca que reduzem o escopo de marcas",
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Serviços",
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Marca",
            "description": "Marcas e empresas",
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter",
          }
        },
        {
          "domain": {
            "id": "65",
            "name": "Vertical de interesses e hobbies",
            "description": "Agrupamentos de nível superior de interesses e hobbies, como Comida ou Viagens",
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Tecnologia",
            "description": "Tecnologia e computação",
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Categoria de interesses e hobbies",
            "description": "Um agrupamento de entidades de interesses e hobbies, como Comida inusitada ou Destinos",
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Programação de computadores",
            "description": "Programação de computadores",
          }
        }
      ],
      "source": "Twitter Web App",
      "created_at": "2020-11-16T18:09:36.000Z"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              "display_url": "developer.x.com/en/community",
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "A voz da equipe #TwitterDev e sua fonte oficial para atualizações, notícias e eventos relacionados à #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      }
    ],
    "tweets": [
      {
        "lang": "en",
        "conversation_id": "1327011423252144128",
        "text": "👋 Lembrete: os recursos do Twitter Developer Labs v2 de ocultar respostas e de pesquisa recente serão descontinuados na próxima segunda-feira, 16 de novembro! Recomendamos que você migre para os novos endpoints de ocultar respostas e de pesquisa recente agora disponíveis na v2 da #TwitterAPI. Detalhes: https://t.co/r6z6CI7kEy",
        "possibly_sensitive": false,
        "entities": {
          "annotations": [
            {
              "start": 26,
              "end": 50,
              "probability": 0.4387,
              "type": "Product",
              "normalized_text": "Twitter Developer Labs v2",
            }
          ],
          "hashtags": [
            {
              "start": 228,
              "end": 239,
              "tag": "TwitterAPI"
            }
          ],
          "urls": [
            {
              "start": 250,
              "end": 273,
              "url": "https://t.co/r6z6CI7kEy",
              "expanded_url": "https://devcommunity.x.com/t/retiring-labs-v2-recent-search-and-hide-replies/145795",
              "display_url": "devcommunity.com/t/retiring-lab…",
              "images": [
                {
                  "url": "https://pbs.twimg.com/news_img/1327011425240313856/PkurOyu1?format=jpg&name=orig",
                  "width": 1200,
                  "height": 630
                },
                {
                  "url": "https://pbs.twimg.com/news_img/1327011425240313856/PkurOyu1?format=jpg&name=150x150",
                  "width": 150,
                  "height": 150
                }
              ],
              "status": 200,
              "title": "Encerrando a pesquisa recente e o ocultar respostas do Labs v2",
              "description": "Conforme informamos em nossos anúncios de Acesso Antecipado e de ocultar respostas, os seguintes endpoints do Twitter Developer Labs v2 serão descontinuados em 16 de novembro. Labs v2 pesquisa recente Labs v2 ocultar respostas Se chamados, esses endpoints responderão com um status HTTP 410 e não retornarão data. Com base no seu feedback do Labs, incorporamos a funcionalidade correspondente na X API v2. A documentação relevante pode ser encontrada nos links abaixo. Clique aqui para se inscrever no acesso à v2 se ainda não o fez...",
              "unwound_url": "https://devcommunity.x.com/t/retiring-labs-v2-recent-search-and-hide-replies/145795"
            }
          ]
        },
        "id": "1327011423252144128",
        "public_metrics": {
          "retweet_count": 8,
          "reply_count": 2,
          "like_count": 33,
          "quote_count": 4
        },
        "author_id": "2244994945",
        "context_annotations": [
          {
            "domain": {
              "id": "46",
              "name": "Categoria de marca",
              "description": "Categorias dentro de verticais de marca que reduzem o escopo de marcas",
            },
            "entity": {
              "id": "781974596752842752",
              "name": "Serviços",
            }
          },
          {
            "domain": {
              "id": "47",
              "name": "Marca",
              "description": "Marcas e empresas",
            },
            "entity": {
              "id": "10045225402",
              "name": "Twitter",
            }
          },
          {
            "domain": {
              "id": "65",
              "name": "Vertical de interesses e hobbies",
              "description": "Agrupamentos de nível superior de interesses e hobbies, como Comida ou Viagens",
            },
            "entity": {
              "id": "848920371311001600",
              "name": "Tecnologia",
              "description": "Tecnologia e computação",
            }
          },
          {
            "domain": {
              "id": "66",
              "name": "Categoria de interesses e hobbies",
              "description": "Um agrupamento de entidades de interesses e hobbies, como Comida inusitada ou Destinos",
            },
            "entity": {
              "id": "848921413196984320",
              "name": "Programação de computadores",
              "description": "Programação de computadores",
            }
          }
        ],
        "source": "Twitter Web App"
        "created_at": "2020-11-12T22:12:32.000Z"
      }
    ]
  }
}

Tweet citado por Retweet

{
    "data": [
    {
      "lang": "en",
      "conversation_id": "1225470895902412800",
      "text": "RT @AureliaSpecker: 📣 Se você gostou do tutorial sobre o trajeto em Londres que escrevi em novembro do ano passado, confira a versão refatorada que usa…",
      "referenced_tweets": [
        {
          "type": "retweeted",
          "id": "1224709550214873090"
        }
      ],
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 42,
            "end": 47,
            "probability": 0.6999,
            "type": "Place",
            "normalized_text": "London"
          }
        ],
        "mentions": [
          {
            "start": 3,
            "end": 18,
            "username": "AureliaSpecker"
          }
        ]
      },
      "id": "1225470895902412800",
      "public_metrics": {
        "retweet_count": 12,
        "reply_count": 0,
        "like_count": 0,
        "quote_count": 0
      },
      "author_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "Categoria de marca",
            "description": "Categorias dentro de verticais de marca que reduzem o escopo de marcas",
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Serviços",
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Marcas e empresas",
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter",
          }
        },
        {
          "domain": {
            "id": "65",
            "name": "Vertical de interesses e hobbies",
            "description": "Agrupamentos de alto nível de interesses e hobbies, como comida ou viagens",
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Tecnologia",
            "description": "Tecnologia e computação",
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Categoria de interesses e hobbies",
            "description": "Um agrupamento de entidades de interesses e hobbies, como comidas inusitadas ou destinos",
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Programação de computadores",
            "description": "Programação de computadores",
          }
        }
      ],
      "source": "Twitter para iPhone",
      "created_at": "2020-02-06T17:26:44.000Z"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "A voz da equipe #TwitterDev e sua fonte oficial para atualizações, notícias e eventos relacionados à #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      },
      {
        "created_at": "2013-01-18T23:45:43.000Z",
        "id": "1102321381",
        "protected": false,
        "username": "AureliaSpecker",
        "verified": false,
        "entities": {
          "description": {
            "mentions": [
              {
                "start": 7,
                "end": 17,
                "username": "TwitterUK"
              },
              {
                "start": 86,
                "end": 95,
                "username": "_dormrod"
              }
            ]
          }
        },
        "description": "devrel @TwitterUK • Suíça em Londres • mãe de plantas • cabeleireira pessoal de @_dormrod",
        "pinned_tweet_id": "1253069421322567681",
        "public_metrics": {
          "followers_count": 1036,
          "following_count": 1330,
          "tweet_count": 855,
          "listed_count": 26
        },
        "location": "London, UK",
        "name": "Aurelia Specker",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1137517534104772608/8FBYgc6G_normal.jpg",
        "url": ""
      }
    ],
    "tweets": [
      {
        "lang": "en",
        "conversation_id": "1224709550214873090",
        "text": "📣 Se você gostou do tutorial sobre o trajeto em Londres que escrevi em novembro do ano passado, confira a versão refatorada que usa o novo endpoint de busca do Twitter 🚇 https://t.co/87XIPZmZBJ\n\n#DEVcommunity #Pythontutorial @TwitterDev @TwitterAPI https://t.co/dXrJYvn3hY",
        "referenced_tweets": [
          {
            "type": "quoted",
            "id": "1195000047089389573"
          }
        ],
        "possibly_sensitive": false,
        "entities": {
          "annotations": [
            {
              "start": 22,
              "end": 27,
              "probability": 0.7075,
              "type": "Place",
              "normalized_text": "London"
            },
            {
              "start": 120,
              "end": 126,
              "probability": 0.7355,
              "type": "Product",
              "normalized_text": "Twitter"
            }
          ],
          "mentions": [
            {
              "start": 206,
              "end": 217,
              "username": "TwitterDev"
            },
            {
              "start": 218,
              "end": 229,
              "username": "TwitterAPI"
            }
          ],
          "hashtags": [
            {
              "start": 176,
              "end": 189,
              "tag": "DEVcommunity"
            },
            {
              "start": 190,
              "end": 205,
              "tag": "Pythontutorial"
            }
          ],
          "urls": [
            {
              "start": 151,
              "end": 174,
              "url": "https://t.co/87XIPZmZBJ",
              "expanded_url": "https://bit.ly/2OrnrCC",
              "display_url": "bit.ly/2OrnrCC",
              "status": 200,
              "unwound_url": "https://dev.to/twitterdev/migrate-to-twitter-s-newly-released-labs-recent-search-endpoint-3npe"
            },
            {
              "start": 230,
              "end": 253,
              "url": "https://t.co/dXrJYvn3hY",
              "expanded_url": "https://x.com/AureliaSpecker/status/1195000047089389573",
              "display_url": "twitter.com/AureliaSpecker…"
            }
          ]
        },
        "id": "1224709550214873090",
        "public_metrics": {
          "retweet_count": 12,
          "reply_count": 0,
          "like_count": 43,
          "quote_count": 2
        },
        "author_id": "1102321381",
        "context_annotations": [
          {
            "domain": {
              "id": "46",
              "name": "Brand Category",
              "description": "Categorias dentro de verticais de marca que reduzem o escopo de marcas",
            },
            "entity": {
              "id": "781974596752842752",
              "name": "Serviços",
            }
          },
          {
            "domain": {
              "id": "47",
              "name": "Brand",
              "description": "Marcas e empresas",
            },
            "entity": {
              "id": "10045225402",
              "name": "Twitter"
            }
          },
          {
            "domain": {
              "id": "65",
              "name": "Vertical de interesses e hobbies",
              "description": "Agrupamentos de interesses e hobbies de nível superior, como Comida ou Viagem"
            },
            "entity": {
              "id": "848920371311001600",
              "name": "Tecnologia",
              "description": "Tecnologia e computação"
            }
          },
          {
            "domain": {
              "id": "66",
              "name": "Categoria de interesses e hobbies",
              "description": "Um agrupamento de entidades de interesses e hobbies, como Comida inusitada ou Destinos"
            },
            "entity": {
              "id": "848921413196984320",
              "name": "Programação de computadores",
              "description": "Programação de computadores"
            }
          }
        ],
        "source": "Twitter Web App"
        "created_at": "2020-02-04T15:01:25.000Z"
      }
    ]
  }
}
I