> ## 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.

# v1 para v2

> Se você tem usado o endpoint standard v1.1 GET lists/statuses, o objetivo deste. Referência para o nível standard da X API v2 sobre migração.

export const Button = ({href, children}) => {
  return <div className="not-prose">
    <a href={href}>
      <button className="x-btn">
        <span>{children}</span>
        <svg width="3" height="24" viewBox="0 -9 3 24" class="h-6 rotate-0 overflow-visible"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg>
      </button>
    </a>
  </div>;
};

### Consulta de Posts da List: Standard v1.1 comparado com X API v2

Se você tem usado o endpoint standard v1.1 [GET lists/statuses](https://developer.x.com/en/docs/twitter-api/v1/accounts-and-users/create-manage-lists/api-reference/get-lists-statuses), o objetivo deste guia é ajudar você a entender as semelhanças e diferenças entre os endpoints do standard v1.1 e da X API v2.

* **Semelhanças**
  * Métodos de autenticação
  * Rate limits
* **Diferenças**
  * URLs dos endpoints
  * Requisitos de App e Project
  * Limites de objetos de dados por requisição
  * Formatos dos dados de resposta
  * Parâmetros da requisição

#### Semelhanças

**Autenticação**

Ambas as versões de endpoint suportam [OAuth 1.0a User Context](/resources/fundamentals/authentication#oauth-2-0). Portanto, se você estava usando um dos endpoints de consulta de Posts da List do standard v1.1, pode continuar usando o mesmo método de autenticação ao migrar para a versão X API v2.

Dependendo da sua biblioteca/pacote de autenticação, a autenticação App only provavelmente é a maneira mais fácil de começar e pode ser configurada com um simples cabeçalho de requisição. Para saber como gerar um Access Token App only, consulte [este guia sobre App only](/resources/fundamentals/authentication#bearer-token-also-known-as-app-only).

**Rate limits**

|                                                                                                                                                                           |                                                                                                                                                                                                                                                                     |
| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Standard v1.1**                                                                                                                                                         | **X API v2**                                                                                                                                                                                                                                                        |
| /1.1/lists/statuses.json<br /><br />900 requisições por janela de 15 minutos com OAuth 1.0a User Context<br /><br />900 requisições por janela de 15 minutos com App only | /2/lists/:id/tweets<br /><br />900 requisições por janela de 15 minutos com OAuth 1.0a User Context<br /><br />900 requisições por janela de 15 minutos com OAuth 2.0 Authorization Code with PKCE<br /><br />900 requisições por janela de 15 minutos com App only |

#### Diferenças

**URLs dos endpoints**

* Endpoints do standard v1.1:
  * GET [https://api.x.com/1.1/lists/statuses.json](https://api.x.com/1.1/lists/statuses.json)
    (Consultar Tweets de uma List específica)
* Endpoint da X API v2:
  * GET [https://api.x.com/2/lists/:id/tweets](https://api.x.com/2/lists/:id/tweets)
    (Consultar Tweets de uma List específica)

**Requisitos de App e Project**

Os endpoints da X API v2 exigem que você use credenciais de um [App de desenvolvedor](/resources/fundamentals/developer-apps) que esteja associado a um [Project](/resources/fundamentals/developer-apps) ao autenticar suas requisições. Todos os endpoints da X API v1.1 podem usar credenciais de Apps ou de Apps associados a um Project.

**Limites de objetos de dados por requisição**

O endpoint standard v1.1 /lists/statuses permite retornar até 5000 Posts por requisição. Os novos endpoints v2 permitem retornar até 100 Posts por requisição. Por padrão, 100 objetos de usuário serão retornados; para alterar o número de resultados, você precisará passar um parâmetro de consulta max\_results= com um número entre 1-100; em seguida, pode passar o next\_token retornado no payload da resposta para o parâmetro pagination\_token na próxima requisição.

**Formato dos dados de resposta**

Uma das maiores diferenças entre as versões dos endpoints standard v1.1 e X API v2 é como você seleciona quais fields são retornados no seu payload.

Nos endpoints standard, você recebe muitos dos fields de resposta por padrão e depois tem a opção de usar parâmetros para identificar quais fields ou conjuntos de fields adicionais devem retornar no payload.

A versão X API v2 entrega, por padrão, apenas os fields id e text do Post. Para solicitar qualquer field ou objeto adicional, você precisará usar os parâmetros [fields](/x-api/fundamentals/fields) e [expansions](/x-api/fundamentals/expansions). Quaisquer fields de Post que você solicitar deste endpoint retornarão no objeto principal de Post. Quaisquer fields de objetos expandidos retornarão em um objeto includes dentro da sua resposta. Você pode então relacionar quaisquer objetos expandidos ao objeto Post principal combinando os IDs do objeto principal e dos objetos expandidos.

A seguir estão exemplos de possíveis Post fields e expansions:

* attachments
* author\_id
* context\_annotations
* created\_at
* geo
* lang

|                     |               |
| :------------------ | :------------ |
| **Endpoint**        | **Expansion** |
| /2/lists/:id/tweets | author\_id    |

Recomendamos que você leia mais sobre esses novos parâmetros em seus respectivos guias, ou consultando nosso guia sobre [como usar fields e expansions](/x-api/fundamentals/data-dictionary/reference#how-to-use-fields-and-expansions).

Também elaboramos um [guia de migração do formato de dados](/x-api/migrate/data-format-migration) que pode ajudar a mapear fields do standard v1.1 para os fields mais recentes da v2. Esse guia também informará qual parâmetro específico de expansion e field você precisará passar com sua requisição v2 para retornar certos fields.

Além das mudanças na forma como você solicita determinados fields, a X API v2 também está introduzindo novos designs JSON para os objetos retornados pelas APIs, incluindo os objetos [Post](/x-api/fundamentals/data-dictionary/reference#tweet) e [user](/x-api/fundamentals/data-dictionary/reference#user).

* No nível raiz do JSON, os endpoints standard retornam objetos Post em um array **statuses**, enquanto a X API v2 retorna um array **data**.

* Em vez de se referir a "statuses" Retweeted e Quoted, o JSON da X API v2 refere-se a Retweeted e Quoted Tweets. Muitos fields legados e obsoletos, como **contributors** e **user.translator\_type**, estão sendo removidos.

* Em vez de usar tanto **favorites** (no objeto Post) quanto **favourites** (no objeto user), a X API v2 usa o termo **like**.

* A X está adotando a convenção de que valores JSON sem valor (por exemplo, **null**) não são incluídos no payload. Atributos de Post e user só são incluídos quando têm valores não nulos.

**Parâmetros da requisição**

Os seguintes parâmetros de requisição do standard v1.1 têm equivalentes na X API v2:

|                     |                                                              |
| :------------------ | :----------------------------------------------------------- |
| Standard v1.1       | X API v2                                                     |
| list\_id            | id                                                           |
| slug                | Sem equivalente                                              |
| owner\_screen\_name | Sem equivalente                                              |
| owner\_id           | Solicitado com o parâmetro expansions com o valor author\_id |
| since\_id           | Sem equivalente                                              |
| max\_id             | Sem equivalente                                              |
| include\_entities   | Solicitado com o parâmetro tweet.fields com o valor entities |
| include\_rts        | Sem equivalente                                              |
| count               | max\_results                                                 |

***

## Exemplos de código

### Obter Posts de uma List (v2)

<CodeGroup dropdown>
  ```bash cURL theme={null}
  curl "https://api.x.com/2/lists/84839422/tweets?tweet.fields=created_at,public_metrics&max_results=100" \
    -H "Authorization: Bearer $BEARER_TOKEN"
  ```

  ```python title="Python" lines wrap icon="python" theme={null}
  import requests

  bearer_token = "YOUR_BEARER_TOKEN"
  url = "https://api.x.com/2/lists/84839422/tweets"

  params = {
      "tweet.fields": "created_at,public_metrics",
      "max_results": 100
  }
  headers = {"Authorization": f"Bearer {bearer_token}"}

  response = requests.get(url, headers=headers, params=params)
  print(response.json())
  ```

  ```python title="Python SDK" lines wrap icon="python" theme={null}
  from xdk import Client

  client = Client(bearer_token="YOUR_BEARER_TOKEN")

  # Obter Posts de uma List
  for page in client.lists.get_tweets(
      "84839422",
      tweet_fields=["created_at", "public_metrics"],
      max_results=100
  ):
      for post in page.data:
          print(f"{post.created_at}: {post.text[:50]}...")
  ```

  ```javascript title="JavaScript SDK" lines wrap icon="square-js" theme={null}
  import { Client } from "@xdevplatform/xdk";

  const client = new Client({ bearerToken: "YOUR_BEARER_TOKEN" });

  // Obter Posts de uma List
  const paginator = client.lists.getTweets("84839422", {
    tweetFields: ["created_at", "public_metrics"],
    maxResults: 100,
  });

  for await (const page of paginator) {
    page.data?.forEach((post) => {
      console.log(`${post.created_at}: ${post.text?.slice(0, 50)}...`);
    });
  }
  ```
</CodeGroup>
