Saltar al contenido principal
Los endpoints de Filtered Stream te permiten recibir Publicaciones en tiempo real que coincidan con tus reglas de filtrado. Crea reglas utilizando operadores potentes y luego conéctate a un stream persistente para recibir las publicaciones coincidentes a medida que se van publicando.

Descripción general

Entrega en tiempo real

Recibe Publicaciones en cuestión de segundos tras su publicación

Reglas persistentes

Agrega y elimina reglas sin desconectarte

Operadores potentes

Realiza coincidencias por palabras clave, hashtags, usuarios y más

Entrega mediante webhook

Opcionalmente recibe Publicaciones mediante webhooks

Cómo funciona

  1. Crear reglas — Definir reglas de filtrado usando operadores
  2. Conectarse al flujo — Establecer una conexión HTTP persistente
  3. Recibir Publicaciones — Recibir Publicaciones coincidentes en tiempo real
┌─────────────┐      ┌─────────────┐      ┌─────────────┐
│ Crear/      │      │ Conectar al │      │ Recibir     │
│ gestionar   │  →   │ endpoint de │  →   │ Publicacio- │
│ reglas      │      │ streaming   │      │ nes         │
└─────────────┘      └─────────────┘      └─────────────┘

Endpoints

MétodoEndpointDescripción
GET/2/tweets/search/streamConectar al stream
POST/2/tweets/search/stream/rulesAgregar o eliminar reglas
GET/2/tweets/search/stream/rulesObtener las reglas actuales

Niveles de acceso

CaracterísticaPago por usoEnterprise
Reglas por proyecto1,00025,000+
Longitud de la regla1,024 caracteres2,048 caracteres
Conexiones1Múltiples
Todos los operadores

Contacto para Enterprise

Obtén límites más altos y características adicionales

Definición de reglas

Las reglas utilizan los mismos operadores que las consultas de búsqueda:
(AI OR "machine learning") lang:en -is:retweet

Reglas de ejemplo

ReglaCoincidencias
#pythonPublicaciones con el hashtag #python
from:elonmuskPublicaciones de @elonmusk
"breaking news" has:imagesPublicaciones que contienen la frase y tienen imágenes
(@XDevelopers OR @X) -is:retweetMenciones que no sean retweets

Crear una regla

Conoce la sintaxis de las reglas y los operadores

Conectarse al stream

Establece una conexión HTTP persistente para recibir publicaciones:
import requests

def stream_posts(bearer_token):
    url = "https://api.x.com/2/tweets/search/stream"
    headers = {"Authorization": f"Bearer {bearer_token}"}
    
    response = requests.get(url, headers=headers, stream=True)
    
    for line in response.iter_lines():
        if line:
            print(line.decode("utf-8"))

Señales de keep-alive

El stream envía líneas en blanco (\r\n) cada 20 segundos para mantener activa la conexión. Si no recibes datos ni una señal de keep-alive durante 20 segundos, vuelve a conectarte.

Gestión de desconexiones

Volver a conectarse de forma controlada

Consumo de datos en streaming

Procesar Publicaciones de forma eficiente

Entrega mediante webhooks

En lugar de mantener una conexión persistente, puedes recibir Publicaciones mediante webhooks:

Entrega mediante webhooks

Configura la entrega mediante webhooks para el flujo filtrado

Ediciones de Publicaciones

El stream transmite Publicaciones editadas junto con su historial de edición. Cada edición crea un nuevo id de Publicación:
{
  "data": {
    "id": "1234567893",
    "text": "Hello world! (edited)",
    "edit_history_tweet_ids": ["1234567890", "1234567891", "1234567893"]
  }
}

Fundamentos de la edición de Publicaciones

Obtén más información sobre cómo editar Publicaciones

Primeros pasos

Requisitos previos

Inicio rápido

Conéctate al stream en minutos

Crea una regla

Aprende la sintaxis de las reglas

Referencia de operadores

Todos los operadores disponibles

Código de ejemplo

Ejemplos de código que funcionan

Temas avanzados

Gestión de desconexiones

Restablece la conexión sin problemas

Capacidad para altos volúmenes

Gestiona un alto volumen de tráfico

Recuperación y redundancia

Crea aplicaciones resilientes

Coincidencia de las Publicaciones devueltas

Identifica qué reglas se aplicaron