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

# v1 a v2

export const Button = ({href, children}) => {
  return <div className="not-prose group">
    <a href={href}>
      <button className="flex items-center space-x-2.5 py-1 px-4 bg-primary-dark dark:bg-white text-white dark:text-gray-950 rounded-full group-hover:opacity-[0.9] font-medium">
        <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>;
};

<div id="standard-v11-timelines-to-x-api-v2-timelines">
  ## Cronologías estándar v1.1 a cronologías de X API v2
</div>

Si has estado trabajando con los endpoints de cronologías v1.1 (statuses/user\_timeline y statuses/mentions\_timeline), el objetivo de esta guía es ayudarte a entender las similitudes y diferencias entre los endpoints de cronologías estándar y los de X API v2, de modo que puedas migrar tu integración actual a la nueva versión.

* **Similitudes:**
  * Autenticación:
    * OAuth 1.0a User Context (cronología de inicio en orden cronológico inverso, cronología de Publicaciones de usuario y cronología de menciones de usuario)
    * OAuth 2.0 App-Only (cronología de Publicaciones de usuario)
  * Límite de acceso histórico: la cronología de usuario (cronología de Publicaciones de usuario) proporciona acceso a las 3200 Publicaciones más recientes; la cronología de menciones (cronología de menciones de usuario) proporciona acceso a las 800 menciones más recientes.
  * Compatibilidad con historial de edición de la Publicación y metadatos
  * Límites de tasa (cronología de Publicaciones de usuario)
  * Sondeo de actualización: posibilidad de recuperar nuevos resultados desde el since\_id
  * Recorrido de cronologías por ID de Publicación
  * Especificaciones de resultados:
    * Orden de resultados: resultados devueltos en orden cronológico inverso
    * Posibilidad de excluir respuestas (solo cronología de Publicaciones de usuario)
    * Posibilidad de excluir Retweets (solo cronología de Publicaciones de usuario)
* **Diferencias**
  * Nueva capacidad de autenticación:
    * OAuth 2.0 App-Only (cronología de menciones de usuario)
    * OAuth 2.0 Authorization Code Flow with PKCE (cronología de inicio en orden cronológico inverso, cronología de Publicaciones de usuario y cronología de menciones de usuario)
  * Requisitos de acceso: requisitos de App y de proyecto de X API v2
  * Límites de tasa (cronología de menciones de usuario y cronología de inicio en orden cronológico inverso)
  * Método de paginación adicional
    * Diferente max\_results (count) por respuesta
  * Formato de datos de la respuesta
  * Parámetros de la solicitud
    * Formato de datos personalizado según los parámetros de la solicitud, incluidos los campos v2 y expansions
    * Datos adicionales disponibles: métricas, anotaciones de Publicación, encuestas

<div id="similarities">
  ### Similitudes
</div>

**Autenticación**

El endpoint `v1.1 statuses/user_timeline` y el endpoint de timeline de Publicaciones de usuario de X API v2 admiten tanto [OAuth 1.0a User Context](/es/resources/fundamentals/authentication) como [OAuth 2.0 App-Only](/es/resources/fundamentals/authentication#bearer-token-also-known-as-app-only). Por lo tanto, puedes seguir usando el mismo método de autenticación y los mismos tokens de autorización si migras a la versión de X API v2.

**Acceso histórico**

Tanto `v1.1 statuses/user_timeline` como el endpoint de timeline de Publicaciones de usuario de X API v2 devolverán las 3200 Publicaciones más recientes, incluidos los Retweets.

Los endpoints `v1.1 statuses/mentions_timeline` y el timeline de menciones de usuario de X API v2 pueden devolver las 800 Publicaciones más recientes.

**Compatibilidad con el historial de edición de Publicaciones y metadatos**

Ambas versiones proporcionan metadatos que describen cualquier historial de edición. Consulta las [Referencias de la API de flujo filtrado](/es/x-api/posts/filtered-stream#api-reference-index) y la [página de fundamentos de edición de Publicaciones](/es/x-api/fundamentals/edit-posts) para obtener más detalles.

**Límites de tasa**

|                                                                                                                                                           |                                                                                                                                                                                                     |
| :-------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Standard v1.1**                                                                                                                                         | **X API v2**                                                                                                                                                                                        |
| user\_timeline:<br /><br />900 solicitudes cada 15 minutos con OAuth 1.0a User Context<br /><br />1500 solicitudes cada 15 minutos con OAuth 2.0 App-Only | Timeline de Publicaciones de usuario:<br /><br />900 solicitudes por ventana de 15 minutos con OAuth 1.0a User Context<br /><br />1500 solicitudes por ventana de 15 minutos con OAuth 2.0 App-Only |

**Actualización mediante sondeo usando since\_id**

Ambas versiones permiten sondear en busca de resultados recientes usando since\_id.

**Recorrido de timelines por ID de Publicación**

Ambos endpoints tienen la capacidad de recorrer timelines usando 'timestamps' de ID de Publicación basados en la forma en que se construyen las ID de Publicación. La funcionalidad es, en general, la misma, excepto por lo siguiente:

|                                                      |                                                                                                     |
| :--------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |
| **Standard timelines v1.1**                          | **timelines v2**                                                                                    |
| since\_id (exclusivo)<br /><br />max\_id (inclusivo) | since\_id (exclusivo)<br /><br />until\_id (también exclusivo, frente a max\_id, que era inclusivo) |

**Parámetros de filtrado de respuesta**

|                                                                                                                                                                                                                                                                                                          |                                                                                                                                                                                                                                                                                                           |
| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Standard timelines v1.1**                                                                                                                                                                                                                                                                              | **timelines v2**                                                                                                                                                                                                                                                                                          |
| Parámetros de filtrado de respuesta:<br /><br />\* include\_rts<br />\* exclude\_replies                                                                                                                                                                                                                 | Parámetros de filtrado de respuesta:<br /><br />\* exclude=retweets,replies                                                                                                                                                                                                                               |
| Ejemplo <br /><br />[https://api.x.com/1.1/statuses/user\&#95;timeline.json?user\&#95;id=2244994945\&amp;include\&#95;rts=0\&amp;\&amp;exclude\&#95;replies=1](https://api.x.com/1.1/statuses/user\&#95;timeline.json?user\&#95;id=2244994945\&amp;include\&#95;rts=0\&amp;\&amp;exclude\&#95;replies=1) | Ejemplo:<br /><br />[https://api.x.com/2/users/2244994945/tweets?max\&#95;results=100\&amp;exclude=retweets,replies](https://api.x.com/2/users/2244994945/tweets?max\&#95;results=100\&amp;exclude=retweets,replies)                                                                                      |
| Notas:<br /><br />Para user\_timeline:<br /><br />\* Usar include\_rts=0 no cambia el posible límite histórico de Publicaciones de las 3200 más recientes                                                                                                                                                | Notas:<br /><br />Para el timeline de Publicaciones de usuario:<br /><br />\* Usar exclude=retweets no cambia el posible límite histórico de Publicaciones de las 3200 más recientes <br />\* Usar exclude=replies reduce el posible límite histórico de Publicaciones a las 800 respuestas más recientes |

<div id="differences">
  ### Diferencias
</div>

**Autenticación**

\*\*El endpoint v1.1 statuses/mentions\_timeline solo admite [OAuth 1.0a User Context](https://developer-staging.x.com/resources/fundamentals/authentication). El endpoint de timeline de menciones de usuario de X API v2 admite [OAuth 1.0a User Context](/es/resources/fundamentals/authentication), [OAuth 2.0 App-Only](/es/resources/fundamentals/authentication#bearer-token-also-known-as-app-only) y [OAuth 2.0 Authorization Code with PKCE](/es/resources/fundamentals/authenticationoauth-2-0/authorization-code "Este método permite que una app autorizada actúe en nombre del usuario, como si fuera el usuario. Normalmente se utiliza para acceder o publicar información pública para un usuario específico, y es útil cuando tu app necesita conocer la relación entre un usuario y lo que devuelve este endpoint. Haz clic para obtener más información sobre cómo autenticarte con OAuth 2.0 Authorization Code with PKCE.") \*\*

Si deseas aprovechar la posibilidad de acceder a métricas privadas o promocionadas mediante el endpoint de timeline de Publicaciones de usuario de X API v2, deberás usar OAuth 1.0a User Context u OAuth 2.0 Authorization Code with PKCE y pasar los tokens de acceso de usuario relacionados con el usuario que publicó la Publicación para la cual deseas acceder a las métricas.

**URLs de los endpoints**

Ten en cuenta que los endpoints de timelines de X API v2 requieren un parámetro de ruta :id para el id de usuario.

* Endpoints estándar v1.1:
  * [https://api.x.com/1.1/statuses/home\&#95;timeline](https://api.x.com/1.1/statuses/home\&#95;timeline)
  * [https://api.x.com/1.1/statuses/user\&#95;timeline](https://api.x.com/1.1/statuses/user\&#95;timeline)
  * [https://api.x.com/1.1/statuses/mention\&#95;timeline](https://api.x.com/1.1/statuses/mention\&#95;timeline)
* Endpoint de X API v2:
  * [https://api.x.com/2/users/:id/timelines/reverse\&#95;chronological](https://api.x.com/2/users/:id/timelines/reverse\&#95;chronological)
  * [https://api.x.com/2/users/:id/tweets](https://api.x.com/2/users/:id/tweets)
  * [https://api.x.com/2/users/:id/mentions](https://api.x.com/2/users/:id/mentions)

**Requisitos de App y Project**

Los endpoints de X API v2 requieren que uses credenciales de una [developer App](/es/resources/fundamentals/developer-apps) que esté asociada a un [Project](/es/resources/fundamentals/developer-apps) al autenticar tus solicitudes. Todos los endpoints de X API v1.1 pueden usar credenciales de Apps o de Apps asociadas con un Project.

**Límites de tasa**

|                                                                                                                                         |                                                                                                                                                                                                                                                                       |
| :-------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **mentions\_timeline:**<br /><br />75 solicitudes por 15 min con OAuth 1.0a User Context                                                | \*\*user mention timeline: \*\*<br /><br />180 solicitudes por ventana de 15 minutos con OAuth 1.0a User Context  <br />450 solicitudes por ventana de 15 minutos con OAuth 2.0 Bearer Token                                                                          |
| **home\_timelime:**<br /><br />15 solicitudes por 15 minutos  <br /><br />Se pueden obtener hasta 800 Publicaciones en el home timeline | **reverse chronological home timeline:**<br /><br />180 solicitudes por 15 minutos<br /><br />Puedes recuperar todas las Publicaciones creadas en un timeline durante los últimos 7 días, así como las 800 más recientes, independientemente de la fecha de creación. |

**Parámetros de la solicitud**

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Standard timelines v1.1**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | **timelines v2**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Obligatorio: user\_id o screen\_name                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Obligatorio: se indica el ID de usuario específico en el parámetro de la ruta                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Opcional:<br /><br />count - establece el número máximo de resultados devueltos por solicitud<br /><br />exclude\_replies - elimina las respuestas de los resultados<br /><br />Include\_rts - cuando se establece en 0 elimina los Retweets de los resultados<br /><br />trim\_user - elimina los objetos de usuario rehidratados de los resultados<br /><br />tweet\_mode - establece el formato de datos devuelto para los resultados; establézcalo en extended para Publicaciones de más de 140 caracteres<br /><br />since\_id - establece el ID de Publicación más antiguo en el resultado (exclusivo)<br /><br />max\_id - establece el ID de Publicación más reciente en el resultado (incluido) | Opcional:<br /><br />max\_results - establece el número máximo de resultados devueltos por solicitud<br /><br />exclude=retweets,replies - elimina los Retweets o las respuestas de los resultados<br /><br />tweet.fields - establece los campos del objeto Publicación que se devolverán<br /><br />user.fields - establece los campos del objeto User que se devolverán<br /><br />place.fields - establece los campos del objeto place que se devolverán<br /><br />media.fields - establece los campos del objeto media que se devolverán<br /><br />poll.fields - establece los campos del objeto poll que se devolverán<br /><br />expansions - establece los campos y datos expandidos que se devolverán<br /><br />start\_time - establece la marca de tiempo created\_at más temprana para los resultados<br /><br />end\_time - establece la marca de tiempo created\_at más reciente para los resultados<br /><br />since\_id - establece el ID de Publicación más antiguo para los resultados (exclusivo)<br /><br />until\_id - establece el ID de Publicación más reciente en el resultado (exclusivo) |

**Formato de datos de la respuesta**

|                                                          |                                                                                                                                                                                                                                                                                                                                                  |
| :------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Standard search v1.1**                                 | **Search Posts v2**                                                                                                                                                                                                                                                                                                                              |
| \[<br />    objeto Tweet,<br />    objeto Tweet<br />  ] | <br />  "data": \[id,text,id,text],<br />  "meta": <br />    "oldest\_id": "1337085692623646724",<br />    "newest\_id": "1334183616172019713",<br />    "previous\_token": "77qpymm88g5h9vqkluldpw91lr0qzfz1sqydh841iz48k",<br />    "result\_count": 10,<br />    "next\_token": "7140dibdnow9c7btw3w29gqolns6a1ipl3kzeae41vsxk"<br />  <br /> |

**Formato JSON de X API v2**

X API v2 introduce nuevos diseños JSON para los objetos devueltos por las APIs, incluidos los objetos de [Publicación](/es/x-api/fundamentals/data-dictionary#tweet) y de [usuario](/es/x-api/fundamentals/data-dictionary#user). Puede obtener más información sobre el formato de X API v2 y cómo usar campos y Expansions visitando nuestra [guía](/es/x-api/fundamentals/data-dictionary#how-to-use-fields-and-expansions) y leyendo nuestro [diccionario de datos](/es/x-api/fundamentals/data-dictionary) más completo.

* En el nivel raíz de JSON, los endpoints estándar devuelven objetos de Publicación en un array statuses, mientras que X API v2 devuelve un array data.
* En lugar de hacer referencia a "statuses" Retweeted y Quoted, el JSON de X API v2 hace referencia a Tweets Retweeted y Quoted. Muchos campos heredados y obsoletos, como contributors y user.translator\_type, se están eliminando.
* En lugar de usar tanto favorites (en el objeto de Publicación) como favorites (en el objeto de usuario), X API v2 usa el término like.
* X está adoptando la convención de que los valores JSON sin valor (por ejemplo, null) no se escriben en el payload. Los atributos de Publicación y de usuario solo se incluyen si tienen un valor distinto de null.

Una de las mayores diferencias entre las versiones de endpoints estándar v1.1 y X API v2 es cómo selecciona qué campos se devuelven en su payload. Para los endpoints estándar, hay varios parámetros que puede usar para identificar qué campos o conjuntos de campos se devolverían en el payload, mientras que la versión de X API v2 simplifica estos diferentes parámetros en [campos](/es/x-api/fundamentals/fields) y [expansions](/es/x-api/fundamentals/expansions).

* fields: los endpoints de X API v2 permiten seleccionar qué campos se incluyen en tu payload. Por ejemplo, los objetos de Publicación, usuario, Media, Place y Poll tienen cada uno una lista de campos que se pueden devolver (o no).

* expansions: se usan para expandir los objetos complementarios referenciados en los payloads JSON de Publicación. Por ejemplo, todos los Retweets y respuestas hacen referencia a otras Publicaciones. Al establecer expansions=referenced\_tweets.id, estos otros objetos de Publicación se expanden de acuerdo con la configuración de tweet.fields. Otros objetos como usuarios, polls y media también se pueden expandir.

* conversation\_id

* Dos nuevos campos de [annotations](/es/x-api/fundamentals/post-annotations), incluidos context y entities

* Varios campos nuevos de [metrics](/es/x-api/fundamentals/metrics)

Hemos preparado una [guía de migración de formato de datos](/es/x-api/migrate/data-format-migration#migrating-from-standard-v1-1s-data-format-to-v2) que puede ayudarte a mapear los campos estándar de v1.1 a los campos más nuevos de v2. Esta guía también te proporcionará el parámetro específico expansions y fields que deberás pasar con tu solicitud a v2 para devolver campos específicos.

***

<div id="code-examples">
  ## Ejemplos de código
</div>

<div id="user-posts-timeline-v2">
  ### Cronología de Publicaciones de un usuario (v2)
</div>

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

  ```python Python SDK theme={null}
  from xdk import Client

  client = Client(bearer_token="YOUR_BEARER_TOKEN")

  # Obtener la cronología de Publicaciones del usuario
  for page in client.posts.get_user_posts(
      "2244994945",
      tweet_fields=["created_at", "public_metrics"],
      exclude=["retweets", "replies"],
      max_results=100
  ):
      for post in page.data:
          print(f"{post.created_at}: {post.text[:50]}...")
  ```

  ```javascript JavaScript SDK theme={null}
  import { Client } from "@xdevplatform/xdk";

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

  // Obtener la cronología de Publicaciones del usuario
  const paginator = client.posts.getUserPosts("2244994945", {
    tweetFields: ["created_at", "public_metrics"],
    exclude: ["retweets", "replies"],
    maxResults: 100,
  });

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

<div id="user-mentions-timeline-v2">
  ### Cronología de menciones de usuario (v2)
</div>

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

  ```python Python SDK theme={null}
  from xdk import Client

  client = Client(bearer_token="YOUR_BEARER_TOKEN")

  # Obtener las menciones del usuario
  for page in client.posts.get_user_mentions(
      "2244994945",
      tweet_fields=["created_at", "author_id"],
      max_results=100
  ):
      for post in page.data:
          print(f"Mencionado por {post.author_id}: {post.text[:50]}...")
  ```

  ```javascript JavaScript SDK theme={null}
  import { Client } from "@xdevplatform/xdk";

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

  // Obtener las menciones del usuario
  const paginator = client.posts.getUserMentions("2244994945", {
    tweetFields: ["created_at", "author_id"],
    maxResults: 100,
  });

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

**Próximos pasos**

[Consulta nuestra guía de inicio rápido para la consulta de Publicaciones con X API v2](/es/x-api/posts/lookup/quickstart "Consulta nuestra guía de inicio rápido para la consulta de Publicaciones con X API v2")

[Revisa la Referencia de la API para la consulta de Publicaciones en v2](/es/x-api/posts/lookup/migrate/overview "Revisa la Referencia de la API para la consulta de Publicaciones en v2")

[Consulta nuestro código de ejemplo para los endpoints de cronologías](https://github.com/xdevplatform/Twitter-API-v2-sample-code "Consulta nuestro código de ejemplo para los endpoints de cronologías")
