Por Sorsa Editorial

Actualizado en julio de 2026: reformulado el costo de tarifa plana a tarifas por cada 1,000, agregada la opción inicial de 100 solicitudes gratis, y refrescado el precio de lectura de 2026 de la API oficial de X.

Conclusión clave: Una API de menciones de Twitter devuelve las publicaciones públicas que etiquetan un usuario como JSON estructurado, con métricas de engagement y perfiles de autor. La API oficial de X expone GET /2/users/{id}/mentions, cobrada por lectura de publicación, requiriendo OAuth y un ID numérico de usuario. Las APIs de terceros devuelven los mismos datos a partir de un usuario con una clave y filtros de fecha y de engagement integrados.

Si estás construyendo monitoreo de menciones en 2026, Sorsa API, un proveedor alternativo de API de Twitter/X, quita la fricción que hace que el endpoint oficial sea caro y torpe. Consultas el endpoint /mentions por usuario sin una consulta de user-ID, pasas min_likes, min_retweets y since_date como filtros de primera clase, y obtienes el perfil completo del autor en cada respuesta sin cargo extra. El precio es de tarifa plana por solicitud en lugar de por lectura de publicación: los endpoints por lote empiezan desde $0.02 por cada 1,000 tweets, y como la respuesta de /mentions empaqueta el perfil del autor con cada publicación, nunca pagas la lectura de autor separada que la API oficial agrega encima de su $0.005 por lectura de publicación. Puedes probarlo con 100 solicitudes gratis antes de agregar una tarjeta, no hay cola de aprobación de cuenta de desarrollador, y el límite de tasa es de 20 solicitudes por segundo en todos los planes.

El monitoreo de menciones de marca solía ser una casilla de función en una herramienta social. En 2026 es un problema de API. Los equipos de marketing quieren JSON limpio para dashboards de BI, los equipos de soporte quieren un bucle de sondeo que dispare alertas de Slack, y los equipos de datos quieren un CSV de cada publicación que referenció una marca el trimestre pasado para modelado de sentimiento. Esta guía cubre cuáles son los endpoints, cómo se comparan, cuánto cuestan este año, qué se les escapa (el problema de la mención sin etiqueta), y cómo construir monitoreo de grado de producción sin quemar un saldo de créditos en una semana. Usamos el endpoint /mentions de Sorsa para el código porque lo construimos y lo operamos y sus parámetros mapean limpiamente a los flujos de abajo, pero los patrones aplican a cualquier proveedor.

Tabla de contenidos


Qué cuenta como una mención de Twitter {#what-counts-as-a-twitter-mention}

En X, una mención es cualquier publicación pública que contiene @tuusuario en el cuerpo. Las respuestas cuentan, las publicaciones citadas cuentan, y las publicaciones independientes que etiquetan el usuario cuentan. Las menciones emergen en la pestaña de Notificaciones de la plataforma, pero esa superficie tiene límite de tasa, no expone métricas de engagement útiles, y no ofrece ninguna interfaz programática.

Una API de menciones convierte ese flujo en datos estructurados: un array JSON de objetos de publicación, cada uno cargando el texto, la marca de tiempo, las métricas de engagement (likes, retweets, respuestas, vistas), y el perfil completo del autor. Puedes filtrar, paginar, deduplicar y enrutar los datos a donde sea, ya sea una base de datos, un canal de Slack, un clasificador de sentimiento o un dashboard de BI.

Los casos de uso caen en cinco grupos limpios:

  1. Monitoreo de reputación de marca. Atrapa cada conversación pública sobre un producto y enruta el sentimiento negativo a PR antes de que se propague.
  2. Triaje de soporte al cliente. Detecta las solicitudes de soporte que llegan por publicación en lugar de por correo y empújalas a Zendesk, Intercom o Linear.
  3. Medición de campaña. Tras un lanzamiento, cuenta menciones, suma engagement, identifica las voces principales y reporta.
  4. Inteligencia competitiva. Corre el mismo análisis en usuarios de competidores para ver quién está recibiendo atención y qué está diciendo la gente.
  5. Rastreo de influencers y de PR. Detecta cuándo una cuenta de muchos seguidores menciona una marca, antes de que la publicación genere tráfico no planeado.

Lo que une a estos es el volumen y la recencia. Necesitas muchas menciones, las necesitas rápido, y necesitas separar la señal del ruido, y por eso las métricas de engagement importan: son tu filtro de ruido. Eso descarta la revisión manual, y descarta cualquier fuente que no exponga datos de engagement en masa.

Por qué las notificaciones y la búsqueda manual se quedan cortas {#why-notifications-and-manual-search-fall-short}

El sistema de notificaciones de X se dispara solo cuando alguien usa tu @usuario. La investigación de escucha social de la industria encuentra consistentemente que las referencias sin etiqueta son la mayoría de la conversación de marca, comúnmente citada alrededor de 70%. Eso se alinea con lo que vemos a lo largo de los pipelines de clientes: la mayoría de la gente escribe un nombre de marca en prosa simple sin buscar el usuario, o usa un hashtag, o escribe mal el nombre, y ninguno de esos produce una notificación.

La búsqueda manual a través de la interfaz de X maneja volúmenes pequeños, pero tiene un tope en los resultados recientes, no expone métricas de engagement en masa, y no encaja en ningún flujo automatizado. Para cualquier cosa más allá de una cuenta de hobby de 50 menciones por semana, necesitas una API.

Las dos formas de extraer menciones por API en 2026 {#the-two-ways-to-pull-mentions-via-api-in-2026}

Tienes dos opciones reales para el rastreo programático de menciones.

La primera es la API oficial de X v2, específicamente el endpoint GET /2/users/{id}/mentions: precio de pago por uso, configuración OAuth, solo IDs numéricos de usuario. La segunda es una alternativa de API de Twitter de terceros como Sorsa: planes mensuales de tarifa plana, una sola clave API, consultas basadas en usuario, y filtros integrados en el endpoint. Ambas devuelven datos públicos de X. Las diferencias prácticas se reducen a la sobrecarga de autenticación, la ergonomía de la consulta, el filtrado y el costo a tu volumen específico.

Aquí está el lado a lado, con números reales para ambos y nuestros propios límites declarados con claridad:

Menciones de la API oficial de X/mentions de Sorsa
EndpointGET /2/users/{id}/mentionsPOST /v3/mentions
Consultar porID numérico de usuario (resuelve el usuario primero)usuario directamente
AuthOAuth 2.0 + token Bearer, cuenta de desarrollador aprobadaun solo encabezado de clave API, sin aprobación
Filtros integradosninguno (solo ventaneo con since_id, start_time)min_likes, min_retweets, min_replies, since_date, until_date, order
Perfil de autorlectura de usuario separada o expansionsincluido en cada respuesta
Resultados por solicitudhasta 100hasta ~20
Modelo de preciopor lectura de publicaciónsolicitudes mensuales de tarifa plana
Costo de lectura$0.005/publicación ($0.001 lecturas propias) + lectura de autor separadade tarifa plana por solicitud, ~20 menciones por llamada, perfil de autor incluido
Límite de tasaventanas de 15 minutos, varía por nivel20 solicitudes/s, todos los planes
Alcance histórico~800 más recientes (archivo completo = Enterprise)archivo público completo (2006-presente)
Acciones de escriturasí (publicar, DM; seguir/like/citar pasaron a Enterprise)ninguna (solo lectura)

El endpoint oficial devuelve más publicaciones por solicitud (hasta 100 contra las ~20 por página de Sorsa), que es el único eje donde lidera. Deja de ser decisivo una vez que el costo entra en escena: en un plan de tarifa plana el número de solicitudes no se cobra por ítem, y los filtros integrados más las consultas por usuario quitan las llamadas extra que el camino oficial te fuerza.

La API oficial de X: GET /2/users/{id}/mentions {#the-official-x-api-get-2-users-id-mentions}

El endpoint oficial devuelve las publicaciones que mencionan a un usuario por su ID numérico. La solicitud básica:

bash
curl --request GET \
  "https://api.x.com/2/users/USER_ID/mentions" \
  --header "Authorization: Bearer YOUR_BEARER_TOKEN"

Unas cuantas cosas que hay que saber antes de construir sobre él:

  • Necesitas un ID numérico de usuario, no un usuario. Dado @tumarca, primero llamas al endpoint de consulta de usuario para resolverlo a un ID. Esa es una lectura extra facturable por cada usuario que monitoreas.
  • La autenticación es basada en OAuth. Necesitas una cuenta de desarrollador, un proyecto aprobado, y un token Bearer, con los scopes tweet.read y users.read.
  • La respuesta por defecto es mínima. En nuestras propias pruebas contra el endpoint oficial, una llamada pelada devuelve solo el ID de la publicación y el texto. Las métricas de engagement, el idioma, la multimedia, y el perfil del autor requieren cada uno listar parámetros explícitamente: tweet.fields (para created_at, public_metrics, lang, context_annotations, entities), expansions (para author_id, attachments.media_keys, referenced_tweets.id), user.fields (para username, name, verified, public_metrics), y media.fields. Olvidarlos es el bug más común que vemos en el código que se cambia.
  • Sin filtros de engagement ni de fecha. Puedes ventanear con start_time, end_time, since_id y until_id, pero no hay min_likes ni min_retweets. Para quedarte solo con las menciones de 50+ likes, extraes todo y filtras del lado del cliente.
  • Límites por solicitud y de alcance histórico. max_results acepta de 5 a 100 por llamada, y paginas con pagination_token. El acceso estándar alcanza aproximadamente las 800 menciones más recientes por usuario; el historial más viejo requiere el nivel Enterprise, así que el endpoint está construido para el monitoreo reciente, no para el trabajo de archivo profundo.

Cuánto cuesta el endpoint de menciones oficial en 2026

En 2026 la API de X corre sobre cobro de pago por uso, sin nivel gratuito para los desarrolladores nuevos. Las lecturas son $0.005 por publicación. Hay un matiz para las menciones: a partir de la actualización de precios de abril de 2026, las «owned reads» (solicitudes que tu propia app hace para las publicaciones, menciones, seguidores, y similares de tu propia cuenta) tienen un precio de $0.001 por recurso. Si te autenticas como la misma cuenta cuyas menciones estás extrayendo, tus lecturas califican para la tarifa de lectura propia. Si extraes menciones de una cuenta diferente (un competidor, una figura pública, una marca no relacionada), pagas el estándar de $0.005 por publicación.

En términos simples: monitorear tu propia marca en la API oficial cuesta aproximadamente $10 por cada 10,000 menciones, y monitorear competidores cuesta aproximadamente $50 por cada 10,000. También hay un tope mensual de 2 millones de lecturas de publicación; por encima de él, se requiere Enterprise. El endpoint es confiable y está bien documentado. Simplemente se vuelve caro a escala, especialmente para el monitoreo competitivo, que es el caso exacto que el descuento de lectura propia no cubre. Profundizamos en la estructura completa de costos en precios de la API de Twitter en 2026 y por qué la API de Twitter es tan cara.

Una alternativa de tarifa plana: el endpoint /mentions de Sorsa {#a-flat-rate-alternative-the-sorsa-mentions-endpoint}

El endpoint de Sorsa quita los puntos de fricción del camino oficial: consultas basadas en usuario, filtros integrados y precio de tarifa plana.

bash
curl -X POST https://api.sorsa.io/v3/mentions \
  -H "ApiKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "AppleSupport",
    "order": "latest",
    "min_likes": 10,
    "since_date": "2026-03-01"
  }'

Las diferencias con el camino oficial son prácticas:

  • Usuario directamente, sin consulta de ID. Pasa "query": "AppleSupport" en lugar de resolver a un ID de usuario primero.
  • Autenticación de un solo encabezado. ApiKey: ... en lugar de la configuración de OAuth Bearer, y sin aprobación de cuenta de desarrollador.
  • Filtros como parámetros de primera clase. min_likes, min_retweets, min_replies, since_date, until_date y order (popular o latest) son parámetros reales, no operadores de búsqueda que codificas en una cadena de consulta.
  • Perfil completo del autor en cada respuesta. Sin expansions ni user.fields que recordar.
  • Precio de tarifa plana. Los planes son niveles mensuales de solicitudes, y una llamada cuenta como una solicitud sin importar cuántas menciones devuelva. Los costos son de tarifa plana en lugar de por recurso: los endpoints por lote empiezan desde $0.02 por cada 1,000 tweets, mientras que el endpoint /mentions estilo búsqueda devuelve alrededor de 20 menciones por llamada y aterriza desde aproximadamente $0.10 por cada 1,000 menciones en Pro. Las cuentas nuevas empiezan con 100 solicitudes gratis, sin tarjeta requerida.

La forma de la respuesta:

json
{
  "tweets": [
    {
      "id": "2031847200012345678",
      "full_text": "@AppleSupport My iPhone keeps restarting after the latest update. Anyone else?",
      "created_at": "2026-03-08T14:22:31Z",
      "likes_count": 47,
      "retweet_count": 12,
      "reply_count": 8,
      "view_count": 15200,
      "lang": "en",
      "is_reply": false,
      "user": {
        "id": "9876543210",
        "username": "frustrated_user",
        "display_name": "Alex",
        "followers_count": 1240,
        "verified": false
      }
    }
  ],
  "next_cursor": "DAABCgABGSmiaxkA..."
}

Cada mención llega con métricas de engagement completas y el perfil completo del autor en una respuesta, sin llamadas de seguimiento para enriquecer. Para el conjunto completo de parámetros, revisa la referencia del endpoint de menciones.

Menciones vs búsqueda: cobertura con y sin etiqueta {#mentions-vs-search-tagged-and-untagged-coverage}

Un endpoint de menciones, en cualquier proveedor, atrapa solo las etiquetas directas @usuario. No atrapa las publicaciones que nombran una marca sin la @, que es la mayoría de la conversación de marca. Para cobertura completa necesitas dos endpoints trabajando juntos.

Usa un endpoint de menciones para las etiquetas directas: consultas más limpias, filtros de engagement integrados, bucles de monitoreo más fáciles. Usa un endpoint de búsqueda de tweets para las referencias de marca sin etiqueta: pasa el nombre de la marca como palabra clave (por ejemplo "nike" -from:nike lang:en) y recoge a cualquiera que discuta la marca sin usar el usuario. El endpoint de búsqueda de tweets de Sorsa admite el conjunto completo de operadores de búsqueda: frases exactas, lógica booleana, exclusiones, filtros de idioma y de multimedia, y geo. Para el monitoreo de producción, corre ambos en paralelo y deduplica por ID de publicación. El patrón de consulta en paralelo está en Atrapar menciones sin etiqueta abajo.

Cinco flujos de producción {#five-production-workflows}

Estos son patrones que hemos enviado o visto enviar a lo largo de proyectos de clientes. Cada uno resuelve un problema diferente con una combinación de parámetros diferente.

1. Dashboard de reputación para una marca de consumo

Meta: hacer emerger solo las menciones con alcance de audiencia real, descartando etiquetas de bots, spam, y ruido de cero engagement.

python
import requests
import time

API_KEY = "YOUR_API_KEY"
URL = "https://api.sorsa.io/v3/mentions"

def get_high_impact_mentions(handle, min_likes=50, max_pages=10):
    """Pull mentions filtered by minimum engagement, ranked by popularity."""
    all_mentions = []
    next_cursor = None

    for _ in range(max_pages):
        body = {"query": handle, "order": "popular", "min_likes": min_likes}
        if next_cursor:
            body["next_cursor"] = next_cursor

        resp = requests.post(
            URL,
            headers={"ApiKey": API_KEY, "Content-Type": "application/json"},
            json=body,
        )
        resp.raise_for_status()
        data = resp.json()

        all_mentions.extend(data.get("tweets", []))
        next_cursor = data.get("next_cursor")
        if not next_cursor:
            break
        time.sleep(0.1)

    return all_mentions


mentions = get_high_impact_mentions("nike", min_likes=100)
print(f"Found {len(mentions)} high-impact mentions of @nike")

La combinación de order: "popular" y min_likes: 100 es el filtro de ruido. Para marcas más pequeñas, baja el umbral a 5 o 10. Para marcas Fortune 500, súbelo a 500.

2. Cola de soporte al cliente

Meta: atrapar cada mención, incluidas las de cero engagement, porque cada una podría ser un cliente esperando ayuda.

python
def get_support_queue(handle, since_date=None):
    body = {"query": handle, "order": "latest"}
    if since_date:
        body["since_date"] = since_date

    resp = requests.post(
        URL,
        headers={"ApiKey": API_KEY, "Content-Type": "application/json"},
        json=body,
    )
    resp.raise_for_status()
    return resp.json().get("tweets", [])


support_keywords = {"help", "issue", "broken", "bug", "error", "fix", "crash", "problem"}
positive_keywords = {"love", "amazing", "great", "thanks", "awesome", "perfect"}

for m in get_support_queue("YourBrandSupport", since_date="2026-05-10"):
    words = set(m["full_text"].lower().split())
    if words & support_keywords:
        tag = "SUPPORT"
    elif words & positive_keywords:
        tag = "POSITIVE"
    else:
        tag = "OTHER"
    print(f"[{tag}] @{m['user']['username']}: {m['full_text'][:120]}")

Para producción, sondea cada 30 a 60 segundos y enruta las menciones etiquetadas a tu sistema de tickets. Construimos una versión de esto para un cliente de ropa DTC cuyo equipo de soporte estaba perdiendo por completo los problemas basados en publicaciones; enrutar las menciones etiquetadas a su cola hizo emerger una parte significativa de solicitudes que el correo nunca atrapó.

3. Medición de campaña

Meta: tras un lanzamiento o un impulso de marketing, cuantificar el volumen, las voces únicas, y el engagement agregado dentro de una ventana específica.

python
def measure_campaign(handle, start, end, max_pages=50):
    all_mentions = []
    next_cursor = None

    for _ in range(max_pages):
        body = {"query": handle, "order": "latest", "since_date": start, "until_date": end}
        if next_cursor:
            body["next_cursor"] = next_cursor

        resp = requests.post(URL, headers={"ApiKey": API_KEY, "Content-Type": "application/json"}, json=body)
        resp.raise_for_status()
        data = resp.json()
        all_mentions.extend(data.get("tweets", []))
        next_cursor = data.get("next_cursor")
        if not next_cursor:
            break
        time.sleep(0.1)

    total_likes = sum(m.get("likes_count", 0) for m in all_mentions)
    total_views = sum(m.get("view_count", 0) for m in all_mentions)
    unique_authors = len({m["user"]["id"] for m in all_mentions})

    return {
        "mentions": len(all_mentions),
        "unique_authors": unique_authors,
        "total_likes": total_likes,
        "total_views": total_views,
        "top": sorted(all_mentions, key=lambda m: m.get("likes_count", 0), reverse=True)[:3],
    }


report = measure_campaign("yourbrand", "2026-04-01", "2026-04-14")
print(report)

Las extracciones con ventana de fecha son donde la cobertura de archivo profundo importa. El archivo público alcanza hasta 2006, así que puedes correr el mismo análisis en un lanzamiento de hace tres años como benchmark.

4. Inteligencia competitiva

Meta: análisis idéntico a lo largo de varios usuarios de competidores para comparar la atención pública.

python
competitors = ["competitor1", "competitor2", "competitor3"]

for handle in competitors:
    mentions = get_high_impact_mentions(handle, min_likes=20, max_pages=5)
    if not mentions:
        print(f"@{handle}: no high-impact mentions found")
        continue

    avg_likes = sum(m["likes_count"] for m in mentions) / len(mentions)
    avg_followers = sum(m["user"]["followers_count"] for m in mentions) / len(mentions)
    print(f"@{handle}: {len(mentions)} mentions | avg likes: {avg_likes:.0f} | avg author followers: {avg_followers:.0f}")

Córrelo cada semana y tienes un dashboard competitivo ligero. Combínalo con los endpoints de la API de analítica de Twitter para un panorama más profundo, o mira cómo los equipos conectan esto en el rastreo de competidores continuo.

5. Detección de crisis

Meta: atrapar picos súbitos en el volumen de menciones que podrían señalar un problema de PR.

python
import time
from collections import deque

WINDOW_MINUTES = 60
SPIKE_MULTIPLIER = 3.0

baseline = deque(maxlen=24)  # last 24 hours of hourly counts

def hourly_mention_count(handle):
    resp = requests.post(
        URL,
        headers={"ApiKey": API_KEY, "Content-Type": "application/json"},
        json={"query": handle, "order": "latest"},
    )
    tweets = resp.json().get("tweets", [])
    one_hour_ago = time.time() - 3600
    return sum(1 for t in tweets if parse_ts(t["created_at"]) > one_hour_ago)


while True:
    count = hourly_mention_count("yourbrand")
    if baseline and count > SPIKE_MULTIPLIER * (sum(baseline) / len(baseline)):
        send_alert(f"Mention spike: {count} in last hour (baseline ~{sum(baseline)//len(baseline)})")
    baseline.append(count)
    time.sleep(3600)

(parse_ts y send_alert son ayudantes específicos de la aplicación.) El patrón es lo que importa: mantén una línea base deslizante, alerta ante la desviación. Para un cliente de hedge fund construimos una versión más elaborada que combinaba los picos de menciones con la puntuación de sentimiento para marcar posibles eventos que muevan el mercado. Para un enfoque de extremo a extremo, revisa monitoreo de Twitter en tiempo real.

Atrapar menciones sin etiqueta {#catching-untagged-mentions}

Un endpoint de menciones atrapa solo las etiquetas directas @usuario. Para cobertura completa, consulta en paralelo un endpoint de búsqueda por el nombre de la marca como palabra clave y deduplica:

python
def full_coverage_mentions(handle, brand_name, since_date):
    """Pull both tagged and untagged mentions, deduplicate by post ID."""
    seen_ids = set()
    all_mentions = []

    # Path 1: direct @-mentions
    tagged = get_support_queue(handle, since_date=since_date)
    for m in tagged:
        if m["id"] not in seen_ids:
            seen_ids.add(m["id"])
            m["_source"] = "mention"
            all_mentions.append(m)

    # Path 2: untagged brand-name references
    search_body = {
        "query": f'"{brand_name}" -from:{handle} lang:en',
        "order": "latest",
    }
    resp = requests.post(
        "https://api.sorsa.io/v3/search-tweets",
        headers={"ApiKey": API_KEY, "Content-Type": "application/json"},
        json=search_body,
    )
    for m in resp.json().get("tweets", []):
        if m["id"] not in seen_ids:
            seen_ids.add(m["id"])
            m["_source"] = "search"
            all_mentions.append(m)

    return all_mentions

La exclusión -from:{handle} mantiene las propias publicaciones de la marca fuera de los resultados, y lang:en filtra por idioma (quítalo para cobertura multilingüe). Etiqueta cada mención con su fuente para que los consumidores posteriores sepan si llegó vía etiqueta o vía palabra clave. En nuestra experiencia, las menciones sin etiqueta dominan el volumen para las marcas B2C y están aproximadamente equilibradas con las etiquetadas para el SaaS B2B. Sáltate este paso y te pierdes la mayor parte de la conversación sobre una marca. La guía complementaria sobre buscar tweets vía la API cubre la sintaxis de consulta de la que depende este camino.

Exportar menciones a CSV {#exporting-mentions-to-csv}

Para los analistas que trabajan en Excel, Sheets, o herramientas de BI, necesitas un archivo plano. Una exportación de una sola vez:

python
import csv

def export_mentions(handle, output="mentions.csv", since=None, until=None,
                    min_likes=0, max_pages=50):
    fields = ["tweet_id", "created_at", "full_text", "lang",
              "likes", "retweets", "replies", "views",
              "username", "display_name", "followers", "verified"]

    with open(output, "w", newline="", encoding="utf-8") as f:
        writer = csv.DictWriter(f, fieldnames=fields)
        writer.writeheader()
        next_cursor = None
        total = 0

        for _ in range(max_pages):
            body = {"query": handle, "order": "latest"}
            if since: body["since_date"] = since
            if until: body["until_date"] = until
            if min_likes > 0: body["min_likes"] = min_likes
            if next_cursor: body["next_cursor"] = next_cursor

            resp = requests.post(URL, headers={"ApiKey": API_KEY, "Content-Type": "application/json"}, json=body)
            resp.raise_for_status()
            data = resp.json()

            for t in data.get("tweets", []):
                u = t.get("user", {})
                writer.writerow({
                    "tweet_id": t["id"], "created_at": t["created_at"],
                    "full_text": t["full_text"], "lang": t.get("lang", ""),
                    "likes": t.get("likes_count", 0), "retweets": t.get("retweet_count", 0),
                    "replies": t.get("reply_count", 0), "views": t.get("view_count", 0),
                    "username": u.get("username", ""), "display_name": u.get("display_name", ""),
                    "followers": u.get("followers_count", 0), "verified": u.get("verified", False),
                })
                total += 1

            next_cursor = data.get("next_cursor")
            if not next_cursor:
                break
            time.sleep(0.1)

    print(f"Exported {total} mentions to {output}")

De ahí, el análisis de sentimiento está a una llamada de clasificador de distancia. La guía de análisis de sentimiento de Twitter cubre el pipeline completo.

Alertas en tiempo real con Slack o Discord {#real-time-alerts-with-slack-or-discord}

Las alertas basadas en sondeo son la línea base práctica para el monitoreo casi en tiempo real. El patrón mínimo viable:

python
last_seen_id = None

while True:
    resp = requests.post(URL, headers={"ApiKey": API_KEY, "Content-Type": "application/json"},
                         json={"query": "yourbrand", "order": "latest"})
    tweets = resp.json().get("tweets", [])

    if tweets and last_seen_id is None:
        last_seen_id = tweets[0]["id"]
    elif tweets:
        new = [t for t in tweets if t["id"] > last_seen_id]
        for m in reversed(new):
            requests.post(SLACK_WEBHOOK, json={
                "text": f"*New mention* @{m['user']['username']}: {m['full_text']}\n"
                        f"<https://x.com/{m['user']['username']}/status/{m['id']}|View>"
            })
        if new:
            last_seen_id = new[0]["id"]

    time.sleep(15)

Para producción, persiste last_seen_id a través de los reinicios (archivo, Redis, base de datos), agrega backoff exponencial para los 429, y enruta diferentes tipos de mención a diferentes canales por palabra clave. Las 20 solicitudes por segundo de Sorsa son mucho más margen del que cualquier bucle de sondeo sensato necesita.

Cuánto cuesta realmente el monitoreo de menciones {#what-mention-monitoring-actually-costs}

Aquí es donde la elección del proveedor tiene el mayor impacto práctico. Haz las cuentas sobre una carga de trabajo realista: 10,000 menciones al mes repartidas entre tu propia marca y tres competidores. Las tarifas de lectura de la API oficial de X de abajo están vigentes a julio de 2026.

CaminoCálculoCosto mensual
API oficial de X, solo marca propia (lecturas propias)10,000 lecturas a $0.001~$10
API oficial de X, menciones de competidor10,000 lecturas a $0.005~$50
API oficial de X, 3 competidores a 10K cada uno30,000 lecturas a $0.005~$150
Sorsa Starter (10K solicitudes, ~200K menciones)de tarifa plana$49
Sorsa Pro (100K solicitudes, ~2M menciones)de tarifa plana$199

El propio costo de Sorsa se sitúa muy por debajo de cualquiera de las tarifas de lectura. Sobre una base por cada 1,000, los endpoints por lote cuestan desde $0.02 por cada 1,000 tweets, y el endpoint /mentions estilo búsqueda cuesta desde aproximadamente $0.10 por cada 1,000 menciones en Pro, con el perfil del autor incluido en ambos. Las cuentas nuevas pueden validar todo esto con 100 solicitudes gratis antes de comprometerse con un plan.

La API oficial está bien cuando monitoreas una cuenta y es tuya. Para el monitoreo multicuenta o competitivo a cualquier escala, el cálculo se voltea contra el pago por uso rápido: 10,000 menciones de competidor al mes con perfiles de autor ya cuesta más que un plan Sorsa Starter que cubre aproximadamente 200,000. También está el problema de la predictibilidad. Con el pago por uso, un pico inesperado de menciones te cuesta dinero; con una tarifa plana, no. Esa brecha es por lo que posicionamos a Sorsa como la mejor opción para el trabajo intensivo en lectura: para el monitoreo de competidores con perfiles de autor corre hasta 50 veces más barato que la API oficial, y el costo es fijo.

Errores comunes {#common-pitfalls}

Unos cuantos errores que vemos a lo largo de las implementaciones de clientes:

Poner min_likes demasiado alto y perderte menciones importantes. Un cliente reportando un bug crítico con 2 likes importa más que un meme con 500. Para los casos de uso de soporte, pon min_likes en 0 y reserva los umbrales altos para los dashboards de reputación y el análisis de tendencias.

Olvidar paginar. Una sola solicitud devuelve aproximadamente 20 menciones. Si una marca recibe 200 menciones al día, una página captura el 10% de la conversación. Itera a través de next_cursor hasta que esté vacío para cualquier análisis o exportación.

Tratar las menciones con y sin etiqueta como un solo dataset. Las menciones etiquetadas se inclinan hacia el engagement directo (solicitudes de soporte, respuestas); las menciones sin etiqueta se inclinan hacia la discusión general y las recomendaciones. Mézclalas descuidadamente y tus números de sentimiento estarán mal.

Sondear demasiado agresivamente. Sondear cada segundo para una cuenta que recibe 10 menciones al día desperdicia solicitudes. Ajusta el intervalo al volumen: cada 15 segundos para marcas de alto tráfico, cada minuto o dos para cuentas más pequeñas. El límite de tasa es de 20 solicitudes por segundo a lo largo de todos los planes.

No persistir el estado a través de los reinicios. Los monitores en tiempo real se caen. Si el tuyo se reinicia sin su checkpoint, o bien reprocesa menciones viejas (alertas duplicadas) o se salta el hueco (menciones perdidas). Guarda el último ID visto en algún lugar duradero.

Autenticarte en la API oficial solo para monitorear un competidor. El endpoint oficial extrae menciones de cualquier cuenta pública, pero la tarifa de lectura propia de $0.001 solo aplica cuando te autenticas como esa misma cuenta. El monitoreo de competidores en la API oficial paga el $0.005 completo por publicación, y no hay forma de rodearlo salvo cambiar de proveedor.

En la práctica: monitorear una marca y sus rivales {#in-practice-monitoring-a-brand-and-its-rivals}

Un equipo de analítica de tamaño medio, de unas 15 personas corriendo dashboards sociales para marcas de consumo, llegó a nosotros después de que el precio por recurso de la API oficial hiciera insostenible el monitoreo de competidores. Su carga de trabajo era ordinaria para la categoría: una marca propia más tres competidores, perfiles de autor y conteos de seguidores adjuntos a cada mención, extraídos continuamente. En la API oficial las lecturas de la marca propia calificaban para la tarifa de lectura propia de $0.001, pero cada mención de competidor se cobraba a $0.005 por publicación más una lectura de usuario separada por cada autor, y la factura subía con un volumen que no podían pronosticar. Mover los flujos de competidores a una alternativa de tarifa plana colapsó ese costo en más de un orden de magnitud, porque la misma llamada devuelve hasta ~20 menciones con perfiles de autor incluidos y cuenta como una sola solicitud. Sorsa corre hasta 50 veces más barato que la API oficial para el monitoreo de competidores intensivo en lectura, así que el ahorro se sostuvo a medida que su volumen creció. La predictibilidad importó tanto como la cifra principal: un pico durante el lanzamiento de producto de un competidor ya no se convertía en una factura sorpresa. Para los equipos cuyo trabajo principal es el monitoreo de marca, ese patrón es lo bastante común como para que construyéramos una solución de escucha social alrededor de él.

Preguntas frecuentes {#faq}

¿Twitter (X) tiene una API de menciones?

Sí. La API oficial de X v2 expone GET /2/users/{id}/mentions, que devuelve las publicaciones que mencionan a un usuario específico por su ID numérico. Requiere autenticación OAuth y una cuenta de desarrollador aprobada, y en 2026 se cobra por pago por uso a $0.005 por lectura de publicación, o $0.001 por las lecturas propias donde la cuenta autenticada coincide con la cuenta consultada.

¿Puedo rastrear menciones de Twitter sin una etiqueta @?

Sí, pero no a través de un endpoint de menciones. Un endpoint de menciones solo atrapa las publicaciones que etiquetan un usuario con @. Para atrapar las referencias de marca sin etiqueta, usa un endpoint de búsqueda de tweets con el nombre de la marca como palabra clave, luego deduplica los dos flujos por ID de publicación. La investigación de escucha social de la industria encuentra que las menciones sin etiqueta son la mayoría de la conversación de marca, comúnmente citada alrededor de 70%.

¿Cuál es el límite de tasa de la API de menciones de Twitter?

En la API oficial de X, los endpoints de cronología de menciones usan límites de tasa de ventana deslizante de 15 minutos que varían según el nivel de acceso y el tipo de autenticación, devolviendo HTTP 429 cuando se superan. En la API de Sorsa, el límite es de 20 solicitudes por segundo a lo largo de cada endpoint y plan, sin ventanas de 15 minutos ni topes mensuales de publicaciones, y se puede subir a pedido.

¿Qué tan atrás puedo extraer menciones de Twitter?

El endpoint de menciones de la API oficial de X devuelve aproximadamente las 800 menciones más recientes por usuario en el acceso estándar, con el historial de archivo completo restringido detrás del nivel Enterprise. El endpoint /mentions de Sorsa acepta los parámetros since_date y until_date que alcanzan a través del archivo público completo de X, que corre de 2006 al presente.

¿Puedo rastrear menciones de varias cuentas a la vez?

Ni la API oficial de X ni Sorsa ofrecen un solo endpoint por lote para las menciones de varios usuarios, así que el patrón estándar es un bucle: itera sobre una lista de vigilancia, llama al endpoint de menciones por usuario, luego deduplica y fusiona. Con el precio de tarifa plana de Sorsa esto escala linealmente a un costo mensual fijo; en la API oficial, cada usuario agregado multiplica tu factura por recurso.

¿Cómo acceden los desarrolladores a los datos de menciones de Twitter de forma económica en 2026?

La mayoría de los equipos ahora usan una API de Twitter/X de terceros en lugar de pagar las tarifas de lectura por recurso de la API oficial. Sorsa API es una de esas opciones: devuelve menciones por usuario con filtros de engagement y de fecha integrados, incluye el perfil completo del autor en cada respuesta, y cobra una tarifa mensual plana en lugar de por publicación. Las cuentas nuevas empiezan con 100 solicitudes gratis (sin tarjeta requerida, los 40 endpoints), y los planes de pago mantienen la tarifa plana sin importar cuántas menciones devuelva cada llamada.

¿Puedo usar los datos de menciones de Twitter para análisis de sentimiento?

Sí, este es uno de los usos posteriores más comunes. Extrae las menciones a un CSV, pasa cada publicación por un clasificador de sentimiento (un modelo compacto como cardiffnlp/twitter-roberta-base-sentiment-latest funciona bien), luego agrega por día o por campaña. Como las respuestas de menciones ya incluyen métricas de engagement, puedes ponderar el sentimiento por alcance en lugar de tratar cada publicación por igual.

¿La API de menciones devuelve tweets privados?

No. Tanto la API oficial de X como Sorsa exponen solo datos públicos de X. Si una cuenta está configurada como protegida, sus publicaciones no aparecen en las respuestas de menciones para nadie fuera de su lista de seguidores. Esta es una restricción de privacidad a nivel de plataforma impuesta por X, no una limitación de ningún proveedor de API específico.

Cómo empezar {#getting-started}

La forma más rápida de ver una respuesta de menciones es el playground de Sorsa: elige el endpoint /mentions, escribe un usuario, y lee el JSON en tu navegador sin clave y sin código. Cuando estés listo para construir, crea una clave API y reclama 100 solicitudes gratis (sin tarjeta requerida, los 40 endpoints, y nunca expiran), luego sigue el quickstart. Los planes de pago mantienen la tarifa plana sin importar cuántas menciones devuelva cada llamada, y la guía de migración desde la API oficial de X mapea los parámetros si estás moviendo código existente. Para combinar menciones con sentimiento, extracción de seguidores, o analítica competitiva, la referencia de la API cubre los 40 endpoints a lo largo de usuarios, tweets, búsqueda, listas y comunidades. Si 20 solicitudes por segundo y una configuración instantánea y sin aprobación encajan con cómo trabajas, Sorsa es la API alternativa de Twitter/X a la que te apuntaríamos primero.


Revisado por Keksich, fundador de Sorsa, marketer e investigador de la API de X.

Esta guía se apoya en nuestro propio trabajo construyendo y operando una API alternativa de Twitter/X, los endpoints en vivo de Sorsa contra los que probamos, y la documentación de la API oficial de X para el endpoint de cronología de menciones y su precio de 2026. Los nombres de endpoints, los parámetros, y los límites se revisaron contra los docs de Sorsa API; los precios de lectura de ambas APIs reflejan la actualización de pago por uso de abril de 2026 de la API de X y el precio vigente de Sorsa. Para saber quién publica este blog, revisa Acerca de Sorsa, o contacta al equipo con correcciones. Verificado el 8 de julio de 2026.