> ## Documentation Index
> Fetch the complete documentation index at: https://docs.x.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Obtenha Posts históricos com o full-archive search

> Tutorial passo a passo para obter Posts históricos desde 2006 usando o endpoint full-archive search da X API v2, operadores de query e paginação.

## Introdução

Os [endpoints de Search Posts](/x-api/posts/search/introduction)
no mundo v2 permitem receber Posts relacionados a tópicos de interesse,
com base em uma consulta de busca que você elabora. Temos dois endpoints diferentes
disponíveis com o v2 Search Posts: recent search, que está disponível para todos os
desenvolvedores com uma conta aprovada e pode buscar Posts de até sete dias
de idade, e full-archive search, que está disponível apenas para
pesquisadores aprovados para a
[trilha de produto Academic Research](https://developer.x.com/en/products/x-api/early-access/guide#na_2),
e pode pesquisar em todo o arquivo de Posts desde março de 2006.

Você pode ver toda a nossa oferta de busca em nossa
[página de visão geral de busca](/x-api/posts/search/introduction).

Esses endpoints de Search Posts atendem a um dos casos de uso mais comuns para
pesquisadores acadêmicos, que podem usá-los para estudos longitudinais ou análise
de um tópico ou evento passado.

Este tutorial fornece um guia passo a passo para pesquisadores que desejam usar o
endpoint full-archive search para pesquisar todo o histórico de dados públicos do X.
Também demonstrará as diferentes maneiras de construir um conjunto de dados, como
obter Posts com geotag, e como paginar pelos Posts disponíveis para
uma consulta.

### Pré-requisitos

Atualmente, este endpoint está disponível apenas como parte da
[trilha de produto Academic Research](https://developer.x.com/en/solutions/academic-research/products-for-researchers).
Para usar este endpoint, você deve
[solicitar acesso](https://developer.x.com/en/portal/petition/academic/is-it-right-for-you).
Saiba mais sobre a
[inscrição e os requisitos para esta trilha](https://developer.x.com/en/solutions/academic-research/application-info).

### Conecte um app ao projeto acadêmico

Depois de ser aprovado para usar a trilha de produto Academic Research, você verá
seu [Project](/resources/fundamentals/developer-apps) acadêmico no
[Developer Console](https://developer.x.com/en/portal/dashboard). Na
seção "Apps", clique em "Add App" para conectar seu
[X App](/resources/fundamentals/developer-apps) ao Project.

[](https://res.cloudinary.com/practicaldev/image/fetch/s--gHFOyuDc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gb7aevhqyfvfjznd0pnd.png)

![Esta imagem exibe um Project acadêmico no Developer Console que ainda não tem um App adicionado](https://cdn.cms-twdigitalassets.com/content/dam/developer-twitter/docs/tutorials/getting-historical-tweets-using-the-full-archive-search-endpoint/dev-portal-1.png.twimg.1920.png)

Em seguida, você pode escolher um App existente e conectá-lo ao seu projeto (como
mostrado abaixo).

![Esta imagem mostra a página que aparece quando você tenta adicionar um App ao seu Project Acadêmico](https://cdn.cms-twdigitalassets.com/content/dam/developer-twitter/docs/tutorials/getting-historical-tweets-using-the-full-archive-search-endpoint/dev-portal-2.png.twimg.1920.png)

Ou você pode criar um novo App, dar a ele um nome e clicar em concluir, para conectar
um novo App ao seu Project Acadêmico.

![Esta imagem mostra a página onde você inserirá um nome para seu novo App, ou permite selecionar um App existente](https://cdn.cms-twdigitalassets.com/content/dam/developer-twitter/docs/tutorials/getting-historical-tweets-using-the-full-archive-search-endpoint/dev-portal-3.png.twimg.1920.png)

Isso lhe dará suas chaves de API e
[Bearer Token](/resources/fundamentals/authentication#using-and-generating-an-app-only-bearer-token) que você poderá
usar para se conectar ao endpoint full-archive search.

![Esta imagem mostra a página exibida após criar um novo App que mostra suas chaves e tokens](https://cdn.cms-twdigitalassets.com/content/dam/developer-twitter/docs/tutorials/getting-historical-tweets-using-the-full-archive-search-endpoint/dev-portal-4.png.twimg.1920.png)

**Observação**

As chaves na captura de tela acima estão ocultas, mas no seu próprio Developer Console,
você poderá ver os valores reais da API Key, API Secret Key e
Bearer Token. Salve essas chaves e o Bearer Token porque você precisará deles
para chamar o endpoint full-archive search.

### Conectando-se ao endpoint full-archive search

O comando cURL abaixo mostra como você pode obter Posts históricos do handle @XDevelopers.
Substitua \$BEARER\_TOKEN pelo seu próprio Bearer Token, cole a requisição
completa no seu terminal e pressione "return".

```bash theme={null}
curl --request GET 'https://api.x.com/2/tweets/search/all?query=from:xdevelopers' --header 'Authorization: Bearer $BEARER_TOKEN'
```

Você verá o JSON de resposta.

Por padrão, apenas os 10 Posts mais recentes serão retornados. Se você quiser mais
de 10 Posts por requisição, pode usar o parâmetro max\_results e defini-lo para
um máximo de 500 Posts por requisição, como mostrado abaixo:

```bash theme={null}
curl --request GET 'https://api.x.com/2/tweets/search/all?query=from:xdevelopers&max_results=500' --header 'Authorization: Bearer $BEARER_TOKEN'
```

### Construindo queries

Como você pode ver nos exemplos de chamadas acima, usando o parâmetro query, é possível
especificar os dados que deseja pesquisar. Por exemplo, se quiser obter todos os Posts
que contêm a palavra *covid* ou a palavra *coronavirus*, você pode usar o operador
OR entre parênteses, e sua consulta pode ser
`(covid OR coronavirus)`, e assim sua chamada de API ficará assim:

```bash theme={null}
curl --request GET 'https://api.x.com/2/tweets/search/all?query=(covid%20OR%20coronavirus)&max_results=500' --header 'Authorization: Bearer $BEARER_TOKEN'
```

Da mesma forma, se você quiser todos os Posts que contêm a palavra *covid19* que não
são reposts, pode usar o operador is:retweet com o NOT lógico (representado
por -), então sua consulta pode ser covid19 -is:retweet e sua chamada de API será:

```bash theme={null}
curl --request GET 'https://api.x.com/2/tweets/search/all?query=covid19%20-is:retweet&max_results=500' --header 'Authorization: Bearer $BEARER_TOKEN'
```

Confira
[este guia para uma lista completa de operadores](/x-api/posts/search/integrate/build-a-query)
suportados no endpoint full-archive search.

### Usando os parâmetros start\_time e end\_time para obter Posts históricos

Ao usar o endpoint full-archive search, por padrão os Posts dos últimos 30
dias serão retornados. Se você quiser obter Posts com mais de 30 dias,
pode usar os parâmetros start\_time e end\_time em sua chamada de API. Esses
parâmetros devem estar em um formato de data e hora RFC3339 válido, por exemplo
2020-12-21T13:00:00.00Z. Assim, se você quiser obter todos os Posts da conta XDevelopers
no mês de dezembro de 2020, sua chamada de API será:

```bash theme={null}
curl --request GET 'https://api.x.com/2/tweets/search/all?query=from:XDevelopers&start_time=2020-12-01T00:00:00.00Z&end_time=2021-01-01T00:00:00.00Z' --header 'Authorization: Bearer $BEARER_TOKEN'
```

### Obtendo Posts históricos com geotag

Posts com geotag são Posts que possuem informações geográficas associadas a
eles, como cidade, estado, país etc.

#### Usando o operador has:geo

Se você quiser obter Posts que têm dados de geolocalização, pode usar o operador has:geo.
Por exemplo, a seguinte requisição cURL obterá apenas os Posts do
handle @XDevelopers que têm dados de geolocalização:

```bash theme={null}
curl --request GET
'https://api.x.com/2/tweets/search/all?query=from:xdevelopers%20has:geo' --header
'Aubashthorization: Bearer $BEARER_TOKEN'
```

#### Usando o operador place\_country

Da mesma forma, você pode limitar os Posts que têm dados de geolocalização a um país específico, usando
o operador place\_country. O comando cURL abaixo obterá todos os Posts do
handle @XDevelopers dos Estados Unidos:

```bash theme={null}
curl --request GET
'https://api.x.com/2/tweets/search/all?query=from:xdevelopers%20place_country:US'
--hbasheader 'Authorization: Bearer XXXXX'
```

O país é especificado acima usando o código de dois caracteres ISO alpha-2. Códigos ISO
válidos podem ser encontrados [aqui](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).

### Obtendo mais de 500 Posts históricos usando o next\_token

Como mencionado acima, por padrão você só pode obter até 500 Posts por requisição para
uma consulta ao endpoint full-archive search. Se houver mais de 500 Posts
disponíveis para sua consulta, sua resposta json incluirá um next\_token que você
pode adicionar à sua chamada de API para obter os próximos Posts disponíveis para essa
consulta. Este next\_token está disponível no objeto meta da sua resposta JSON,
que se parece com algo assim:

```json theme={null}
{ "newest_id": "12345678...", "oldest_id": "12345678...", "result_count": 500,
"nebashxt_token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
```

Assim, para obter os próximos Posts disponíveis, use o valor de next\_token deste objeto
meta e use o valor como valor do next\_token em sua chamada de API para o endpoint
full-archive search, como mostrado abaixo (Você usará seu próprio Bearer Token
e o valor que você obtém para o Next Token da sua chamada de API anterior).

```bash theme={null}
curl --request GET
'https://api.x.com/2/tweets/search/all?max_results=500&query=covid&next_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
--header 'Authorization: Bearer $BEARER_TOKEN'
```

Dessa forma, você pode continuar verificando se há um next\_token disponível e, se você não
tiver atingido o número desejado de Posts a serem coletados, pode continuar chamando o
endpoint full-archive com o novo next\_token para cada requisição.

Abaixo estão alguns recursos que podem ajudar você ao usar o endpoint full-archive search.
Adoraríamos ouvir seu feedback. Entre em contato conosco em
[@XDevelopers](https://x.com/XDevelopers) ou em nossos
[fóruns da comunidade](https://devcommunity.x.com/) com perguntas sobre este
endpoint.

### Recursos adicionais

* [Referência da API do endpoint full-archive search](/x-api/posts/full-archive-search)
* [Aprenda o básico da construção de uma consulta de busca](/x-api/posts/search/integrate/build-a-query)
