Visualizador de Twitter: hay decenas y casi ninguno sirve a un agente de IA

Visualizador de Twitter: hay decenas y casi ninguno sirve a un agente de IA
Unif SEO team
Unif SEO team

Actualizado

Probamos con curl ocho visores de Twitter populares como lo haría un agente AI. La mayoría bloquea scripts u oculta datos tras JavaScript. Esto funciona.

En resumen: un visualizador de Twitter es una página que muestra un perfil público de X, una publicación o la lista de tendencias sin necesidad de tener cuenta en X. Hay decenas y, para una persona con un navegador, casi todos cumplen. Nosotros fuimos a buscar ocho de los más conocidos como lo haría un agente de IA: con curl, sin cookies, el 7 de octubre de 2026. Dos devolvieron un desafío de Cloudflare, dos instancias de Nitter estaban caídas o bloqueadas por motivos legales, tres entregaron un cascarón de JavaScript sin un solo dato dentro y uno, FxTwitter, respondió con JSON, aunque solo para publicaciones y usuarios individuales. Ninguna de las páginas de los visualizadores en sí pudo ser leída por un script. Un visualizador de Twitter pensado para agentes pone la solicitud en la URL, devuelve JSON o Markdown desde esa misma URL, imprime su límite de uso en los encabezados y comparte los nombres de campo con una API con medición de uso. Así está construida la serie Visualizador de Twitter de UnifAPI, y todas sus páginas son gratis, sin iniciar sesión, sin necesidad de cuenta ni clave de API, con límite por visitante de 20 consultas cada 10 minutos.

"Visualizador de Twitter" es una de las búsquedas más frecuentes en torno a X, y llega escrita de mil maneras: "visualizador x", "visualizador de tweets", "ver perfil twitter", "ver twitter sin cuenta", "ver x anónimo", el término en inglés "twitter viewer" o "x viewer" que mucha gente hispanohablante también teclea, y versiones en otros idiomas, del coreano "x 뷰어" al japonés "twitterビューア". Detrás de todas hay la misma intención: ver cómo luce una cuenta o una publicación sin iniciar sesión.

Lo que ha cambiado es quién escribe esas consultas. Una parte cada vez mayor ni siquiera se teclea. Viene de un agente al que alguien le pidió "revisa esta cuenta", de un script que actualiza cada noche las cifras de engagement o de un flujo de investigación que se abre en abanico sobre cincuenta handles. A esos llamantes no les importa un banner bonito. Les importa si un programa puede direccionar la página, leerla y fiarse de ella. Este artículo trata de esa brecha y de lo que probamos antes de construir nuestro propio visualizador.

Qué hace un visualizador de Twitter y quién lo usa

Un visualizador de Twitter lee los datos públicos de X y los muestra en una página que se abre sin cuenta. Los visualizadores de perfiles sirven para ver un perfil de Twitter: la bio, el número de seguidores y las publicaciones recientes. Los visualizadores de tweets muestran una publicación completa con sus medios y métricas. Los de tendencias listan lo que es tendencia en una ubicación. Algunos sitios agrupan varias de estas funciones detrás de un único buscador.

La audiencia tiene dos mitades, y cada una necesita algo distinto:

LlamanteQué necesita de un visualizador
Una persona en un navegadorUna página rápida, un diseño legible y una forma de llegar al original en X.
Un agente, script o modeloUna URL que describa por completo la solicitud, un cuerpo legible por máquinas y límites explícitos.

La mayoría de los visualizadores se diseñaron solo para la primera mitad. En 2022 tenía sentido. Hoy es un problema, porque la segunda mitad es la que genera el tráfico recurrente, y porque es la que convierte un visualizador en la fuente de datos de un flujo de trabajo completo.

Probamos ocho visualizadores de Twitter como lo haría un agente

El método es simple a propósito, porque es exactamente lo que hace un agente en su primer intento. Para cada visualizador pedimos la página del perfil público de @NASA (o el equivalente más cercano que ofrece el sitio) con curl, user agent por defecto, sin cookies y sin JavaScript. Registramos el estado HTTP, si los datos del perfil venían en la primera respuesta, si existía alguna alternativa en JSON, Markdown o RSS, y si el sitio documenta un camino para agentes. Cuando un sitio bloqueaba el user agent por defecto, repetimos con una cadena de user agent de Chrome.

VisualizadorQué obtuvo curlDatos en la primera respuestaJSON / Markdown / RSSCamino documentado para agentes
Nitter (nitter.net)Sin respuestaNoRSS, cuando hay una instancia activaNinguno
xcancel.com (instancia Nitter)HTTP 451, no disponible por motivos legales, RSS incluidoNoNoNinguno
SotweHTTP 403, desafío "Just a moment" de CloudflareNoNoNinguno
TwstalkerHTTP 403, desafío "Just a moment" de CloudflareNoNoNinguno
twitterviewer.netHTTP 200, un cascarón de JavaScript de 5 KBNoNo; su llms.txt dice que las páginas no son feedsUn servidor MCP detrás de un registro OAuth 2.1
Visualizador de TwitterShotsHTTP 200, página basada en formulario; /twitter-viewer/NASA 404NoNoUn llms.txt, sin endpoint para máquinas
SnaplyticsHTTP 200, página de inicio; el visualizador redirige a un formularioNoNoNinguno
FxTwitter (api.fxtwitter.com)HTTP 200, JSONSíJSON para una publicación o un usuarioLa propia URL; sin encabezados de límite de uso, sin búsqueda ni tendencias
x.com en síHTTP 200, una aplicación JavaScript de 147 KBNoNoLa API oficial, con clave y plan

Tres cosas saltan a la vista.

Primero, la era de Nitter se acabó para la automatización. Nitter dejó de funcionar en enero de 2024, cuando X eliminó las cuentas de invitado; volvió en 2025 funcionando sobre cuentas reales, y en agosto de 2026 el proyecto y sus instancias públicas más grandes recibieron cartas de cese y desistimiento de X Corp. El día de la prueba, la instancia más grande devolvía HTTP 451 en todas las rutas, RSS incluido. Un flujo de trabajo montado sobre el RSS de Nitter se queda sin salida.

Segundo, los dos visualizadores que mejor posicionan en las búsquedas de personas, Sotwe y Twstalker, están detrás de un desafío anti-bots de Cloudflare para cualquier cliente que no sea un navegador. Es una decisión razonable para un sitio cuya única audiencia son personas, pero significa que un agente recibe un 403 y una página HTML que dice "Just a moment".

Tercero, los sitios que sí piensan en los agentes lo hacen por un costado. twitterviewer.net publica un llms.txt que dice sin rodeos que sus páginas de perfil y de tweet son interfaces para navegador, no feeds rastreables, y remite a los agentes a un servidor MCP que exige registro OAuth. FxTwitter, que existe para arreglar las vistas previas de enlaces, es el único que responde a una URL simple con JSON, y cubre publicaciones individuales y registros de usuario, no búsqueda, respuestas, muros de medios, tendencias ni seguidores.

Así que el resumen honesto no es "ningún visualizador sirve a los agentes". Es "ningún visualizador sirve a los agentes desde la misma URL que usa una persona, y los que los atienden de algún modo cubren una fracción mínima de X".

Siete formas en que los visualizadores de Twitter fallan a los agentes

La tabla anterior son los datos de una mañana. El patrón que hay detrás se repite en toda la categoría, y vale la pena nombrar cada fallo porque cada uno tiene un arreglo distinto.

#FalloCómo se vePor qué rompe la automatización
1Sin URL de enlace directoEl handle se escribe en un formulario; la URL del resultado es la misma que la de la página vacía.Un agente no puede construir la solicitud. Tiene que manejar un navegador y rellenar un formulario.
2Solo HTMLNo hay JSON, ni Markdown, ni una alternativa en texto plano.El modelo tiene que raspar un diseño que nunca estuvo pensado para que lo leyera un programa.
3Renderizado por JavaScriptEl primer byte es un cascarón vacío; los datos llegan con una consulta desde el cliente.curl no obtiene nada. La navegación headless es lenta y frágil.
4Muro anti-botsAparece un CAPTCHA o un desafío de JavaScript para cualquier cliente que no sea un navegador.Los scripts quedan bloqueados de entrada; un agente no puede resolver un desafío.
5Límites de uso silenciososNada en la respuesta dice cuántas solicitudes se permiten ni cuándo se reinicia la ventana.El agente descubre el límite cuando lo bloquean, y después no sabe cuándo reintentar.
6Nombres de campo inestablesLas cifras viven en etiquetas <span> cuyas clases cambian con cada rediseño.Un parser que hoy funciona falla el mes que viene, en silencio.
7Callejón sin salida a escalaEl visualizador no lleva a ninguna API documentada y con medición de uso que tenga los mismos campos.Los equipos terminan construyendo un scraper sobre una página hecha para una persona.

Los fallos 1 a 3 explican por qué "twitter viewer API" y "twitter viewer json" son búsquedas por derecho propio. La gente encuentra un visualizador que le funciona a la vista y luego descubre que no hay manera de llamarlo.

Cómo es un visualizador de Twitter pensado para agentes

Si das la vuelta a los siete fallos obtienes una especificación breve. Un visualizador pensado para agentes debería:

  1. Poner la solicitud en la URL. ?q=<handle> en un visualizador de perfiles, ?q=<URL o ID de la publicación> en un visualizador de tweets. La URL por sí sola reproduce la vista, así que se puede registrar, cachear, compartir y reintentar.
  2. Devolver un formato para máquinas desde esa misma URL. ?format=json para programas, ?format=md o Accept: text/markdown para un modelo que leerá el resultado como texto. No un producto aparte, no un flujo de registro.
  3. Servir los datos en la primera solicitud. Sin cascarón vacío ni segunda consulta que haya que descubrir.
  4. Tratar a los clientes que no son navegadores como algo normal. Un script y un navegador reciben la misma respuesta. El control de abuso corre en el borde de la red y se ajusta por volumen, no por tipo de cliente.
  5. Declarar sus límites. X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset en cada respuesta. Un 429 trae Retry-After e indica dónde se puede levantar el tope.
  6. Mantener los nombres de campo estables y documentados. profile.followers sigue siendo profile.followers.
  7. Llevar a algún lado. Cuando una consulta se convierte en quinientas, los mismos nombres de campo deberían estar disponibles en una API con medición de uso y una clave, para que el código no cambie.

Así está construida la serie gratuita de visualizadores de X de UnifAPI. Cada página es una capa fina sobre un endpoint gratuito bajo /tools/x/, de modo que el navegador y el agente leen exactamente el mismo registro, y ese registro tiene la misma forma que el de la API de X / Twitter de pago.

Cómo encuentra un agente un visualizador de Twitter, para empezar

La descubribilidad para agentes es un problema aparte, y no es lo mismo que posicionar para "visualizador de twitter".

Cuando una persona le pide a un asistente que "mire las publicaciones recientes de @NASA", el asistente suele probar primero https://x.com/NASA y recibe una aplicación JavaScript sin datos dentro. Su siguiente paso es una búsqueda web, y las consultas que escribe no son las que teclea una persona. Son enunciados de un problema. Por nuestra experiencia construyendo y probando agentes sobre datos públicos, se parecen a estas:

  • view x profile without login json
  • get tweet by url as json no api key
  • x.com returns empty page curl how to read profile
  • twitter trends api free no key
  • nitter alternative api 2026
  • fetch twitter replies for a tweet id

Las páginas que ganan esas consultas comparten algunos rasgos. Ponen el patrón literal de la URL en el texto, no detrás de un botón. Muestran un ejemplo con curl y una respuesta de muestra. Usan las palabras que un agente está rastreando: JSON, Markdown, sin clave de API, límite de uso, Retry-After. Publican un llms.txt y, a ser posible, una alternativa en Markdown de cada página, para que un modelo pueda leerlo todo en una sola solicitud. Y dicen lo que la herramienta no hace, porque un agente que conoce el límite deja de gastar llamadas en cuentas protegidas.

Eso mismo aplicamos a las páginas de los visualizadores. Cada visualizador de X en UnifAPI declara su endpoint, sus parámetros y su límite en el primer párrafo, tiene una alternativa en Markdown y figura en el llms.txt del sitio. No se trata de hacer trampa; se trata de responder la pregunta del agente con el vocabulario del agente, en la página donde aterriza.

Llamar a un visualizador de Twitter desde la línea de comandos

Cada visualizador de la serie tiene una forma de URL y una forma de endpoint. Ambas son gratuitas, ambas tienen límite de uso por visitante y ambas devuelven el mismo cuerpo.

Un perfil público en JSON:

curl -s "https://unifapi.com/tools/x/profile?handle=nasa" | jq '.profile.followers, .engagementRate'

El mismo perfil en Markdown, que es lo que quieres cuando el resultado va directo al contexto de un modelo:

curl -s -H "Accept: text/markdown" "https://unifapi.com/tools/x-profile-viewer?q=nasa"

Una publicación por su URL:

curl -s "https://unifapi.com/tools/x/post?url=https://x.com/NASA/status/1234567890123456789"

Las respuestas que tiene debajo, las más gustadas primero, y luego la página siguiente:

curl -s "https://unifapi.com/tools/x/replies?id=1234567890123456789&sort=top"
curl -s "https://unifapi.com/tools/x/replies?id=1234567890123456789&sort=top&cursor=<nextCursor>"

Tendencias en vivo de una ubicación, en Markdown:

curl -s "https://unifapi.com/tools/x/trends?location=japan&format=md"

Cada respuesta trae los encabezados de límite de uso, así que un agente bien educado lee X-RateLimit-Remaining y dosifica sus llamadas en lugar de adivinar:

HTTP/2 200
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 17
X-RateLimit-Reset: 1791356400
Content-Type: application/json

Cuando la ventana se agota, el cuerpo del 429 también es JSON y nombra la vía de actualización en lugar de dejar que quien llama tenga que buscarla:

{
  "error": {
    "type": "rate_limited",
    "message": "Free limit of 20 requests per 10 minutes reached. Retry after 412s, or use a UnifAPI workspace key (pay as you go) for uncapped access.",
    "retryAfterSeconds": 412,
    "upgrade": "https://unifapi.com/apis/twitter"
  }
}

Referencia de endpoints

Los nueve visualizadores comparten un mismo sobre. Las listas vuelven como { items, hasMore, nextCursor }; pasa cursor=<nextCursor> para paginar. Todo error es { error: { type, message } } con uno de estos tipos: validation_error, not_found, rate_limited, upstream_error, upstream_unavailable.

EndpointObligatorioOpcionalDevuelve
/tools/x/profilehandle (o q, username)posts (1–10), cursorprofile, engagementRate, página de posts
/tools/x/postid (o url, q)post con author, media, quoted, metrics
/tools/x/mediahandlecursorprofile, página de posts con publicaciones con medios
/tools/x/repliesid (o url)sort=top|recent, cursorpost, página de replies
/tools/x/searchqcursorquery, página de posts; funcionan los operadores de búsqueda de X
/tools/x/trendslocation (slug o WOEID), woeidwoeid, locationSlug, generatedAt, trends[]
/tools/x/communitiesqcursorquery, página de communities
/tools/x/followershandlekind=followers|following, cursorprofile, kind, página de users

Añade format=md a cualquiera de ellos, o envía Accept: text/markdown, para obtener el mismo contenido en Markdown. Cada página de visualizador acepta los mismos parámetros que ?q= más format=, así que /tools/x-profile-viewer?q=nasa&format=json y /tools/x/profile?handle=nasa son la misma solicitud.

La serie completa

Un solo visualizador rara vez basta. Evaluar a un creador exige el perfil, la pestaña de medios y algunos hilos de respuestas. Seguir una noticia exige búsqueda más tendencias. La serie cubre la superficie pública de X en nueve páginas.

VisualizadorEndpoint gratuitoQué lee
Visualizador de Twitterdirige a los demásPega lo que sea; el hub abre la página correcta.
Visualizador de perfiles de Twitter/tools/x/profileBanner, bio, recuentos, publicaciones recientes, tasa de engagement.
Visualizador de publicaciones de Twitter/tools/x/postUna publicación con sus medios, la publicación citada y todas las métricas.
Visualizador de medios de Twitter/tools/x/mediaLas fotos y los videos de una cuenta en una cuadrícula.
Visualizador de respuestas de Twitter/tools/x/repliesLa conversación debajo de una publicación, las principales o las más recientes primero.
Búsqueda avanzada de Twitter/tools/x/searchPublicaciones que coinciden con una consulta, con los operadores de búsqueda de X.
Tendencias de X (Twitter) ahora/tools/x/trendsLo que es tendencia hoy en X en diez ubicaciones.
Buscador de Comunidades de X/tools/x/communitiesComunidades públicas por tema, con el número de miembros.
Visualizador de seguidores de Twitter/tools/x/followersQuién sigue a una cuenta y a quién sigue ella.

La página hub acepta un handle, el enlace de una publicación, un hashtag o una consulta de texto libre, y lo reenvía al visualizador que puede responderla. Para un agente eso significa un único punto de entrada: envía la entrada a /tools/twitter-viewer?q=…&format=json y lee el resultado.

Lo que los visualizadores no harán

Pensado para agentes no significa ilimitado, y tampoco significa privado.

  • Leen solo datos públicos. Las cuentas protegidas muestran su encabezado público y nada más.
  • Tienen límite de uso por visitante: 20 consultas cada 10 minutos, aplicado en el borde de la red e impreso en los encabezados.
  • Nunca inician sesión en X. No interviene ninguna cuenta tuya, y no se escribe, ni se da me gusta, ni se sigue, ni se envía nada.
  • El video se reproduce desde el CDN de X. Nada se vuelve a alojar ni se ofrece para descargar.
  • No sustituyen los términos de X. Usa los registros como usarías cualquier página pública.

Esos límites son también lo que hace que la salida se pueda citar con tranquilidad. Un agente puede señalar un registro público y dejar que el operador decida qué pasa después.

Cuando un visualizador deja de ser suficiente

Los visualizadores gratuitos son para mirar. En el momento en que un flujo de trabajo necesita volumen o garantías, los mismos registros están disponibles a través de la API de X / Twitter de UnifAPI con una clave de workspace. El precio es de pago por uso, sin un plan gratuito que se te quede corto ni una suscripción que dimensionar, y los nombres de campo coinciden con los de los visualizadores, así que el prompt que funcionó contra /tools/x/profile funciona contra la API sin reescribirlo.

Un camino típico:

  1. Una persona prueba el Visualizador de perfiles de Twitter con tres handles.
  2. A un agente se le da la misma URL con ?format=json y se le pide puntuar cincuenta handles durante la noche. Choca con el límite por visitante y lee el 429.
  3. El equipo añade una clave de workspace y traslada el bucle a la API. El código de puntuación no cambia.

Esa continuidad es la razón de construir el visualizador y la API sobre la misma capa de datos.

Preguntas frecuentes

¿Qué es un visualizador de Twitter? Un sitio web que muestra un perfil público de X, una publicación o la lista de tendencias sin pedirte que inicies sesión en X. Lee solo lo que la cuenta ha hecho público. "Visualizador de X" y "visualizador de tweets" son lo mismo con otro nombre.

¿Cuál es el mejor visualizador de Twitter para ver X sin cuenta? Quien busca "ver twitter sin cuenta" o "ver x anónimo" quiere exactamente eso, y para una persona sirve cualquiera de los sitios de arriba que le cargue; se diferencian sobre todo en anuncios y velocidad. Para un script o un agente de IA la pregunta es otra: elige un visualizador que responda a una URL simple con JSON e imprima su límite de uso. El día de la prueba, FxTwitter lo hacía para publicaciones y usuarios individuales, y los visualizadores de UnifAPI lo hacen para perfiles, publicaciones, respuestas, medios, búsqueda, tendencias, Comunidades y seguidores.

¿Existe una alternativa a Nitter que siga funcionando para scripts? No una que se pueda enchufar sin cambios. Las instancias públicas de Nitter están caídas o bloqueadas, y ningún fork usa las mismas rutas. Para leer, usa un visualizador que devuelva Markdown o JSON desde una URL. Para feeds, usa una API que devuelva las mismas publicaciones en JSON y permita paginar con un cursor.

¿Por qué a los agentes de IA les cuesta usar la mayoría de los visualizadores de Twitter? La mayoría pone la solicitud en un formulario en lugar de en la URL, devuelve solo HTML, renderiza los resultados con JavaScript, bloquea a los clientes que no son navegadores y nunca dice cuáles son sus límites de uso. Un agente necesita justo lo contrario en cada punto.

¿Puedo obtener los resultados de un visualizador de Twitter en JSON? En los visualizadores de UnifAPI, sí. Añade format=json a la URL de cualquier visualizador, o llama directamente al endpoint /tools/x/ correspondiente. Añade format=md o envía Accept: text/markdown para recibir Markdown.

¿El visualizador de X gratuito es de verdad gratis? ¿Cuál es el límite? Sí. Cada vista es una consulta real y no cuesta nada, tanto si quieres ver un perfil de X como ver los seguidores de una cuenta de Twitter. Las vistas gratuitas tienen un límite de 20 consultas cada 10 minutos por visitante, los encabezados te dicen cuántas quedan y cuándo se reinicia la ventana, y el acceso sin tope es de pago por uso con una clave de workspace de UnifAPI.

¿Un visualizador de Twitter muestra cuentas privadas o protegidas? No. Una cuenta protegida solo muestra su encabezado público. Los visualizadores leen datos públicos y nunca usan un inicio de sesión de X.

Qué leer a continuación

Visualizador de Twitter - la página hub; pega un handle, un enlace, un hashtag o una consulta.

Flujo de trabajo del visualizador de perfiles de Twitter - la comprobación de cinco minutos para evaluar una cuenta antes de contactar.

Skills pensadas para agentes con datos públicos - cómo envolver las consultas de datos públicos para que un agente pueda usarlas sin supervisión.

API de X / Twitter - la superficie con medición de uso para cuando una consulta se convierte en muchas.