> ## 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 a v2

> Si has estado trabajando con el endpoint v1.1 statuses/filter, esta guía puede ayudarte. Referencia del nivel estándar de X API v2 sobre migración.

### Standard v1.1 comparado con X API v2

Si has estado trabajando con el endpoint v1.1 [statuses/filter](https://developer.x.com/en/docs/x-api/v1/tweets/filter-realtime/api-reference/post-statuses-filter), esta guía puede ayudarte a comprender las similitudes y diferencias entre los endpoints de filtered stream estándar y de X API v2.

* **Similitudes**
  * Parámetros de solicitud y operadores
  * Soporte para historial y metadatos de edición de Post
* **Diferencias**
  * URLs de endpoint
  * Requisito de App y Project
  * Método de autenticación
  * Volumen de reglas y stream persistente
  * Formato de datos de respuesta
  * Parámetros de solicitud
  * Disponibilidad de funciones de recuperación y redundancia
  * Operadores de consulta

#### Similitudes

**Parámetros de solicitud y operadores**

El endpoint estándar v1.1 statuses/filter presenta algunos parámetros que se pueden pasar junto con la solicitud para filtrar el stream. Con filtered stream v2, en su lugar utilizas un conjunto de [operadores](/x-api/posts/filtered-stream/integrate/operators) que se pueden conectar entre sí utilizando lógica booleana para filtrar los Posts deseados. Los operadores disponibles incluyen algunos que son reemplazos directos de los parámetros estándar v1.1 existentes.

Los siguientes parámetros de solicitud estándar v1.1 tienen operadores equivalentes en X API v2:

| **Standard**                                                                                                                | **X API v2**                                                                                                                                                                             |
| :-------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| follow: una lista de IDs de usuario separados por comas, que indica los usuarios cuyos Posts deben entregarse en el stream. | Muchos operadores que pueden ayudarte a encontrar Posts relacionados con usuarios específicos:<br /><br />\* @<br />\* from:<br />\* to:<br />\* etc.                                    |
| track: una lista separada por comas de frases que se usará para determinar qué Posts se entregarán en el stream.            | Muchos operadores que pueden ayudarte a encontrar Posts relacionados con palabras clave específicas:<br /><br />\* keyword<br />\* "coincidencia exacta de frase"<br />\* #<br />\* etc. |

**Soporte para historial y metadatos de edición de Post**

Ambas versiones proporcionan metadatos que describen cualquier historial de edición. Consulta las [referencias de la API de filtered stream](/x-api/posts/filtered-stream/introduction) y la [página de fundamentos de ediciones de Post](/x-api/fundamentals/edit-posts) para obtener más detalles.

#### Diferencias

**URLs de endpoint**

* Endpoints Standard v1.1:
  * [https://stream.x.com/1.1/statuses/filter.json](https://stream.x.com/1.1/statuses/filter.json)
* Endpoint X API v2:
  * [https://api.x.com/2/tweets/search/stream](https://api.x.com/2/tweets/search/stream)
  * [https://api.x.com/2/tweets/search/stream/rule](https://api.x.com/2/tweets/search/stream/rule)

**Requisitos de App y Project**

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

**Método de autenticación**

El endpoint estándar admite [OAuth 1.0a User Context](/resources/fundamentals/authentication), mientras que los endpoints de X API v2 filtered stream admiten [OAuth 2.0 App-Only](/resources/fundamentals/authentication#oauth-2-0) (también denominada Application-only authentication). Para realizar solicitudes a la versión X API v2, debes utilizar un App Access Token para autenticar tus solicitudes.

Si ya no tienes el App Access Token que se te presentó cuando creaste tu App en la Developer Console, puedes generar uno nuevo navegando a la página "Keys and tokens" de tu app en la Developer Console. Si deseas generar un App Access Token de forma programática, consulta esta [guía de OAuth 2.0 App-Only](/resources/fundamentals/authentication#app-only-authentication-and-oauth-2-0-bearer-token).

**Volumen de reglas y stream persistente**

El endpoint estándar v1.1 admite una única regla para filtrar la conexión de streaming. Para cambiar la regla, debes desconectar el stream y enviar una nueva solicitud con las reglas de filtrado revisadas enviadas como parámetros.

El endpoint de filtered stream de X API v2 te permite aplicar múltiples reglas a un único stream y añadir y eliminar reglas de tu stream mientras se mantiene la conexión del stream.

**Formato de datos de respuesta**

Una de las mayores diferencias entre las versiones de endpoint estándar v1.1 y X API v2 es cómo seleccionas qué campos se devuelven en tu payload.

Para los endpoints estándar, recibes muchos de los campos de respuesta por defecto, y luego tienes la opción de usar parámetros para identificar qué campos o conjuntos de campos deben devolverse en el payload.

La versión de X API v2 solo entrega los campos id y text del Post por defecto. Para solicitar cualquier campo u objeto adicional, deberás usar los parámetros [fields](/x-api/fundamentals/fields) y [expansions](/x-api/fundamentals/expansions). Cualquier campo de Post que solicites de estos endpoints se devolverá en el objeto Post principal. Cualquier objeto y campo expandido de user, media, poll o place se devolverá en un objeto includes dentro de tu respuesta. Luego puedes hacer coincidir los objetos expandidos con el objeto Post haciendo coincidir los IDs ubicados tanto en el Post como en el objeto expandido.

Te animamos a leer más sobre estos nuevos parámetros en sus respectivas guías, o leyendo nuestra guía sobre [cómo usar fields y expansions](/x-api/fundamentals/data-dictionary/reference#how-to-use-fields-and-expansions).

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

Además de los cambios en cómo solicitas ciertos campos, X API v2 también introduce nuevos diseños JSON para los objetos devueltos por las APIs, incluidos los objetos de Post y [user](/x-api/fundamentals/data-dictionary/reference#user).

* En el nivel raíz del JSON, los endpoints estándar devuelven objetos Post en un array statuses, mientras que X API v2 devuelve un array data.
* En lugar de referirse a "statuses" retweeteados y citados, el JSON de X API v2 se refiere a Retweeted y Quoted Tweets. Muchos campos heredados y obsoletos, como contributors y user.translator\_type, se están eliminando.
* En lugar de usar tanto favorites (en el objeto Post) como favourites (en el objeto user), 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 Post y user solo se incluyen si tienen valores no nulos.

También introdujimos un nuevo conjunto de campos en el [objeto Post](/x-api/fundamentals/data-dictionary/reference#tweet) que incluye lo siguiente:

* Un campo [conversation\_id](/x-api/fundamentals/conversation-id)
* Dos nuevos campos de [annotations](/x-api/fundamentals/post-annotations), incluidos context y entities
* Varios nuevos campos de [métricas](/x-api/fundamentals/metrics)
* Un nuevo campo reply\_setting, que te muestra quién puede responder a un Post determinado

**Parámetros de solicitud**

También hay un conjunto de parámetros estándar de solicitud de filtered stream **no** admitidos en X API v2:

| Standard v1.1 parameter                                                                                                                  | Details                                                                                                                                                                                                                                                                        |
| :--------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| locations: una lista separada por comas de pares longitud,latitud que especifican un conjunto de cajas delimitadoras para filtrar Posts. | Aún no hemos lanzado operadores basados en ubicación para X API v2.                                                                                                                                                                                                            |
| Delimited                                                                                                                                | Con el endpoint v1.1, establecer esto en la longitud de la cadena indica que los statuses deben delimitarse en el stream, para que los clientes sepan cuántos bytes leer antes del final del mensaje de estado.<br /><br />Esta funcionalidad no está disponible con X API v2. |
| Stall\_warnings                                                                                                                          | Con el endpoint v1.1, establecer este parámetro en true hará que se entreguen mensajes periódicos si el cliente está en peligro de ser desconectado. <br /><br />Con X API v2, las alertas de stall se envían por defecto con la nueva línea que se envía cada cierto tiempo.  |

**Disponibilidad de funciones de recuperación y redundancia**

La versión de X API v2 de filtered stream introduce funciones de recuperación y redundancia que pueden ayudarte a maximizar el tiempo de actividad del streaming y recuperar cualquier Post que se haya perdido debido a una desconexión que haya durado cinco minutos o menos.

Las conexiones redundantes te permiten conectarte a un stream determinado hasta dos veces, lo que puede ayudar a garantizar que mantengas una conexión con el stream en todo momento, incluso si una de tus conexiones falla.

El parámetro backfill\_minutes se puede usar para recuperar hasta cinco minutos de datos perdidos.

Ambas funciones solo están disponibles a través de [acceso Academic Research](/x-api/getting-started/about-x-api). Puedes obtener más información sobre esta funcionalidad a través de nuestra guía de integración de [funciones de recuperación y redundancia](/x-api/fundamentals/recovery-and-redundancy).

**Nuevos operadores de consulta**

X API v2 introduce nuevos operadores en apoyo de dos nuevas funciones:

* **[Conversation IDs](/x-api/fundamentals/conversation-id)**: a medida que las conversaciones se desarrollan en X, un conversation ID estará disponible para marcar los Posts que forman parte de la conversación. Todos los Posts de la conversación tendrán su conversation\_id establecido en el ID del Post que la inició.
  * conversation\_id:
* **[X Annotations](/x-api/fundamentals/post-annotations)** proporcionan información contextual sobre los Posts e incluyen annotations de entidad y contexto. Las entidades están compuestas por personas, lugares, productos y organizaciones. Los contextos son dominios, o temas, de los que forman parte las entidades emergentes. Por ejemplo, las personas mencionadas en un Post pueden tener un contexto que indica si son un atleta, actor o político.
  * context: coincide con Posts que han sido anotados con un contexto de interés.
  * entity: coincide con Posts que han sido anotados con una entidad de interés.

***

## Ejemplos de código

### Añadir una regla a filtered stream (v2)

**Ejemplos Standard v1.1 vs v2**

Consulta los ejemplos completos de migración en la documentación oficial de la X API.
