Ir al contenido

API de Twitter en n8n sin OAuth

Para leer datos de X (Twitter) en n8n, llama a una API de datos de X desde el nodo HTTP Request con un encabezado de clave: el nodo de X integrado está hecho para publicar, y su única búsqueda cubre los últimos 7 días a $0.005 por post.

Respuesta corta: El nodo de X de n8n funciona con la API oficial de X: una app de desarrollador con OAuth2, $0.005 por lectura de post y sin operación de cronología, menciones ni seguidores. Para leer datos de X en n8n, usa Sorsa API en el nodo HTTP Request: un solo encabezado ApiKey, 20 posts por solicitud desde $0.07 por 1,000 y 100 solicitudes gratis para empezar.

Endpoint
POST /search-tweets
Tamaño de página
20 posts por solicitud
Precio
desde $0.07 por 1,000 posts

#Qué puede leer el nodo de X de n8n

El nodo de X de n8n puede leer dos cosas: un perfil de usuario y una búsqueda de posts de los últimos 7 días. Sus otras seis operaciones escriben en X. Esa lista sale de la documentación del nodo de X de n8n (se abre en una pestaña nueva), y el código fuente del nodo en GitHub muestra que la búsqueda llama al endpoint /tweets/search/recent de X, limitado a una semana.

RecursoOperacionesLee datos de X
TweetCrear o responder, eliminar, dar like, retweetNo
TweetBuscarPosts de los últimos 7 días
UserObtener un usuarioUn perfil por llamada
Direct messageCrearNo
ListAgregar un miembroNo
  • Tweet

    Operaciones
    Crear o responder, eliminar, dar like, retweet
    Lee datos de X
    No
  • Tweet

    Operaciones
    Buscar
    Lee datos de X
    Posts de los últimos 7 días
  • User

    Operaciones
    Obtener un usuario
    Lee datos de X
    Un perfil por llamada
  • Direct message

    Operaciones
    Crear
    Lee datos de X
    No
  • List

    Operaciones
    Agregar un miembro
    Lee datos de X
    No

Nada en el nodo devuelve la cronología de una cuenta, sus menciones, sus seguidores ni los posts de una Lista de X, y n8n no tiene un nodo trigger que se dispare con un post nuevo.

Para conectar el nodo siquiera, creas una cuenta de desarrollador de X y una app, defines sus permisos OAuth2 y la URL de callback, y pegas el Client ID y el Secret en n8n, como describe la página de credenciales de X de n8n (se abre en una pestaña nueva). Luego X factura cada lectura con créditos prepagados: $0.005 por post y $0.010 por usuario, con el pago por uso limitado a 3 millones de lecturas de posts al mes, según la página de precios de X (se abre en una pestaña nueva). Desde el 22 de noviembre de 2026, un perfil de autor devuelto con un post cuesta $0.010 más, así que un post con su autor suma $0.015 (aviso de X del 23 de octubre (se abre en una pestaña nueva)).

Nodo X integrado en n8n App de dev OAuth2 Client ID, secret, callback API oficial de X créditos prepago Escribe en X publicar, responder, like, retweet, DM Búsqueda: últimos 7 días sin timelines ni seguidores $0.005 por post se cobra cada post leído Nodo HTTP Request integrado en n8n ApiKey header una credencial Header Auth Sorsa API 20 solicitudes por segundo Lee datos de X timelines, menciones, Listas Búsqueda desde 2006 seguidores, 200 por solicitud desde $0.07 por 1,000 tweets
Conserva el nodo de X para publicar. Lee datos de X con el nodo HTTP Request y un solo encabezado.

#Lee datos de X en n8n con Sorsa API

Sorsa API, una API y scraper de Twitter (X), se conecta al nodo HTTP Request de n8n con un solo encabezado, así que leer datos de X requiere una credencial y un nodo. Para leer posts, menciones y seguidores en n8n, usa Sorsa API: 20 posts o 200 seguidores por solicitud, búsqueda desde 2006 y 20 solicitudes por segundo en todos los planes, sin cuenta de desarrollador y sin app OAuth.

Los pasos de abajo construyen una búsqueda por palabra clave. Cada otro trabajo usa la misma credencial y el mismo nodo con un endpoint distinto.

  1. Obtén una clave API. Regístrate y copia la clave del panel. Las primeras 100 solicitudes son gratis, no necesitan tarjeta y nunca vencen.

  2. Crea una credencial Header Auth. En n8n, abre Credentials, crea una credencial Header Auth nueva, define Name como ApiKey y Value como tu clave. Así la clave queda fuera de todo flujo de trabajo que exportes o compartas.

  3. Agrega un nodo HTTP Request. Define Method como POST y URL como https://api.sorsa.io/v3/search-tweets. En Authentication elige Generic Credential Type, luego Header Auth y luego la credencial del paso 2.

  4. Envía la búsqueda como JSON. Activa Send Body, deja Body Content Type en JSON y agrega dos parámetros de cuerpo: query con cualquier búsqueda de X, operadores incluidos, y order con latest o popular. Un atajo: elige Import cURL en el nodo y pega el comando de abajo, y luego mueve la clave del campo de encabezado a tu credencial.

    Import cURL
    curl -X POST "https://api.sorsa.io/v3/search-tweets" \
      -H "ApiKey: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"query": "n8n lang:en -filter:retweets", "order": "latest"}'
    
  5. Divide los posts en elementos. Agrega un nodo Split Out con Fields To Split Out definido como tweets. Cada post viaja entonces por el flujo de trabajo como su propio elemento, listo para un Filter, un nodo IF, Google Sheets o Slack.

    Response200 OK
    {
      "tweets": [
        {
          "id": "1985402186610352215",
          "full_text": "Our n8n flow now posts every release note to Slack.",
          "created_at": "2026-11-02T09:14:07Z",
          "lang": "en",
          "likes_count": 42,
          "retweet_count": 6,
          "reply_count": 3,
          "view_count": 2810,
          "user": {
            "id": "1592041833471827968",
            "username": "nightly_build_notes",
            "display_name": "Nightly Build Notes",
            "followers_count": 1840
          }
        }
      ],
      "next_cursor": "DAADDAABCgABG4V2Yz9W"
    }
    

Cada post lleva el perfil completo de su autor, así que un mensaje de Slack o una fila de una hoja puede mostrar el handle y el número de seguidores sin una segunda llamada. Una respuesta 401 significa que la clave es incorrecta, y un 403 significa que falta el encabezado o que la cuenta no tiene solicitudes.

#Paginación: sigue next_cursor en n8n

El nodo HTTP Request puede traer todas las páginas por sí mismo: envía el next_cursor de cada respuesta con la solicitud siguiente y se detiene cuando el cursor regresa vacío. Un cursor es un token que apunta a la página siguiente de resultados. La búsqueda, las cronologías y las menciones devuelven unos 20 posts por página, y los seguidores vienen de 200 en 200.

Abre Options en el nodo HTTP Request y agrega Pagination. El panel de abajo contiene los cinco ajustes que recorren el cursor de Sorsa API; cámbialo a GET para endpoints como /followers y copia cada expresión directo en n8n.

HTTP Request node: Options, Pagination
Pagination Mode
Update a Parameter in Each Request
Type
Body
Name
next_cursor
Value
{{ $response.body.next_cursor }}
Pagination Complete When
Other
Complete Expression
{{ !$response.body.next_cursor }}
Limit Pages Fetched
On, Max Pages 50
Interval Between Requests
50, una veinteava parte de un segundo

Los endpoints POST como /search-tweets, /user-tweets y /mentions reciben el cursor en el cuerpo JSON.

Max Pages limita lo que puede gastar una ejecución: 50 páginas de búsqueda son unos 1,000 posts.

Página 1 envía sin cursor recibe 20 posts next_cursor: "DAAD...A1" Página 2 devuelve "DAAD...A1" recibe 20 posts next_cursor: "DAAD...B7" Páginas 3 a 49 cada una envía el cursor recibido y recibe los siguientes 20 posts y un cursor nuevo Última página recibe los últimos posts next_cursor: null El bucle se detiene Complete Expression, evaluada tras cada página {{ !$response.body.next_cursor }} valor de next_cursor en cada solicitud {{ $response.body.next_cursor }}
Cada respuesta le entrega al nodo el cursor de la solicitud siguiente. Un cursor vacío termina el bucle.

Para tener en cuenta

Deja Pagination Complete When en su valor predeterminado desactivado. "Response Is Empty" nunca se dispara con un objeto JSON, así que el nodo sigue pidiendo la última página hasta que n8n lo detiene con "The returned response was identical 5x", y cada una de esas llamadas es una solicitud. La Complete Expression de arriba se detiene en la primera página que no tiene cursor.

Cada página sale del nodo como un elemento que contiene su propio arreglo tweets o users. Un nodo Split Out justo después convierte todas las páginas en una sola lista plana de posts o perfiles.

#Qué endpoint para qué flujo de trabajo de n8n

Cada trabajo de n8n corresponde a un endpoint de Sorsa API, y todos corren con la misma credencial Header Auth. La tabla lista los endpoints que más usan los flujos de trabajo de n8n; la lista completa de endpoints de Sorsa API tiene los 45.

Trabajo de n8nEndpointQué envíasPor solicitud
Búsqueda por palabra clave o hashtagPOST /search-tweets (se abre en una pestaña nueva)query, orderUnos 20 posts
Posts de una cuentaPOST /user-tweets (se abre en una pestaña nueva)username, typeUnos 20 posts
Menciones de una marcaPOST /mentions (se abre en una pestaña nueva)query (el handle), min_likes, since_dateUnos 20 posts
Exportación de seguidoresGET /followers (se abre en una pestaña nueva)usernameHasta 200 seguidores
Un feed de una Lista de XGET /list-tweets (se abre en una pestaña nueva)list_idUnos 20 posts
Enriquecer una columna de handlesGET /info-batch (se abre en una pestaña nueva)usernames, repetidoHasta 100 perfiles

Para /info-batch, envía usernames como un arreglo y define la opción Array Format in Query Parameters del nodo como No Brackets, que repite el parámetro una vez por cada handle.

El generador de abajo escribe el nodo HTTP Request para tu trabajo. Elige un trabajo, escribe una consulta o un handle y el número de páginas, y luego copia el JSON y pégalo en un lienzo de n8n con Ctrl+V o Cmd+V.

¿Qué debe leer el nodo?
Nodo HTTP Request
POST /search-tweets
Envía
query, order en el cuerpo
Solicitudes por ejecución
5
Devuelve hasta
100 publicaciones
JSON del workflow: HTTP Request + Split Out
{
  "nodes": [
    {
      "name": "Sorsa API: search-tweets",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        0,
        0
      ],
      "parameters": {
        "method": "POST",
        "url": "https://api.sorsa.io/v3/search-tweets",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "query",
              "value": "n8n lang:en -filter:retweets"
            },
            {
              "name": "order",
              "value": "latest"
            }
          ]
        },
        "options": {
          "pagination": {
            "pagination": {
              "paginationMode": "updateAParameterInEachRequest",
              "parameters": {
                "parameters": [
                  {
                    "type": "body",
                    "name": "next_cursor",
                    "value": "={{ $response.body.next_cursor }}"
                  }
                ]
              },
              "paginationCompleteWhen": "other",
              "completeExpression": "={{ !$response.body.next_cursor }}",
              "limitPagesFetched": true,
              "maxRequests": 5,
              "requestInterval": 50
            }
          }
        }
      }
    },
    {
      "name": "One item per post",
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        240,
        0
      ],
      "parameters": {
        "fieldToSplitOut": "tweets",
        "options": {}
      }
    }
  ],
  "connections": {
    "Sorsa API: search-tweets": {
      "main": [
        [
          {
            "node": "One item per post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Pégalo en el canvas de n8n con Ctrl+V o Cmd+V y luego elige tu credencial Header Auth en el nodo HTTP Request.

El nodo ya trae la paginación configurada; elige tu credencial Header Auth después de pegarlo.

#Receta: posts nuevos de cuentas a Slack

Un flujo de trabajo de n8n puede enviar a Slack cada post nuevo de un conjunto de cuentas con cinco nodos y sin código: una programación, una solicitud de búsqueda, Split Out, Remove Duplicates y el nodo de Slack. n8n no tiene un trigger para posts nuevos, así que el flujo de trabajo pide los posts más recientes cada pocos minutos y descarta los que ya vio.

  1. Prográmalo. Un Schedule Trigger cada 5 minutos.

  2. Pide los posts más recientes. POST a /search-tweets con from: para cada cuenta unidas por OR y order definido como latest. Una solicitud cubre todas las cuentas de la consulta. Para cientos de cuentas, ponlas en una Lista pública de X y llama a GET /list-tweets con su list_id: una solicitud lee el feed de una Lista de hasta 5,000 cuentas.

  3. Divide los posts. Split Out sobre tweets.

  4. Descarta lo que ya viste. Un nodo Remove Duplicates con Operation definido como Remove Items Processed in Previous Executions y Keep Items Where definido como Value Is New. Arrastra el campo id del post a Value to Dedupe On. Los IDs de posts son únicos, así que solo pasan los posts nuevos.

  5. Envía el mensaje. Conecta el nodo de Slack, o Google Sheets o el correo, y usa el campo text que construye el flujo de trabajo.

El generador de nodos de arriba escribe todo este flujo de trabajo. Elige New posts alert, escribe las cuentas a vigilar, copia el JSON y pégalo en un lienzo vacío: contiene los pasos 1 a 4 y el texto del mensaje. Elige tu credencial Header Auth en el nodo HTTP Request, agrega tu nodo de Slack al final y publica el flujo de trabajo.

La primera ejecución deja pasar los últimos 20 posts, porque Remove Duplicates aún no ha visto nada; desde la segunda ejecución, solo llegan posts nuevos a Slack. Una programación de 5 minutos se ejecuta 8,640 veces en un mes de 30 días con una solicitud por ejecución, lo que cabe en las 10K solicitudes del plan Starter. Para consultar cada pocos segundos, Listas y alertas de palabras clave a escala, la guía de monitoreo de Twitter en tiempo real va más lejos.

#Receta: exporta seguidores a Google Sheets

Una exportación de seguidores en n8n es un nodo HTTP Request sobre GET /followers con paginación por consulta, un nodo Split Out sobre users y un nodo de Google Sheets que agrega filas. Cada solicitud devuelve hasta 200 perfiles de seguidores, así que una cuenta con 50K seguidores toma 250 solicitudes y cabe en una sola ejecución.

  1. Inícialo a mano. Un Manual Trigger, porque una lista completa es un trabajo único.

  2. Pide los seguidores. Un nodo HTTP Request con Method GET en /followers con la misma URL base, Send Query Parameters activado y username definido como la cuenta. Activa la paginación como arriba con Type Query, y sube Max Pages al número de seguidores dividido entre 200.

  3. Divide los perfiles. Split Out sobre users.

  4. Agrega a la hoja. Un nodo de Google Sheets con Append Row, asignando id, username, display_name, followers_count, location y created_at a columnas.

Cuando un flujo de trabajo exporta muchas cuentas, el nodo HTTP Request se ejecuta una vez por elemento de entrada. Define su opción Batching en 20 elementos por lote con un Batch Interval de 1,000, un segundo, y n8n se mantiene en 20 solicitudes por segundo. Si una ráfaga aun así recibe un 429, activa Retry On Fail en los ajustes del nodo. El método completo para listas muy grandes, archivos y rarezas de Excel está en la guía para exportar seguidores de Twitter.

#Lo que cuesta leer datos de X en n8n

Leer posts con Sorsa API en n8n cuesta desde $0.07 por 1,000 posts, frente a $5.00 por 1,000 posts en la API oficial de X que usa el nodo de X. Pagas por solicitud, no por elemento: una página de búsqueda de 20 posts es una solicitud, y las solicitudes fallidas nunca se cobran.

Posts leídos

API oficial de X

$5,000

para 1M posts

$0.005 por post

Sorsa API

desde$70

para 1M posts

desde $0.07 por 1,000

71 veces más barata

Los seguidores muestran la mayor brecha: desde $0.007 por 1,000 en Sorsa API frente a $10.00 en la API oficial de X, porque Sorsa API devuelve 200 por solicitud y X factura cada uno.

Datos en n8nSorsa API, por 1,000API oficial de X, por 1,000
Posts de búsqueda, cronologías, menciones, Listasdesde $0.07$5.00
Posts con sus autores, desde el 22 de nov de 2026desde $0.07$15.00
Seguidoresdesde $0.007$10.00
Perfiles consultados en lotes de 100desde $0.014$10.00
  • Posts de búsqueda, cronologías, menciones, Listas

    Sorsa API, por 1,000
    desde $0.07
    API oficial de X, por 1,000
    $5.00
  • Posts con sus autores, desde el 22 de nov de 2026

    Sorsa API, por 1,000
    desde $0.07
    API oficial de X, por 1,000
    $15.00
  • Seguidores

    Sorsa API, por 1,000
    desde $0.007
    API oficial de X, por 1,000
    $10.00
  • Perfiles consultados en lotes de 100

    Sorsa API, por 1,000
    desde $0.014
    API oficial de X, por 1,000
    $10.00

El precio es una de cinco cosas que comprobar antes de conectar una fuente de datos de X a n8n, y Sorsa API cumple cada una con un número:

  • Configuración: un encabezado en una credencial Header Auth, frente a una app de desarrollador, OAuth2 y una URL de callback.
  • Velocidad: 20 solicitudes por segundo en todos los planes, cuentas gratuitas incluidas.
  • Cobertura: búsqueda desde 2006, cronologías, menciones, seguidores y Listas, frente a una búsqueda de 7 días en el nodo de X.
  • Seguridad de la cuenta: Sorsa API nunca pide tu inicio de sesión ni tus cookies de X, así que ninguna cuenta tuya de X corre riesgo.
  • Fiabilidad: en producción desde 2022, con más de 6 mil millones de solicitudes procesadas; cuando X cambia algo, Sorsa API lo arregla de su lado y tu flujo de trabajo conserva los mismos campos.

#Dale datos de X en vivo a un AI Agent de n8n

Un AI Agent de n8n puede buscar en X por sí solo cuando Sorsa API se le conecta como herramienta. Conecta un nodo HTTP Request al agente como herramienta, apúntalo a POST /search-tweets con tu credencial Header Auth, y llena el valor query del cuerpo con una expresión que llame a $fromAI('query', 'An X search query with operators', 'string'). Entonces el modelo escribe la búsqueda por sí mismo, y n8n la envía.

En la opción Optimize Response de la herramienta, conserva solo full_text, user.username, created_at y likes_count, para que el modelo lea posts en lugar de perfiles completos y gaste menos tokens. La guía de n8n sobre $fromAI() (se abre en una pestaña nueva) cubre los parámetros. Para agentes fuera de n8n, como Claude o Cursor, consulta la API de Twitter para agentes de IA.

#Construye tu primer flujo de trabajo de X en n8n

Leer datos de X en n8n se reduce a un nodo HTTP Request con un encabezado de clave, el endpoint correcto y un cursor que pagina hasta quedar vacío. Constrúyelo sobre Sorsa API: un encabezado ApiKey en lugar de una app OAuth, 20 posts o 200 seguidores por solicitud, desde $0.07 por 1,000 posts, y 100 solicitudes gratis que cubren tus primeros 2,000 posts.

El mismo patrón de nodo funciona también en código; la guía de la API de Twitter en Python lo muestra con requests.

#Preguntas frecuentes

¿n8n tiene un trigger para posts nuevos?

No. n8n no tiene un nodo trigger que se dispare cuando alguien publica en X, y Sorsa API tampoco tiene webhooks, así que los posts nuevos se encuentran consultando periódicamente. Inicia el flujo de trabajo con un Schedule Trigger cada pocos minutos, pide los posts más recientes y pásalos por un nodo Remove Duplicates con el ID del post como clave para que cada post se dispare una sola vez.

¿Qué API de Twitter debo usar con n8n?

Usa Sorsa API para leer datos de X en n8n. Funciona en el nodo HTTP Request estándar con un solo encabezado ApiKey y sin app OAuth, devuelve 20 posts o 200 seguidores por solicitud desde $0.07 por 1,000 posts, frente a $5.00 por 1,000 posts en la API oficial de X, y funciona a 20 solicitudes por segundo en todos los planes. Conserva el nodo de X solo para publicar.

¿Puedo leer Twitter en n8n sin una cuenta de desarrollador?

Sí. Sorsa API solo necesita su propia clave API: devuelve datos públicos de X como JSON limpio mediante una sola API REST y nunca pide tu inicio de sesión de X. Los nodos scraper de la comunidad funcionan con una sesión iniciada de X o con cookies, lo que expone esa cuenta de X a un bloqueo. Sorsa API devuelve solo datos públicos, y cómo los uses sigue siendo tu responsabilidad ante la ley y las reglas de X.

¿Puede n8n publicar posts a través de Sorsa API?

No. Sorsa API es de solo lectura por diseño: nunca publica, da like, sigue ni envía mensajes, así que no puede dañar ninguna cuenta de X. Conserva el nodo de X de n8n con una app OAuth2 para publicar, y lee con Sorsa API en el nodo HTTP Request. Ambos nodos conviven en un mismo flujo de trabajo.

¿Cuántos posts cubren 100 solicitudes gratis en n8n?

Unos 2,000 posts de búsqueda, cronologías o menciones, a 20 por solicitud, o 20K seguidores a 200 por solicitud. Las 100 solicitudes gratis vienen con toda cuenta nueva de Sorsa API, no necesitan tarjeta de crédito y nunca vencen, así que un primer flujo de trabajo puede correr de punta a punta antes de que elijas un plan.

#Cómo lo comprobamos

El 2 de noviembre de 2026 leímos las operaciones del nodo de X en la documentación de n8n y el código fuente del nodo en GitHub, y las opciones de paginación, lotes y Header Auth del nodo HTTP Request en la documentación y el código fuente de n8n. Comprobamos los precios de X en docs.x.com el mismo día y cotejamos cada endpoint, campo y tamaño de página de Sorsa API con la referencia de la API en vivo. No teníamos clave API para esta pasada, así que las solicitudes, la respuesta y el flujo de trabajo están escritos a partir de esas referencias en lugar de ejecutados.

Por el equipo de Sorsa API. Creamos y operamos Sorsa API, la API y scraper de Twitter/X de solo lectura, en producción desde 2022 (antes TweetScout API) y con más de 6 mil millones de solicitudes procesadas. Acerca de Sorsa API

Qué cambió
  • Reescrito desde cero: se verificaron las opciones de los nodos de n8n y los precios de X, paginación con next_cursor, un generador de nodos de n8n, un flujo de trabajo importable, recetas de seguidores y de AI Agent.
  • Primera publicación.