Alternativa a la X API: cuánto cuestan 1000 posts en pago por uso y en EveryInfra
La X API cobra 0,005 USD por post y 0,010 USD por usuario. Con 27 llamadas reales comparamos 1000 posts, seguidores y respuestas, y cuándo X cuesta menos.

La X API ya solo vende la lectura en modalidad de pago por uso. Cada post cuesta 0,005 USD y cada perfil de usuario 0,010 USD, así que 1000 posts cuestan 5 USD (página de precios de X, leída el 9 de noviembre de 2026 a las 00:15, hora de Singapur). Ese mismo día hicimos 27 llamadas reales a EveryInfra con twitter/search y otras 8 capacidades. Nosotros cobramos un precio fijo por llamada, y una búsqueda devuelve hasta 200 posts. En nuestra prueba, 1000 posts de búsqueda por palabra clave costaron 0,0033 USD, más o menos 1/1530 del precio de X. Hay un segundo cambio que pesa todavía más. El 23 de octubre de 2026, X anunció que a partir del 22 de noviembre cobrará 0,010 USD por cada autor que devuelvan las expansiones. En nuestra primera muestra, 200 posts tenían 186 autores distintos. Con esa proporción, 1000 posts con datos del autor pasarán a costar unos 14,30 USD en X, no 5 USD.

Este artículo es para quien busca otra vía que no sea la X API oficial porque un proyecto de solo lectura le sale demasiado caro con la API oficial. Piensa en monitorización de marca, alertas para una redacción, escucha social en salud pública, muestras para investigación o datos para agentes de IA. En nuestro lado, cada cifra sale de llamadas reales hechas el 9 de noviembre de 2026, y guardamos cada respuesta en bruto. En el lado de X usamos solo material público: la documentación para desarrolladores, los anuncios del equipo de X Developer Platform en su foro y el registro de cambios. No abrimos una cuenta de desarrollador en X ni llamamos a la X API. Todas las cifras de X de este artículo son precios de lista multiplicados, no facturas reales.
Ya tenemos un artículo que compara scrapers de tweets por precio por resultado. Allí la X API oficial ocupa solo una sección corta. Aquí le damos la vuelta y ponemos en el centro las reglas de cobro de X: el precio de cada endpoint, la deduplicación de 24 horas, el cambio de las expansiones del 22 de noviembre, el tope mensual, los créditos gratis, los pasos para empezar y MCP. También dejamos claros los casos en los que te conviene quedarte con la API oficial.
Respuesta corta: tabla de costes de una alternativa a la X API
La tabla pone siete tipos de datos de lectura en una misma unidad: 1000 elementos (posts, cuentas o respuestas) o 1000 peticiones (tendencias y búsqueda de un post por ID). La columna de X es el precio público por unidad de docs.x.com multiplicado por 1000. La columna de EveryInfra sale de nuestras llamadas reales: dividimos lo que se nos cobró de verdad (billing.charged_usd en cada respuesta) entre el número de elementos únicos y multiplicamos por 1000.
| Dato | X API por 1000 | EveryInfra por 1000 (medido) | Nuestra capacidad | ¿Se compra lo mismo en los dos lados? |
|---|---|---|---|---|
| Posts de búsqueda por palabra clave | 5,00 USD | 0,00327 USD | twitter/search | Sí; nuestro orden por defecto es por relevancia, ver la prueba 1 |
| Posts con autor (desde el 22 nov) | 14,30 USD | 0,00327 USD | twitter/search | Casi; 2 de nuestras 9 búsquedas no traían campos del autor |
| Posts de una cuenta | 5,00 USD | 0,00278 USD | twitter/user_posts | Sí; nosotros damos hasta 200, X llega hasta 3200 hacia atrás |
| Perfiles, uno por llamada | 10,00 USD | 0,556 USD | twitter/profile | Sí |
| Perfiles por ID en lote (sin seguidores) | 10,00 USD | 503 en 3 intentos, sin medir (estimación de catálogo 0,0403 USD) | twitter/profiles_by_ids | No; el nuestro no trae biografía ni seguidores |
| Lista de seguidores | 10,00 USD | 0,000278 USD | twitter/followers_list | No; X da la lista completa, nosotros una muestra de seguidores visibles |
| Respuestas a un post | 5,00 USD | 0,0115 USD | twitter/comments | No; damos hasta 50 y no hay paginación |
| Tendencias (por 1000 peticiones) | 10,00 USD | 0,556 USD | twitter/trending | Sí |
| Un post por ID (por 1000 posts) | 5,00 USD | 0,556 USD | twitter/post | Sí; X admite 100 ID por llamada |
Lee la tabla con tres ideas en mente. Primero, las diferencias más grandes salen de las páginas llenas. Una búsqueda o una línea de tiempo devuelve hasta 200 posts, y una llamada de seguidores hasta 2000 cuentas. Cuanto más llena va la página, más se reparte el precio de la llamada. Cuando una petición solo puede devolver un objeto, como un perfil o un post, la diferencia baja a entre 9 y 18 veces. Segundo, la fila de posts con autor usa las reglas de X que empiezan el 22 de noviembre, con la proporción de autores de nuestra primera búsqueda (186 autores distintos en 200 posts). Si en tu búsqueda publican muchas veces las mismas cuentas, esa fila se acerca a 5 USD. Tercero, X tiene una regla que nosotros no tenemos: cobra cada objeto una sola vez por día UTC, aunque lo leas muchas veces. Para una tarea que repite la misma consulta y casi siempre ve posts viejos, la tabla exagera la diferencia. La sección de deduplicación de más abajo explica cuándo sale más barato X.
Cómo factura hoy la X API: tarifas de pago por uso
X lanzó el pago por uso para su API el 6 de febrero de 2026. Compras créditos por adelantado y cada llamada descuenta créditos según el endpoint. El 21 de mayo anunció que los antiguos planes Basic pasarían a pago por uso después del 1 de junio, cada cuenta en su fecha de facturación. Al migrar, a los usuarios de Basic mensual se les cobra un crédito inicial de 200 USD, con un tope de gasto por defecto de 400 USD por ciclo. El 14 de agosto anunció lo mismo para Pro después del 1 de septiembre: crédito inicial de 5000 USD y tope de gasto por defecto de 10.000 USD. Hoy, el pago por uso es la única opción de autoservicio para desarrolladores nuevos. Si necesitas más volumen, toca rellenar el formulario de interés de Enterprise, y ese precio no es público.
La captura muestra la parte de la página de precios llamada «Read operations». La abrimos el 9 de noviembre de 2026 a las 00:20, hora de Singapur, en un navegador headless (sin interfaz gráfica). El recuadro verde azulado marca los precios de lectura y la nota del tope de 3 millones de posts leídos al mes. Todas las cuentas de X de este artículo salen de ese recuadro.

| Recurso o acción de X | Precio unitario | Unidad de cobro | Qué significa para un proyecto de solo lectura |
|---|---|---|---|
| Posts: Read | 0,005 USD | cada post devuelto | Lo usan la búsqueda, las líneas de tiempo, la búsqueda por ID y el flujo filtrado |
| User: Read | 0,010 USD | cada usuario devuelto | Perfiles y, desde el 22 nov, autores por expansión |
| Following/Followers: Read | 0,010 USD | cada cuenta devuelta | Listas de seguidores y seguidos |
| List / Space / Community / Note: Read | 0,005 USD | cada objeto | Listas, Spaces, Comunidades y Notas de la Comunidad |
| Like / Mute / Block: Read | 0,001 USD | cada objeto | Usuarios que dieron me gusta y listas parecidas |
| Owned Reads | 0,001 USD | cada objeto | Desde el 20 abr 2026, solo cuando el dueño de la app lee sus propios datos |
| Counts: Recent / All | 0,005 / 0,010 USD | cada petición | Recuento de posts sin los posts |
| Trends | 0,010 USD | cada petición | Tendencias |
| Post: Create | 0,015 USD | cada petición | Un post normal |
| Post: Create (con URL) | 0,200 USD | cada petición | Un post con enlace |
Hay dos detalles de esta tabla que se pasan por alto con facilidad. El primero: X cobra la lectura por cada objeto devuelto. Tu gasto en X crece en proporción directa al número de elementos, y una página llena no abarata cada elemento. La búsqueda reciente devuelve como máximo 100 posts por página y la búsqueda de archivo completo como máximo 500. El segundo: la propia página avisa de que los precios pueden cambiar y de que la Developer Console muestra las tarifas vigentes. El cambio del 20 de abril subió el post normal de 0,01 USD a 0,015 USD y fijó los posts con enlace en 0,20 USD (anuncio del 16 de abril). Si vas justo de presupuesto, vuelve a leer la página de precios cada mes.
Desde el 22 de noviembre, X cobra los objetos de las expansiones
La X API v2 tiene una función llamada expansiones. Si añades expansions=author_id a una petición de posts, la parte includes de la respuesta trae el objeto completo del autor y te ahorras una segunda consulta de usuario (documentación de expansiones). Hasta el 21 de noviembre, esos objetos extra no cuentan en el consumo. En su anuncio del 23 de octubre, el equipo de X Developer Platform escribió que desde el 22 de noviembre los posts, usuarios, medios, encuestas y lugares que lleguen por expansiones se cobrarán a la tarifa normal de cada recurso: 0,005 USD por post, 0,010 USD por usuario, 0,005 USD por medio, 0,005 USD por encuesta y 0,005 USD por lugar. El equipo añadió que no es un modelo de precios nuevo, pero que un uso intenso de las expansiones puede cambiar tu gasto.
Este cambio golpea fuerte a los proyectos de monitorización, porque casi nadie quiere el texto de un post sin su autor. Usamos nuestra primera búsqueda para estimar el efecto. twitter/search con «x api pricing» devolvió 200 posts de 186 autores distintos (contados por author_id). Imagina que sacas esos mismos 200 posts del endpoint de búsqueda de X con la expansión author_id después del 22 de noviembre. La factura sería 200 × 0,005 + 186 × 0,010 = 2,86 USD. Eso son unos 14,30 USD por cada 1000 posts, 2,86 veces los 5 USD de antes. Si además expandes attachments.media_keys, suma 0,005 USD por cada medio; en esta muestra, 78 de los 200 posts tenían imagen o vídeo. X también deduplica los usuarios por día UTC, así que un autor que aparece muchas veces en un día cuesta 0,010 USD una sola vez. Las búsquedas que devuelven siempre las mismas pocas cuentas subirán mucho menos.
| Los mismos 200 posts de «x api pricing» | Hasta el 21 nov | Desde el 22 nov | EveryInfra (medido) |
|---|---|---|---|
| Posts | 1,00 USD | 1,00 USD | 0,000556 USD (una llamada) |
| Objetos de autor (186 autores distintos) | 0 USD (las expansiones no se cobran) | 1,86 USD | Incluidos: author_follower_count, author_is_verified y más en cada post |
| Total | 1,00 USD | 2,86 USD | 0,000556 USD |
| Por 1000 posts | 5,00 USD | 14,30 USD | 0,00278 USD (esta página llena de 200; los 0,00327 USD de la tabla principal son la media de las 9 búsquedas, con dos páginas de 100) |
Nuestra respuesta ya trae en cada post los campos del autor: número de seguidores, si está verificado, la biografía y la fecha de creación de la cuenta. El catálogo enumera 38 response_fields para twitter/search (catálogo). Eso no quiere decir que los dos lados devuelvan los mismos campos. El objeto post de X tiene historial de ediciones, anotaciones de contexto y otros campos que nosotros no devolvemos. La sección de campos de más abajo detalla las diferencias una a una.
Cómo hicimos las pruebas y qué cuenta como resultado
Antes de probar nada, dejamos por escrito las reglas de aprobado y suspenso. Necesitábamos al menos cuatro tipos de datos, cada uno con una llamada real o más, en tres horas distintas como mínimo. El precio por 1000 elementos siempre sale de lo cobrado dividido entre los elementos únicos, nunca del limit de la petición. Necesitábamos al menos dos llamadas sin datos, con su cobro anotado. Y si X salía más barato o mejor en algún caso, el texto y la tabla tenían que decirlo.
Todas las peticiones fueron a POST https://api.everyinfra.com/api/v1/social, con la clave tomada solo de una variable de entorno. En cada llamada anotamos la hora de envío, el estado HTTP, el tiempo total medido en el cliente, el número de elementos y charged_usd. Después, un script calculó cada cifra del texto, las tablas y los gráficos a partir de las respuestas en bruto.
| Dato | Capacidad | Llamadas | Hora (hora de Singapur) | Qué miramos |
|---|---|---|---|---|
| Búsqueda por palabra clave | twitter/search | 9 | 00:17–00:40 | Elementos por llamada, solapamiento, fechas |
| Posts de una cuenta | twitter/user_posts | 3 | 00:18, 00:24, 00:39 | Hasta dónde llega una llamada |
| Perfiles | twitter/profile, twitter/profiles_by_ids, twitter/search_users | 6 | 00:29–01:48 | Coste suelto y en lote |
| Seguidores | twitter/followers_list | 1 | 00:23 | Cuentas por llamada |
| Respuestas | twitter/comments | 2 | 00:30, 00:31 | Respuestas por llamada |
| Tendencias y post suelto | twitter/trending, twitter/post | 2 | 00:25, 00:31 | Cobro por petición en los dos lados |
| Fallos y vacíos | cuenta inexistente, parámetro erróneo, sin clave, límite de ritmo (otras 5 llamadas con 503 van en las filas de arriba) | 4 | 00:21–00:27 | Si se cobra o no |
Todas las llamadas se hicieron el 9 de noviembre de 2026, entre las 00:17 y las 01:48, hora de Singapur. Fueron 27 llamadas en total, 18 con cobro, y el cobro total fue de 0,010008 USD. Varios borradores compartían la clave de prueba, que admite 10 llamadas por minuto, así que algunas llamadas toparon con el límite de ritmo. También las contamos.
Prueba 1: búsqueda por palabra clave, los mismos 1000 posts
Buscar posts es el uso más habitual en los proyectos de solo lectura. X tiene dos endpoints de búsqueda. La búsqueda reciente, /2/tweets/search/recent, cubre los últimos 7 días, está abierta a todos los desarrolladores y devuelve hasta 100 posts por página. La búsqueda de archivo completo, /2/tweets/search/all, está abierta a cuentas de pago por uso y Enterprise, llega hasta 2006, devuelve hasta 500 posts por página y admite 1 petición por segundo (documentación de búsqueda, límites de ritmo). Las dos cobran 0,005 USD por post devuelto. Nuestro equivalente es twitter/search. Pide keyword y acepta limit (25 por defecto, 200 como máximo) y sort. Los operadores de búsqueda de X, como from:, since: y lang:, van dentro de keyword.
# 9 nov 2026, 00:17:15 hora de Singapur: HTTP 200, 52,7 s, count 200, billing.charged_usd 0.000556
curl -s https://api.everyinfra.com/api/v1/social \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform":"twitter","action":"search","params":{"keyword":"dengue lang:es","limit":200}}'Las 9 búsquedas con éxito devolvieron 1531 posts, sin duplicados dentro de ninguna llamada. Siete llamadas llenaron los 200. La s05 devolvió 131 porque el rango from:XDevelopers since:2026-01-01 solo dio esos. La mediana de posts únicos por llamada fue 200. Dos llamadas se salieron de la norma y lo contamos tal cual: la s02 a las 00:24 y la s03 a las 00:25 pidieron 200 y devolvieron 100. Además, cada post de esas dos llamadas traía solo 15 campos, sin ID de autor, sin seguidores del autor y sin fotos ni vídeos; en las otras 7 llamadas cada post traía entre 26 y 32 campos. El precio fue el mismo, 0,000556 USD por llamada, así que esas dos salieron a 0,00556 USD por cada 1000 posts: el doble que una página llena, pero aún unas 900 veces menos que X. La mediana de tiempo de las 9 búsquedas fue de 54,1 s, y la más lenta tardó 69,5 s. No llegamos al objetivo de 30 segundos que fijamos antes de la prueba; las llamadas con 200 posts tardaron entre 48 y 59 segundos. Si tu programa no puede esperar, añade "mode":"async" al cuerpo de la petición: recibes un job_id al momento y luego consultas el resultado, como indica el campo async_hint de la respuesta.
| Llamada | Hora | keyword | Devueltos | Únicos | Fechas de los posts | Tiempo | Cobro |
|---|---|---|---|---|---|---|---|
| s01 | 00:17:15 | x api pricing | 200 | 200 | 2023-08-09 a 2026-11-08 | 52,7 s | 0,000556 USD |
| s02 | 00:24:21 | openai (sort: latest) | 100 | 100 | 8 nov, 16:09–16:24 UTC, en 14 min | 20,8 s | 0,000556 USD |
| s03 | 00:25:45 | inteligencia artificial lang:es | 100 | 100 | 2026-10-31 a 2026-11-08 | 69,5 s | 0,000556 USD |
| s01b | 00:29:40 | x api pricing | 200 | 200 | 2023-08-09 a 2026-11-08 | 56,5 s | 0,000556 USD |
| s04 | 00:32:00 | measles outbreak | 200 | 200 | 2016-07-11 a 2026-11-08 | 59,1 s | 0,000556 USD |
| s05 | 00:33:07 | from:XDevelopers since:2026-01-01 | 131 | 131 | 2026-01-06 a 2026-11-06 | 42,6 s | 0,000556 USD |
| s01c | 00:38:02 | x api pricing | 200 | 200 | 2023-08-09 a 2026-11-08 | 54,1 s | 0,000556 USD |
| s06 | 00:39:51 | dengue lang:es | 200 | 200 | 2020-05-25 a 2026-11-08 | 48,7 s | 0,000556 USD |
| s07 | 00:40:47 | término chino para «modelo grande», lang:zh | 200 | 200 | 2026-05-01 a 2026-11-08 | 58,3 s | 0,000556 USD |
Un resultado merece una nota aparte. El orden por defecto es «Top». En la primera búsqueda de «x api pricing», solo 80 de los 200 posts eran de los últimos 7 días, 87 de los últimos 30 días, y el más antiguo era de agosto de 2023. La búsqueda reciente de X no puede devolver los otros 120 posts; para ellos necesitas la búsqueda de archivo completo. El precio por post es el mismo, pero el límite de ritmo baja de 450 peticiones cada 15 minutos a 1 petición por segundo. En sentido contrario, si en nuestro lado quieres solo los últimos 7 días, añade una fecha since: dentro de keyword. Sin ella pueden salir posts antiguos, y eso es distinto de lo que hace por defecto la búsqueda reciente de X.
| Capacidad | Llamadas con cobro | Mediana | Más rápida | Más lenta |
|---|---|---|---|---|
twitter/search | 9 | 54,1 s | 20,8 s | 69,5 s |
twitter/user_posts | 3 | 30,1 s | 25,5 s | 30,4 s |
twitter/followers_list | 1 | 28,4 s | 28,4 s | 28,4 s |
twitter/comments | 2 | 10,9 s | 10,1 s | 11,6 s |
twitter/post | 1 | 10,8 s | 10,8 s | 10,8 s |
twitter/trending | 1 | 10,5 s | 10,5 s | 10,5 s |
twitter/profile | 1 | 8,8 s | 8,8 s | 8,8 s |
Prueba 2: posts de una cuenta y el límite de 3200
Para los posts de una cuenta, X usa el endpoint de línea de tiempo /2/users/:id/tweets. Devuelve como mucho los 3200 posts más recientes, puede excluir respuestas y reposts, y cobra 0,005 USD por post (documentación de líneas de tiempo). El límite de ritmo por app es amplio: 10.000 peticiones cada 15 minutos. Hay una excepción importante. Cuando el dueño de la app lee su propia línea de tiempo, desde el 20 de abril se aplica la tarifa Owned Reads de 0,001 USD por post. Esa vía barata solo existe en X.
Nuestro equivalente es twitter/user_posts. Pide username, y limit llega hasta 200. A las 00:18, hora de Singapur, leímos @XDevelopers y recibimos 200 posts, todos únicos, del 19 de noviembre de 2025 al 6 de noviembre de 2026. De ellos, 120 eran reposts y 55 respuestas. A las 00:24 leímos @NASA y recibimos 200 posts del 23 de septiembre al 8 de noviembre de 2026, con 62 reposts. Cada llamada costó 0,000556 USD, es decir, 0,00278 USD por cada 1000 posts. Esos mismos 400 posts cuestan 2,00 USD en X. En X puedes mandar exclude=retweets,replies y pagar solo por los posts originales. Nosotros devolvemos todo y tú filtras con is_repost e is_reply. El precio no cambia, pero te quedas con menos posts. En los 200 posts de @XDevelopers hubo 120 reposts y 55 respuestas, así que solo 25 eran originales. Si solo quieres originales, multiplica nuestro coste por post por 8; si solo quitas los reposts y te quedas con las respuestas, por 2,5. En @NASA, 83 de 200 eran originales, así que el factor ronda 2,4. Antes de calcular el precio por cada 1000 posts originales, mira cómo publica la cuenta. Después elige entre una llamada completa a user_posts o una búsqueda con from: y tramos de fechas.
Para ir más atrás de 200 posts puedes buscar con from: más since: o until: y avanzar hacia atrás por tramos de fechas. Lo probamos una vez. A las 00:33 buscamos from:XDevelopers since:2026-01-01 y recibimos 131 posts en una llamada, del 6 de enero al 6 de noviembre de 2026. De ellos, 105 eran reposts y 6 respuestas, y la llamada costó 0,000556 USD. Lo comparamos con la llamada a twitter/user_posts de las 00:18: los 131 posts estaban también en aquellos 200, pero aquellos 200 incluían 180 posts de 2026. El tramo de búsqueda se dejó 49. Los tramos de fechas funcionan y cuestan igual de poco, pero no garantizan que no falte ninguno. El endpoint de línea de tiempo de X da hasta 3200 posts completos en orden cronológico inverso, y esa es su ventaja cuando necesitas el conjunto entero. A las 00:39 volvimos a leer los 200 posts de @XDevelopers (llamada u01b) y el resultado fue idéntico al de las 00:18.
| Llamada | Hora (SGT) | Capacidad y entrada | Elementos | Fechas | Reposts | Respuestas | Cobro |
|---|---|---|---|---|---|---|---|
| u01 | 00:18:16 | twitter/user_posts, @XDevelopers | 200 | 2025-11-19 a 2026-11-06 | 120 | 55 | 0,000556 USD |
| u02 | 00:24:51 | twitter/user_posts, @NASA | 200 | 2026-09-23 a 2026-11-08 | 62 | 55 | 0,000556 USD |
| s05 | 00:33:07 | twitter/search, from:XDevelopers since:2026-01-01 | 131 | 2026-01-06 a 2026-11-06 | 105 | 6 | 0,000556 USD |
| u01b | 00:39:13 | Igual que u01 | 200 | Los mismos 200 posts que u01 | 120 | 55 | 0,000556 USD |
Prueba 3: perfiles y seguidores
X cobra los objetos de usuario al doble que los posts. User: Read y Following/Followers: Read cuestan 0,010 USD cada uno (página de precios). La consulta /2/users/by admite hasta 100 nombres de usuario por llamada, y el endpoint de seguidores /2/users/:id/followers devuelve hasta 1000 cuentas por página (documentación de usuarios, documentación de seguidores). El tamaño de página no cambia el precio: 1000 perfiles o 1000 seguidores cuestan 10 USD.
Nosotros tenemos tres vías, y sus precios están muy separados. twitter/profile consulta una cuenta por llamada, con seguidores, seguidos y número de posts, por 0,000556 USD. Eso son 0,556 USD por cada 1000 cuentas, 18 veces menos que X, y es la diferencia más pequeña de este artículo. twitter/profiles_by_ids admite hasta 20 ID numéricos por llamada. Su precio de catálogo es 0,000806 USD por llamada, no por cuenta, y el catálogo avisa de que no devuelve biografía ni número de seguidores. Lo intentamos a las 00:31, a las 00:39 y a las 01:48. Las tres veces devolvió 503 unavailable con «Not charged» en la respuesta. Por eso no tenemos un precio medido por cada 1000; la tabla muestra la estimación de catálogo, 0,0403 USD (20 cuentas por llamada), y no la usamos en las conclusiones. twitter/search_users, que busca cuentas por palabra clave, también devolvió 503 a las 00:31 y a las 01:48, sin cobro.
Con los seguidores hay que aclarar algo primero: los dos lados no venden lo mismo. En X, /2/users/:id/followers permite recorrer página a página todos los seguidores de una cuenta. Nuestro twitter/followers_list lee los seguidores visibles, y el catálogo aclara que no promete el grafo completo; devuelve una muestra. Para ver una muestra de quién sigue a una cuenta, cobramos 0,000556 USD por 2000 cuentas. Para una lista completa sin huecos, solo sirve X, a 20 USD por 2000 cuentas.
A las 00:23, hora de Singapur, pedimos los seguidores de @XDevelopers con limit 2000. Una sola llamada devolvió 2000 cuentas únicas, cada una con seguidores, seguidos, número de posts, verificación y fecha de creación. Usa esta capacidad para preguntas como la proporción de cuentas nuevas sin seguidores. No la uses para analizar el grafo completo ni cuando tengas que llegar a todos los seguidores.
| Entre 2000 seguidores de @XDevelopers | Cuentas | Proporción |
|---|---|---|
| Sin seguidores | 292 | 14,6 % |
| Sin posts | 399 | 20,0 % |
| Sin seguidores ni posts | 162 | 8,1 % |
| Creadas en 2026 | 868 | 43,4 % |
| Creadas en 2025 | 180 | 9,0 % |
| Con biografía | 1101 | 55,0 % |
| Verificadas | 0 | 0,0 % |
Esta tabla pequeña muestra para qué sirven unos datos de seguidores baratos. La proporción de cuentas sin seguidores y sin posts es una señal habitual de la calidad de una audiencia. A 0,010 USD por cuenta en X, 2000 seguidores cuestan 20 USD, y pocos equipos pagan eso por mirar una sola cuenta de la competencia.
Prueba 4: respuestas y posts sueltos
X no tiene un endpoint propio para respuestas. Para sacar las respuestas a un post sueles buscar con el operador conversation_id:, y cada respuesta cuesta 0,005 USD como cualquier post (operadores de búsqueda). Nuestro equivalente es twitter/comments. Pide el id del post, y limit llega hasta 50. A las 00:30 leímos las respuestas al post de precios de @XDevelopers del 30 de octubre de 2024, que muestra 1332 respuestas. Con limit 50 recibimos 47 respuestas, todas únicas, de 42 autores; la primera era del mismo día del post y la última de mayo de 2025. A las 00:31 leímos un post popular de octubre de 2026 que muestra 605 respuestas y recibimos 50, de 49 autores. Cada llamada costó 0,000556 USD, así que las 97 respuestas salen a 0,0115 USD por cada 1000. Esas mismas 97 respuestas costarían 0,485 USD como posts en X. Ojo con el tope: twitter/comments devuelve como mucho 50 respuestas por llamada y no tiene parámetro de página. En un post con 1332 respuestas solo devolvemos más o menos las primeras 50. Si necesitas el árbol completo de respuestas, recorre la búsqueda de X con conversation_id: página a página. X cobra por post, así que 1332 respuestas cuestan unos 6,66 USD.
| Llamada | Hora (SGT) | Post | Respuestas que muestra el post | Respuestas devueltas | Autores | Cobro | Mismo número en X |
|---|---|---|---|---|---|---|---|
| c01 | 00:30:45 | Post de precios de @XDevelopers, 2024-10-30 | 1332 | 47 | 42 | 0,000556 USD | 0,235 USD |
| c02 | 00:31:30 | Post de @cursor_ai, 2026-10-12 | 605 | 50 | 49 | 0,000556 USD | 0,250 USD |
La búsqueda por ID de post es otro caso. /2/tweets en X admite hasta 100 ID por llamada y cobra 0,005 USD por post devuelto (documentación de búsqueda por ID). Nuestro twitter/post admite un ID por llamada. A las 00:31 consultamos el post de precios de octubre de 2024. La llamada tardó 10,8 s, devolvió campos como 3996 me gusta, 1332 respuestas y 2.252.652 visualizaciones, y costó 0,000556 USD. Por 1000 posts, X cuesta 5 USD y nosotros 0,556 USD, una diferencia de solo 9 veces. Si tienes una lista larga de ID de posts, por ejemplo de un conjunto de datos público de investigación, la búsqueda en lote de X con 100 ID por llamada va más rápida. Nosotros seguimos costando menos, pero mandas 100 veces más peticiones.
Tendencias: cobro por petición en los dos lados
Las tendencias son la comparación más limpia, porque los dos lados cobran por petición. Trends en X cuesta 0,010 USD por petición (página de precios), y eliges el lugar con un WOEID. Nuestro twitter/trending cuesta 0,000556 USD por petición y recibe un código de país de dos letras. El catálogo enumera 35 regiones, como us, uk, jp, sg y br. A las 00:25, hora de Singapur, la lista de Estados Unidos devolvió 51 entradas con posición y periodo (period era Live en todas; el campo de volumen volume vino vacío en las 51). Por cada 1000 peticiones, son 10 USD frente a 0,556 USD, 18 veces. Las tendencias cambian rápido, así que un monitor suele mirar cada hora, 24 llamadas al día. En un año, eso son 87,60 USD en X y 4,87 USD con nosotros.
| Frecuencia de consulta de tendencias | Llamadas al año | X (0,010 USD por llamada) | EveryInfra (0,000556 USD por llamada) |
|---|---|---|---|
| Una vez al día | 365 | 3,65 USD | 0,203 USD |
| Una vez por hora | 8760 | 87,60 USD | 4,87 USD |
| Cada 15 minutos | 35.040 | 350,40 USD | 19,48 USD |
Fallos, resultados vacíos y límites de ritmo: ¿se cobran?
Este punto se suele pasar por alto al elegir una API, y es justo donde llegan las sorpresas en la factura. Nuestra regla está en la página de precios: las llamadas fallidas y los resultados vacíos no se cobran. Hicimos a propósito 4 llamadas que no podían devolver datos, y otras 5 recibieron un 503 porque una capacidad no estaba disponible en ese momento. Las 9 costaron 0 USD.
| Caso | Hora | HTTP | Respuesta | Cobro |
|---|---|---|---|---|
| Límite de ritmo: la clave agotó sus 10 llamadas por minuto | 00:21:56 | 429 | rate_limited, «Nothing was charged», retry_after de 4 s | 0 USD |
| Cuenta que no existe | 00:23:05 | 200 | Resultado vacío, billing.reason es empty_result_refunded y refund.status es succeeded | 0 USD |
El nombre de parámetro query de X copiado tal cual | 00:23:34 | 422 | missing_param, indica usar keyword y da un ejemplo que funciona | 0 USD |
| Sin clave de API | 00:27:03 | 401 | missing_key, «Nothing was charged» | 0 USD |
twitter/profiles_by_ids, tres intentos | 00:31:03, 00:39:04, 01:48:11 | 503 | unavailable, retryable es true, «Not charged» | 0 USD |
twitter/search_users, dos intentos | 00:31:50, 01:48:19 | 503 | unavailable, «Not charged» | 0 USD |
Fíjate en los cuerpos de respuesta. Con una cuenta que no existe devolvimos HTTP 200 con un resultado vacío. La respuesta tenía billing.reason igual a empty_result_refunded y refund.status igual a succeeded: primero retenemos el cobro y lo devolvemos al momento cuando no llegan datos. Cuando copiamos el nombre de parámetro de X, query, recibimos HTTP 422 missing_param. Su next_steps decía «Add the required keyword (query is not a parameter here)» e incluía una petición de ejemplo que funciona, algo que ayuda a un agente de IA a corregir su propia llamada. Una llamada frenada por el límite de ritmo devolvió HTTP 429 con «Nothing was charged» y un valor retry_after en segundos.
X no habla de reembolsos por fallos, pero su unidad de cobro hace que la mayoría de los fallos no cuesten nada. La lectura se cobra por objeto de la respuesta, así que un 404 o un resultado vacío no tiene objetos ni cobro (página de precios). Hay otros tres puntos que conviene vigilar. Uno: tu saldo puede quedar algo por debajo de cero, y entonces X bloquea todas las peticiones hasta que pagues el saldo negativo (sección «Credit balance» de la misma página). Dos: la recarga automática solo puede saltar una vez cada 5 minutos, así que un pico de uso todavía puede dar errores de créditos agotados. Tres: cuando llegas al tope de 3 millones de posts al mes, o al límite de gasto que pusiste en la consola, X devuelve HTTP 429 con el título «Usage Capped». En un hilo del foro del 1 de julio, un cliente de pago publicó cabeceras que mostraban 1499 de 1500 peticiones libres en la ventana junto con un 429 de consumo agotado. Tu código de reintentos tiene que distinguir un 429 de ritmo de un 429 de tope de consumo. Reintentar no arregla un tope de consumo.
La deduplicación de 24 horas: X la tiene y nosotros no
La sección «Deduplication» de la página de precios de X dice que todos los recursos se deduplican dentro de un día UTC. Si pides el mismo post muchas veces en un día, X lo cobra una vez, y la ventana se reinicia a medianoche UTC. La página también la llama una «soft guarantee» que puede fallar en casos límite como una caída del servicio (página de precios, uso y facturación). Nosotros no tenemos esta regla: cada llamada cuesta lo mismo aunque la mayoría de los elementos ya los tengas.
Esta regla abarata en X un caso concreto: consultar a menudo una búsqueda tranquila. Lo comprobamos con dos búsquedas de «x api pricing», a las 00:17 y a las 00:29, hora de Singapur. La llamada de las 00:29, 12 minutos después, devolvió 200 posts: 171 ya estaban en la primera y 29 eran nuevos para nosotros. Pero de esos 29 solo 3 se publicaron entre las dos llamadas; los otros 26 eran posts antiguos que entraron en el top 200 al cambiar el orden. La tercera llamada, a las 00:38, tenía 174 posts en común con la primera y 26 nuevos, y otra vez solo 3 publicados entre medias. En X, las 171 repeticiones del mismo día UTC no se cobran, así que la segunda llamada cuesta 0,145 USD por 29 posts. Si tu programa pide solo los posts posteriores a la última llamada, la segunda devuelve 3 posts por 0,015 USD. Nuestra segunda llamada vuelve a costar 0,000556 USD. Es decir, salimos más baratos mientras cada llamada traiga de media más de 0,11 posts que no hayas leído ese día (0,000556 ÷ 0,005). Por debajo de eso, X cuesta menos. En términos generales: si consultas cada 15 minutos (96 llamadas al día), nuestro coste es fijo, 96 × 0,000556 = 0,0534 USD al día. El coste en X es el número de posts nuevos y únicos de ese día por 0,005 USD. Los dos costes se cruzan en unos 10,7 posts nuevos al día. Si consultas cada hora, el punto de equilibrio baja a unos 2,7 posts al día.
| Par | Intervalo | En las dos | Nuevos en la segunda | Publicados entre las dos | X en esta llamada (con deduplicación del día) | EveryInfra en esta llamada |
|---|---|---|---|---|---|---|
| s01 → s01b | 12 min | 171 | 29 | 3 | 0,145 USD | 0,000556 USD |
| s01 → s01c | 21 min | 174 | 26 | 3 | 0,130 USD | 0,000556 USD |
| s01b → s01c | 8 min | 173 | 27 | — | — | 0,000556 USD |
Así que la respuesta depende del volumen. Para una palabra poco usada, una cuenta pequeña o un tema con pocos posts nuevos al día, el pago por uso de X cuesta menos y no te da datos repetidos. Un tema popular es otra historia, pero antes hay que decir si nuestro lado puede seguirle el ritmo. A las 00:24, hora de Singapur, buscamos «openai» con sort: latest. Los 100 posts devueltos cayeron dentro de 14 minutos y 22 segundos (de 16:09:54 a 16:24:16 UTC). A partir de esa única ventana de 14 minutos, estimamos unos diez mil posts nuevos al día para esta palabra. Conseguirlos todos en X cuesta unos 50 USD al día, más los cobros por autor desde el 22 de noviembre.
En nuestro lado, consultar cada 14 minutos cuesta unos 0,056 USD al día. Pero solo una prueba puede decir si esas consultas recogen todos los posts nuevos. Después de la revisión de este artículo repetimos la misma petición tres veces más, a las 02:45, 02:59 y 03:13, hora de Singapur (keyword openai, sort: latest, limit 200). Cada llamada costó 0,000556 USD, 0,001668 USD en total, y no forman parte de las 27 de arriba. El resultado fue distinto del de las 00:24. Cada llamada devolvió 200 posts, pero los más antiguos eran de 2023. En cada llamada solo entre 25 y 35 posts eran de las 24 horas anteriores a la petición, y solo 0, 0 y 1 de los 15 minutos anteriores. Los posts no venían en orden cronológico inverso: en cerca de la mitad de los pares contiguos, el segundo era más reciente. Entre una llamada y la siguiente se repitieron unos 130 posts.
Es decir, en estas tres llamadas sort: latest se comportó más bien como el orden por relevancia, y consultar cada 14 minutos no recogió todos los posts nuevos de una palabra popular. Para recoger un tema popular completo y en tiempo real, usa el flujo filtrado o la búsqueda reciente de X y paga por post. Nuestro lado sirve para muestras baratas de cómo se mueve una conversación, pero no garantiza la cobertura completa. Si solo necesitas vigilar unas pocas cuentas de la competencia y puedes perder algún post, mira cómo vigilamos posts de la competencia con Claude Code.
Factura mensual: de 1000 a 100.000 posts al día
Ahora pon los precios unitarios en la forma de un proyecto: N posts nuevos y únicos al día durante 30 días. La factura de X es N × 30 × 0,005 USD, y después del 22 de noviembre la multiplicas por unos 2,86 si necesitas los autores. La nuestra es llamadas al día × 30 × 0,000556 USD. Para los posts únicos por llamada usamos la mediana de nuestras búsquedas, 200 posts.
| Posts únicos al día | Posts al mes | X (solo posts) | X (posts con autor, desde el 22 nov) | EveryInfra |
|---|---|---|---|---|
| 1000 | 30.000 | 150 USD | 429 USD | 0,0834 USD |
| 5000 | 150.000 | 750 USD | 2145 USD | 0,4170 USD |
| 10.000 | 300.000 | 1500 USD | 4290 USD | 0,8340 USD |
| 50.000 | 1.500.000 | 7500 USD | 21.450 USD | 4,17 USD |
| 100.000 | 3.000.000 | 15.000 USD | 42.900 USD | 8,34 USD |
Mira el extremo derecho del gráfico. 100.000 posts al día son 3 millones al mes, justo el tope del pago por uso en X. Por encima hace falta Enterprise. Aquí X también da dos mensajes distintos. La página de inicio de developer.x.com dice «No fixed monthly costs, no monthly caps». La página de precios de la documentación y la de uso y facturación indican un tope de 3 millones de posts leídos al mes. Nosotros seguimos la documentación; si tu plan se acerca a esa cifra, compruébalo en la consola. En nuestro lado no hay tope mensual de elementos. El límite es por minuto: 60 llamadas por minuto por cuenta por defecto, compartidas por todas las claves de la cuenta. Con 200 posts por llamada, en teoría son hasta 12.000 posts por minuto. Para más, puedes comprar un paquete de ritmo de 30 días o subir a un tramo de recarga mayor (página de precios).

Créditos, gasto mínimo y créditos gratis
| Punto | X API de pago por uso | EveryInfra |
|---|---|---|
| Unidad de cobro | Lectura por objeto devuelto, escritura por petición | Por llamada, un precio fijo |
| Cuota mensual o mínimo | Sin cuota ni mínimo, compras créditos por adelantado | Sin cuota mensual, las recargas empiezan en 10 USD |
| Créditos gratis | 20 USD tras la primera tarjeta y la primera compra, más hasta 50 USD de igualación en la primera recarga automática; los dos caducan a los 3 meses | 1 USD tras dar estrella a dos repositorios de GitHub, válido 24 horas |
| Caducidad del saldo | No consta para créditos comprados; 3 meses para los gratis | El saldo recargado no caduca |
| Recompensas | 10 %, 15 % o 20 % de vuelta en créditos de la API de xAI al gastar 200, 500 o 1000 USD por ciclo | No hay |
| Tope mensual | 3 millones de posts leídos | Sin tope de elementos, 60 llamadas por minuto por defecto |
| Límite de gasto | Puedes fijar uno por ciclo en la consola | Las llamadas paran cuando se acaba el saldo |
| Fallos y vacíos | Sin objeto devuelto no hay cobro | No se cobran, lo retenido vuelve al momento |
X ya cambió una vez su regla de créditos gratis. Al lanzarla, el 2 de octubre, añadir la primera tarjeta daba 20 USD. Desde el 13 de octubre, los 20 USD llegan solo después de tu primera compra de créditos. Las tarjetas prepago no cuentan, y cada tarjeta física puede ganar el crédito una vez entre todas las cuentas. Así que, antes de leer tu primer post en X, tienes que guardar una tarjeta de crédito o débito y comprar créditos. Las recompensas de xAI solo sirven en la API de xAI, y primero tienes que vincular tu equipo de xAI con tu cuenta de desarrollador de X en la consola.
Cuántos pasos hay del registro al primer post público
La página Getting Access de X enumera tres pasos: crear una cuenta de desarrollador, crear una app y guardar las credenciales. Cada paso esconde pasos más pequeños. Entras en console.x.com con una cuenta de X, aceptas el Developer Agreement y la Policy y describes tu caso de uso. Creas una app con nombre, descripción y caso de uso. La consola te muestra la API key, el bearer token y otras credenciales, y la documentación avisa de que solo aparecen una vez. Luego compras créditos para que las llamadas funcionen. Para publicar o leer mensajes directos en nombre de un usuario, además configuras OAuth 2.0, cambias los permisos de la app a lectura y escritura y añades una URL de retorno. El README de xurl, la herramienta oficial de línea de comandos de X, añade un caso más: si OAuth funciona pero las lecturas devuelven client-not-enrolled, mueve la app al paquete Pay-per-use y al entorno Production en la consola (repositorio de xurl).
En nuestro lado son tres pasos. Te registras en la guía rápida y obtienes una clave. Usas el crédito de prueba de 1 USD o recargas. Llamas con curl, un SDK o MCP. No necesitas una cuenta de X y puedes probar antes de añadir una tarjeta. Los pasos de X no son trabajo perdido. X pide cuenta, acuerdo y caso de uso porque su API puede publicar y leer mensajes directos en nombre de usuarios, y esos poderes necesitan revisión. Un proyecto de solo lectura de datos públicos no usa esos poderes, así que para él los pasos pesan.
Conectar agentes de IA: MCP en los dos lados
El 30 de junio, X lanzó un servidor X MCP alojado en https://api.x.com/mcp (versión de protocolo 2025-06-18). Puede buscar en el archivo completo, consultar usuarios, gestionar marcadores, leer tendencias y noticias y redactar Articles (documentación de MCP). Hay dos formas de conectarlo. Para solo lectura, pones el bearer token de la app en la cabecera del cliente MCP. Para actuar como tu propia cuenta, ejecutas el puente de código abierto xurl mcp, que abre el navegador para iniciar sesión con OAuth 2.0 la primera vez. La documentación dice que el OAuth de X necesita tu propia app de desarrollador y no admite el registro dinámico de clientes. Por eso no puedes conectarlo solo con una URL, como haces con muchos servidores MCP remotos.
La documentación describe las herramientas de X MCP como llamadas a endpoints de la X API y no menciona un precio aparte para MCP. Nuestra estimación es que se aplican los precios de los endpoints, así que cada post leído por MCP sigue costando 0,005 USD. Es una inferencia nuestra, y el cobro real lo ves en la consola. X también tiene un servidor de código abierto que puedes alojar tú, xmcp. Convierte la descripción OpenAPI de la X API en herramientas y deja fuera los endpoints de streaming y webhooks.
{
"mcpServers": {
"xapi": {
"url": "https://api.x.com/mcp",
"headers": { "Authorization": "Bearer TU_BEARER_TOKEN_DE_APP" }
},
"everyinfra": {
"url": "https://api.everyinfra.com/mcp",
"headers": { "Authorization": "Bearer ${EVERYINFRA_API_KEY}" }
}
}
}Esta configuración de ejemplo conecta los dos servidores. La parte de X copia el ejemplo de solo app de la documentación de X. Nuestra dirección de MCP remoto es https://api.everyinfra.com/mcp, los nombres de nuestras herramientas empiezan por everyinfra_, y el modelo lee el catálogo antes de llamar a una capacidad (página de configuración de MCP). Con los dos servidores conectados, un reparto sensato es este: el modelo usa las herramientas de X para publicar o para leer tus marcadores y mensajes directos, y usa las nuestras para leer posts públicos, seguidores y tendencias en volumen. El propio protocolo MCP está definido en modelcontextprotocol.io.
Campos: los dos lados no devuelven lo mismo
Los campos de los dos lados no se corresponden uno a uno, así que no cuentes con un cambio directo. Por defecto, el objeto post de X solo devuelve id, text y edit_history_tweet_ids. Cualquier otro campo lo pides por nombre con tweet.fields, user.fields y las expansiones (diccionario de datos). Nosotros devolvemos un conjunto fijo de campos: no tienes que nombrarlos ni puedes elegirlos. La tabla recoge solo campos que usan a menudo los proyectos de solo lectura. La columna de X sigue la documentación de X, y la nuestra sigue los response_fields del catálogo y lo que devolvieron de verdad nuestras 9 búsquedas.
| Lo que necesitas | X API | EveryInfra `twitter/search` |
|---|---|---|
| Texto, hora de publicación, enlace | Sí (text, created_at, pidiéndolos) | Sí (text, posted_at, url) |
| Me gusta, reposts, respuestas, citas | Sí (public_metrics) | Sí (like_count y tres más) |
| Visualizaciones | Sí (public_metrics.impression_count) | Sí (view_count, presente en el 99,7 % de los posts) |
| Marcadores | Sí | Sí (bookmark_count) |
| Seguidores del autor, verificado | Hace falta la expansión author_id, 0,010 USD por usuario desde el 22 nov | En cada post (author_follower_count, author_is_verified) |
| Imágenes y vídeo | Hace falta attachments.media_keys, 0,005 USD cada uno desde el 22 nov | Campo media con URL y duración del vídeo |
| Historial de ediciones | Sí | No |
| Anotaciones de contexto (temas, entidades) | Sí (context_annotations) | No |
| Métricas privadas de tus propios posts | Sí, con autenticación de usuario | No |
| Lugar | Sí (expansión geo.place_id) | No |
Las últimas filas son campos que X tiene y nosotros no: historial de ediciones, anotaciones de contexto, métricas privadas de tus propios posts y lugares. Si tu análisis los necesita, por ejemplo para contar por categorías de temas de X, quédate con la API oficial.
Pasar de la X API: qué cambiar en tu código
Si ya tienes código para la X API v2 y quieres llevar la parte de lectura de datos públicos a EveryInfra, los cambios se concentran en unos pocos puntos. Los recogemos a partir de lo que vimos en nuestras llamadas reales, y la columna de X sigue su documentación. El fallo más común lo cometimos nosotros mismos: si envías el parámetro query de X tal cual, recibes un 422 missing_param. El campo next_steps de la respuesta te dice que uses keyword y trae una petición de ejemplo que funciona. Un agente de IA puede leerlo, corregir la llamada y repetirla, y la llamada fallida no cuesta nada.
| Qué cambiar | X API v2 | EveryInfra | Cómo |
|---|---|---|---|
| Parámetro de búsqueda | query | keyword | Cambia el nombre. La sintaxis (from:, lang:, since:) se mantiene |
| Elementos por llamada y páginas | Hasta 100 por página, la siguiente con next_token (paginación) | limit hasta 200, sin parámetro de página | Para más, divide con since: y until: y haz más llamadas |
| Rango de fechas | Parámetros como start_time y end_time (líneas de tiempo) | Dentro de keyword, por ejemplo since:2026-11-01 | Pasa las fechas a la expresión de búsqueda |
| Interacciones | Campos anidados en public_metrics, pedidos con tweet.fields (diccionario de datos) | like_count, retweet_count, view_count y otros en el nivel superior | Cambia las rutas de los campos |
| Fecha del post | created_at | posted_at | Cambia el nombre del campo |
| ID de posts y usuarios | Cadenas de texto | Cadenas de texto; el catálogo aconseja guardarlas así para que JavaScript no pierda dígitos | Sin cambios |
| Control del gasto | Consola y Usage API | billing.charged_usd en cada respuesta | Puedes anotar el coste de cada llamada |
| HTTP 429 | Límite de ritmo o tope mensual (Usage Capped) | Solo límite de ritmo, con retry_after y «Nothing was charged» | Trata los dos tipos de 429 por separado |
Después del cambio, saca la misma palabra clave una vez en cada lado y compara el número de elementos, el rango de fechas y los campos que de verdad usas. Luego pasa el tráfico real. Revisa con cuidado dos cosas. La primera, el orden: devolvemos por defecto los posts más relevantes, y sort: latest no garantiza el orden por fecha: en 3 de nuestras 4 llamadas con sort: latest, la mayoría de los posts eran antiguos (ver el final de la sección de deduplicación). La segunda, los campos: en 2 de nuestras 9 búsquedas los posts llegaron sin los seguidores del autor. Si tu código depende de esos campos, prepara el caso de valor vacío.
Cuándo te conviene más la X API oficial
Lo decimos sin rodeos. En los casos de abajo, la X API oficial es la mejor opción, y a veces la única.
Primero, cualquier escritura. Publicar, responder, borrar, mensajes directos, listas y marcadores solo van por la API oficial, a entre 0,005 y 0,20 USD por petición. Nosotros solo leemos datos públicos y no podemos publicar por ti. Ten en cuenta que, desde el 23 de febrero de 2026, X solo permite respuestas programáticas cuando el autor original invoca a tu cuenta con una mención o una cita. Desde el 20 de abril, los niveles de autoservicio también perdieron seguir cuentas, dar me gusta y citar posts por la API (registro de cambios).
Segundo, el tiempo real. Filtered Stream de X empuja los posts nuevos que cumplen tus reglas con una latencia P99 de unos 4 a 5 segundos. Una cuenta de pago por uso tiene 1000 reglas y 1 conexión (documentación de Filtered Stream). Nuestro modelo es de petición y respuesta, así que lo más rápido es consultar a intervalos, y no podemos empujar posts en segundos.
Tercero, recuentos sin contenido. Los endpoints Counts de X devuelven el volumen de posts de una consulta por minuto, hora o día. Los recuentos recientes cuestan 0,005 USD por petición y los de archivo completo 0,010 USD (documentación de Counts). Para saber cuántas veces salió una palabra cada día del año pasado, X necesita unas pocas peticiones. Nosotros no tenemos nada equivalente: tendrías que bajar los posts y contarlos, y el resultado no sería completo.
Cuarto, los datos de tu propia cuenta. Owned Reads cuesta 0,001 USD por objeto para tus propios posts, menciones, marcadores, seguidores y seguidos, y además te da métricas privadas como las impresiones. Para un panel de tu propia cuenta, la API oficial es barata y completa.
Quinto, consultas de poco volumen. Como vimos arriba, si consultas una búsqueda cada 15 minutos y salen menos de unos 10,7 posts nuevos al día, la deduplicación de X la abarata.
Sexto, condiciones y cumplimiento normativo. Los datos de la X API llegan con el Developer Agreement (actualizado por última vez el 27 de abril de 2026) y la Developer Policy, así que los derechos y deberes están claros. Si tu equipo de cumplimiento exige datos del canal propio de la plataforma, la respuesta es la X API oficial. El acuerdo tiene límites concretos, por ejemplo no usar contenido de X para entrenar o ajustar un modelo fundacional, y borrar en menos de 24 horas tras una petición de retirada. Lee cada cláusula antes de firmar.
Condiciones de X y límites legales
Las Condiciones de servicio de X se aplican a quien usa X, y el Developer Agreement añade límites a los datos de la API. En la UE, los investigadores también pueden pedir datos de la plataforma según el artículo 40 de la Ley de Servicios Digitales (texto del reglamento, acto delegado de la Comisión Europea sobre acceso a datos). Las reglas de automatización de X añaden normas para publicaciones y acciones automáticas. Pregunta a tu abogado qué significan estas condiciones para tu proyecto; este artículo no es asesoramiento legal. Lo que sí podemos describir son los límites de nuestro método: este artículo solo lee posts, cuentas y listas públicos, y no inicia sesión, no lee mensajes directos y no lee cuentas protegidas.
Cambios recientes (octubre y noviembre de 2026)
| Fecha | Cambio | Qué significa para un proyecto de solo lectura | Fuente |
|---|---|---|---|
| 2026-10-13 | El crédito gratis de 20 USD ya exige una primera compra | Añadir la tarjeta no basta, pagas antes de probar | página de créditos gratis |
| 2026-10-23 | Los objetos de expansión se cobrarán desde el 22 nov | En nuestra muestra, los posts con autor cuestan unas 2,86 veces más; 3 veces si cada post tiene un autor distinto, y más con contenido multimedia | anuncio en el foro |
| 2026-11-05 | Nuevas rutas de la Livestream API, las viejas se retiran el 1 ene 2027 | Los proyectos con las rutas viejas deben migrar antes de fin de año | registro de cambios |
| 2026-11-22 | Los objetos de expansión empiezan a cobrarse a tarifa normal | Revisa antes de esa fecha qué peticiones usan expansions | anuncio en el foro |
Antes, en este mismo año: el pago por uso se lanzó el 6 de febrero, y los usuarios activos del antiguo plan Free recibieron un bono único de 10 USD. El 20 de abril, Owned Reads bajó a 0,001 USD y los posts con enlace subieron a 0,20 USD. El 4 de mayo, la búsqueda pasó a un índice nuevo y la búsqueda por palabra clave dejó de devolver reposts. Basic (21 de mayo) y Pro (14 de agosto) quedaron programados para pasar a pago por uso. El X MCP alojado se lanzó el 30 de junio. El registro de cambios de X y los anuncios del foro muestran más o menos un cambio al mes, así que en un proyecto largo cuenta con cambios de precio. X no es la única API oficial que cambia a menudo sus precios por elemento: en nuestra guía de precios de la API de TikTok recogemos las reglas de cobro de la API oficial de TikTok, por si quieres comparar.
Para empezar: primero, una llamada real
Paso 1: regístrate en la guía rápida y obtén una clave. Después de dar estrella en GitHub a los repositorios everyinfra/everyinfra-agent-plugins y everyinfra/seo-skills, puedes pedir 1 USD de crédito de prueba en la consola; vale 24 horas. Paso 2: ejecuta el curl de arriba con la palabra clave que te interese y revisa el número de results y billing.charged_usd. Paso 3: prueba otras capacidades en el mercado o conecta MCP en tu cliente de IA. Todas las capacidades de X están en la página de la API de datos de Twitter/X, y los precios en la página de precios. Si además vigilas otra plataforma de comunidad, mira la API de datos de Reddit.
Preguntas frecuentes
¿La X API es gratis?
Para desarrolladores nuevos no hay nivel gratuito. Tras el lanzamiento del pago por uso el 6 de febrero de 2026, solo las apps que X clasifica como Public Utility Apps conservaron acceso gratis, y los usuarios activos del antiguo plan Free recibieron un bono único de 10 USD (anuncio del lanzamiento). Las cuentas nuevas reciben 20 USD tras su primera compra de créditos, y ese crédito caduca a los 3 meses. Un usuario de r/Twitter preguntó lo mismo en este hilo, porque una herramienta para publicar no puede pagar por cada post.
¿Cuánto cuesta la X API de pago por uso y hay calculadora?
Leer un post cuesta 0,005 USD, leer un usuario 0,010 USD, publicar un post 0,015 USD, publicar un post con enlace 0,20 USD y una consulta de tendencias 0,010 USD (página de precios). X no tiene calculadora pública, pero la consola muestra el gasto en vivo. Puedes usar la fórmula de este artículo: coste mensual = posts únicos al día × 30 × 0,005 USD. Desde el 22 de noviembre, si expandes autores, suma los autores únicos × 0,010 USD.
¿Qué alternativa a la X API recomiendan en Reddit?
En Reddit se citan tres opciones: quedarse con el pago por uso oficial, usar una API de datos de terceros o escribir tu propio scraper. En un hilo de r/Web_Development, el autor usó la API oficial para sincronizar marcadores y calculó cerca de 1 USD por cada 200 posts, algo que a la larga le parecía caro. En el hilo de r/Twitter sobre el nivel gratuito, una respuesta proponía ingeniería inversa y muchas cuentas, lo que arriesga bloqueos e incumple las condiciones de X. Para publicar, usa la API oficial. Para leer datos públicos en volumen, usa la tabla de costes de este artículo y fíjate en su última columna: en algunas filas los dos lados no venden lo mismo.
¿Qué pasa cuando llego al tope de 3 millones de posts?
La página de precios dice que el pago por uso admite hasta 3 millones de posts leídos por ciclo mensual de facturación y que más volumen exige el formulario de Enterprise. Al llegar al tope, las peticiones devuelven HTTP 429 «Usage Capped» hasta el siguiente ciclo, así que reintentar no sirve. Nosotros no tenemos tope mensual de elementos y admitimos 60 llamadas por minuto por defecto. Hay quien recibió este 429 sin llegar al tope. En este hilo del foro, dos desarrolladores de pago, el 30 de junio y el 1 de julio, tenían crédito, tope de gasto y límites de ritmo en buen estado y aun así recibían de vez en cuando el error usage-capped. El equipo de X respondió el 2 de julio que el problema estaba resuelto. Si te pasa, revisa primero la consola y luego busca casos parecidos en el foro.
¿Por qué un post con enlace cuesta 0,20 USD?
En su anuncio de precios del 16 de abril, X dijo que desde el 20 de abril un post con URL por la API cuesta 0,20 USD. Las respuestas invocadas se quedan en 0,01 USD, y el post normal subió de 0,01 USD a 0,015 USD. El título de un hilo de r/technology lo llama una subida del 1900 %. Aquí no podemos ayudarte, porque no ofrecemos publicación.
Referencias
- X API pay-per-usage pricing and credits, X Developer Platform, leído el 9 nov 2026, https://docs.x.com/x-api/getting-started/pricing
- Free credit incentives for X API pay-per-use accounts, X Developer Platform, actualizado el 13 oct 2026, https://docs.x.com/x-api/getting-started/free-credits
- Usage and Billing, X Developer Platform, https://docs.x.com/x-api/fundamentals/post-cap
- Rate limits, X Developer Platform, https://docs.x.com/x-api/fundamentals/rate-limits
- Getting Access, X Developer Platform, https://docs.x.com/x-api/getting-started/getting-access
- About the X API, X Developer Platform, https://docs.x.com/x-api/getting-started/about-x-api
- Search Posts, X Developer Platform, https://docs.x.com/x-api/posts/search/introduction
- Timelines, X Developer Platform, https://docs.x.com/x-api/posts/timelines/introduction
- User Lookup, X Developer Platform, https://docs.x.com/x-api/users/lookup/introduction
- Follows, X Developer Platform, https://docs.x.com/x-api/users/follows/introduction
- Post Lookup, X Developer Platform, https://docs.x.com/x-api/posts/lookup/introduction
- Expansions, X Developer Platform, https://docs.x.com/x-api/fundamentals/expansions
- Post Counts, X Developer Platform, https://docs.x.com/x-api/posts/counts/introduction
- Filtered Stream, X Developer Platform, https://docs.x.com/x-api/posts/filtered-stream/introduction
- Response Codes & Errors, X Developer Platform, https://docs.x.com/x-api/fundamentals/response-codes-and-errors
- MCP servers for the X API and X developer docs, X Developer Platform, https://docs.x.com/tools/mcp
- X API changelog, X Developer Platform, entrada del 5 nov 2026, https://docs.x.com/changelog
- Developer Agreement, X, actualizado el 27 abr 2026, https://docs.x.com/developer-terms/agreement
- Developer Policy, X, https://docs.x.com/developer-terms/policy
- Search operators, X Developer Platform, https://docs.x.com/x-api/posts/search/integrate/operators
- Data dictionary, X Developer Platform, https://docs.x.com/x-api/fundamentals/data-dictionary
- Usage API, X Developer Platform, https://docs.x.com/x-api/usage/introduction
- X Activity API, X Developer Platform, https://docs.x.com/x-api/activity/introduction
- XDK overview, X Developer Platform, https://docs.x.com/xdks/overview
- Enterprise API interest form, X Developer Platform, https://docs.x.com/forms/enterprise-api-interest
- Página de inicio de X Developer Platform, X, leída el 9 nov 2026, https://developer.x.com/
- xurl, xdevplatform en GitHub, https://github.com/xdevplatform/xurl
- xmcp, xdevplatform en GitHub, https://github.com/xdevplatform/xmcp
- X API Playground, xdevplatform en GitHub, https://github.com/xdevplatform/playground
- [Inform] X API PPU - Expansions Update, foro X Developers, 23 oct 2026, https://devcommunity.x.com/t/inform-x-api-ppu-expansions-update/279110
- Legacy X API Pro Plans Are Moving to Pay-Per-Use, foro X Developers, 14 ago 2026, https://devcommunity.x.com/t/important-update-legacy-x-api-pro-plans-are-moving-to-pay-per-use-ppu/273255
- Legacy X API Basic Plans Are Moving to Pay-Per-Use, foro X Developers, 21 may 2026, https://devcommunity.x.com/t/important-update-legacy-x-api-basic-plans-are-moving-to-pay-per-use-ppu/266305
- Announcing the Launch of X API Pay-Per-Use Pricing, foro X Developers, 6 feb 2026, https://devcommunity.x.com/t/announcing-the-launch-of-x-api-pay-per-use-pricing/256476
- X API Pricing Update: Owned Reads Now $0.001, foro X Developers, 16 abr 2026, https://devcommunity.x.com/t/x-api-pricing-update-owned-reads-now-0-001-other-changes-effective-april-20-2026/263025
- Announcing the hosted X MCP, foro X Developers, 30 jun 2026, https://devcommunity.x.com/t/announcing-the-hosted-x-mcp/269558
- Hilo sobre 429 usage-capped en pago por uso, foro X Developers, 1 jul 2026, https://devcommunity.x.com/t/429-usage-capped-on-pay-per-use-across-multiple-read-endpoints-despite-healthy-rate-limits-and-console-limits/269581
- I tried the new X API - it's nice, but doesn't look so cheap long term, Reddit r/Web_Development, https://www.reddit.com/r/Web_Development/comments/1qz8ae3/i_tried_the_new_x_api_its_nice_but_doesnt_look_so/
- X/Twitter api free tier?, Reddit r/Twitter, https://www.reddit.com/r/Twitter/comments/1r2xosn/xtwitter_api_free_tier/
- X makes it 1,900% more expensive to post links, Reddit r/technology, https://www.reddit.com/r/technology/comments/1srwd4i/x_makes_it_1900_more_expensive_to_post_links_it/
- X Terms of Service, X, https://x.com/en/tos
- Automation rules, Centro de ayuda de X, https://help.x.com/en/rules-and-policies/x-automation
- Model Context Protocol Specification 2025-06-18, modelcontextprotocol.io, https://modelcontextprotocol.io/specification/2025-06-18
- Reglamento (UE) 2022/2065 (Ley de Servicios Digitales), EUR-Lex, https://eur-lex.europa.eu/eli/reg/2022/2065/oj
- Delegated act on data access under the DSA, Comisión Europea, https://digital-strategy.ec.europa.eu/en/library/delegated-act-data-access-under-digital-services-act-dsa
- Catálogo de capacidades de datos de EveryInfra, EveryInfra, leído el 9 nov 2026, 00:14 hora de Singapur, https://api.everyinfra.com/api/v1/social/catalog
Referencia BL-119