Verifica follows y retweets de Twitter por API
Una API verifica un follow, retweet, cita o respuesta en X comprobando una cuenta contra una acción y respondiendo verdadero o falso; la API oficial de X no tiene esa verificación, así que ahí significa leer listas completas a $0.010 por cuenta.
Respuesta corta: Cada acción tiene su propia verificación: follow, retweet, cita, respuesta o ingreso a una Comunidad. Los me gusta no tienen ninguna, porque desde junio de 2024 solo el autor de un post ve quién le dio me gusta. Sorsa API responde cada verificación en una solicitud, POST /check-follow y cuatro más, desde $1.40 por cada 1,000 verificaciones; tus 100 solicitudes gratis cubren las primeras 100.
- Endpoints
/check-follow+ 4 más- Solicitudes
- 1 por verificación
- Precio
- desde $0.0014 por verificación
#Qué puedes verificar en X y qué no
Cinco acciones en X son públicas, así que una API puede confirmar cada una para una cuenta a la vez: un follow, un retweet, una cita, una respuesta y la membresía a una Comunidad. Aquí, verificar significa comprobar que una cuenta hizo algo, como seguirte o republicar tu post; no tiene nada que ver con la insignia azul de X.
Para un solo par de cuentas, el Verificador de follows de Twitter gratuito muestra si una sigue a la otra, en ambos sentidos y sin código. Para elegir ganadores entre los reposts, respuestas y citas de un post, el Selector de sorteos de X (Twitter) gratuito verifica el follow de cada ganador elegido. Verificar a todos los participantes de una campaña requiere una API.
Todas las tareas, salvo el me gusta, se pueden comprobar, pero la API oficial de X no comprueba ninguna de forma directa: te entrega listas para buscar en ellas, y no tiene ninguna ruta para la membresía a una Comunidad.
| Tarea | Qué necesita la verificación | Ruta de la API oficial de X |
|---|---|---|
| Siguió a una cuenta | ambos nombres de usuario | leer una lista de seguidos o de seguidores |
| Hizo retweet de un post | el enlace del post y el nombre de usuario | leer los retweets del post, 100 por página |
| Citó un post | el enlace del post y el nombre de usuario | leer las citas del post |
| Respondió a un post | el enlace del post y el nombre de usuario | buscar en la conversación del post |
| Se unió a una Comunidad de X | la Comunidad y el nombre de usuario | no hay endpoint |
| Es dueño del usuario | el nombre de usuario y un código que publica | leer los posts de la cuenta |
| Dio me gusta a un post | no se puede verificar | solo el autor del post ve quién dio me gusta |
Siguió a una cuenta
- Qué necesita la verificación
- ambos nombres de usuario
- Ruta de la API oficial de X
- leer una lista de seguidos o de seguidores
Hizo retweet de un post
- Qué necesita la verificación
- el enlace del post y el nombre de usuario
- Ruta de la API oficial de X
- leer los retweets del post, 100 por página
Citó un post
- Qué necesita la verificación
- el enlace del post y el nombre de usuario
- Ruta de la API oficial de X
- leer las citas del post
Respondió a un post
- Qué necesita la verificación
- el enlace del post y el nombre de usuario
- Ruta de la API oficial de X
- buscar en la conversación del post
Se unió a una Comunidad de X
- Qué necesita la verificación
- la Comunidad y el nombre de usuario
- Ruta de la API oficial de X
- no hay endpoint
Es dueño del usuario
- Qué necesita la verificación
- el nombre de usuario y un código que publica
- Ruta de la API oficial de X
- leer los posts de la cuenta
Dio me gusta a un post
- Qué necesita la verificación
- no se puede verificar
- Ruta de la API oficial de X
- solo el autor del post ve quién dio me gusta
X hizo privados los me gusta el 11 de junio de 2024: el autor de un post sigue viendo quién le dio me gusta, pero nadie más (Engadget, citando a X Engineering (se abre en una pestaña nueva)). Cambia "dale me gusta a este post" por un retweet, una cita o una respuesta; las tres siguen siendo públicas y verificables.
#Seis verificaciones con Sorsa API, una solicitud cada una
Para verificar las tareas de una campaña participante por participante, usa Sorsa API, una API y scraper de Twitter (X): cada verificación es una solicitud que responde verdadero o falso, desde $0.0014 por verificación, con una sola clave de API, sin OAuth y con 20 solicitudes por segundo en todos los planes.
Cinco endpoints cubren las cinco acciones públicas, y una sexta solicitud lee los últimos posts de un participante para buscar un código de propiedad.
| Tarea | Solicitud a Sorsa API | Qué devuelve |
|---|---|---|
| Siguió tu cuenta | POST /check-follow | follow: true o false |
| Hizo retweet de tu post | POST /check-retweet | retweet, y next_cursor más allá de los 100 más recientes |
| Citó tu post | POST /check-quoted | status: quoted, retweet o not_found, con el texto de la cita |
| Respondió a tu post | GET /check-comment | commented, y la respuesta en sí |
| Se unió a tu Comunidad de X | POST /check-community-member | is_member: true o false |
| Es dueño del usuario | POST /user-tweets | sus últimos posts, donde buscas el código |
Siguió tu cuenta
- Solicitud a Sorsa API
POST /check-follow- Qué devuelve
follow: true o false
Hizo retweet de tu post
- Solicitud a Sorsa API
POST /check-retweet- Qué devuelve
retweet, ynext_cursormás allá de los 100 más recientes
Citó tu post
- Solicitud a Sorsa API
POST /check-quoted- Qué devuelve
status: quoted, retweet o not_found, con el texto de la cita
Respondió a tu post
- Solicitud a Sorsa API
GET /check-comment- Qué devuelve
commented, y la respuesta en sí
Se unió a tu Comunidad de X
- Solicitud a Sorsa API
POST /check-community-member- Qué devuelve
is_member: true o false
Es dueño del usuario
- Solicitud a Sorsa API
POST /user-tweets- Qué devuelve
- sus últimos posts, donde buscas el código
Cada verificación recibe al participante como nombre de usuario, ID numérico de usuario o enlace de perfil, y el post como enlace o ID. Las respuestas traen más que un sí: el texto de la cita, la respuesta en sí y un indicador user_protected en las verificaciones de follow, retweet y cita cuando la cuenta de un participante es privada. Tu propia cuenta de X nunca participa, así que ninguna campaña la pone en riesgo.
#Verifica a un participante en cuatro pasos
Verificar a un participante toma una solicitud por tarea. Este ejemplo verifica un follow, un retweet y una respuesta, las reglas de sorteo más comunes, con la clave en el encabezado ApiKey.
-
Obtén una clave. Regístrate y copia tu clave de API desde el panel. Las primeras 100 solicitudes son gratis y no piden tarjeta.
-
Verifica el follow. Envía tu usuario como
username_1y el del participante comousername_2.Terminal curl -X POST "https://api.sorsa.io/v3/check-follow" \ -H "ApiKey: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"username_1": "lumenharbor_labs", "username_2": "maya_quest_runner"}'Response200 OK { "follow": true, "user_protected": false } -
Verifica las tareas sobre el post. Envía el enlace de tu post y el usuario del participante a
POST /check-retweeten un cuerpo JSON y aGET /check-commentcomo parámetros de consulta. -
Combina las respuestas. Marca al participante como elegible solo cuando todas las verificaciones requeridas devolvieron true, y guarda cada respuesta como registro.
import requests BASE = "https://api.sorsa.io/v3" HEADERS = {"ApiKey": "YOUR_API_KEY"} BRAND = "lumenharbor_labs" POST = "https://x.com/lumenharbor_labs/status/2115459618305512658" def call(method, path, **kwargs): r = requests.request(method, BASE + path, headers=HEADERS, timeout=20, **kwargs) r.raise_for_status() return r.json() def verify_entrant(handle): follow = call("POST", "/check-follow", json={"username_1": BRAND, "username_2": handle}) retweet = call("POST", "/check-retweet", json={"tweet_link": POST, "username": handle}) reply = call("GET", "/check-comment", params={"tweet_link": POST, "username": handle}) result = { "handle": handle, "follow": follow["follow"], "retweet": retweet["retweet"], "reply": reply["commented"], "protected": follow.get("user_protected", False), } result["eligible"] = all( result[k] for k in ("follow", "retweet", "reply")) return result print(verify_entrant("maya_quest_runner"))
Tres verificaciones, tres solicitudes: verificar a este participante costó desde $0.0042. Un 403 significa que falta la clave o que se agotaron sus solicitudes. Un 429 significa que llegaron más de 20 solicitudes en un segundo: espera un segundo y envíala de nuevo. Las solicitudes fallidas nunca se cobran.
#Verifica si una cuenta de X sigue a otra
POST /check-follow (se abre en una pestaña nueva) responde si la segunda cuenta sigue a la primera: username_1 es la cuenta que debería ser seguida, username_2 es la cuenta que verificas, y follow vuelve como true o false en una solicitud, sin importar cuántos seguidores tenga cualquiera de las dos.
Cada lado recibe un identificador: un nombre de usuario, un ID numérico (user_id_1, user_id_2) o un enlace de perfil (user_link_1, user_link_2). La respuesta cubre un solo sentido, así que un follow mutuo requiere dos llamadas con los lados invertidos. Cuando user_protected es true, la cuenta verificada está protegida: sus follows no son públicos y ningún servicio externo puede confirmarlos.
La API oficial de X no tiene un endpoint que responda por un solo par. Su ruta lee una lista completa: GET /2/users/:id/following devuelve hasta 1,000 cuentas por página, cobradas a $0.010 por cuenta en Following/Followers: Read de la tarifa de pago por uso de X (se abre en una pestaña nueva). Verificar así a un participante que sigue a 800 cuentas cuesta hasta $8, y leer tu propia lista de 50K seguidores cuesta $500 cada vez.
#Verifica si un usuario hizo retweet de tu post
POST /check-retweet (se abre en una pestaña nueva) recorre los retweets de tu post de 100 en 100, del más reciente al más antiguo, y devuelve retweet: true en cuanto encuentra al participante; cuando los primeros 100 no lo incluyen, next_cursor continúa con los 100 siguientes.
Un retweet verificado mientras el participante espera, por ejemplo justo después de pulsar "Verificar" en una página de quests, está entre los 100 más recientes, así que una solicitud lo responde. Un participante que republicó en el lanzamiento de un post viral está más abajo: el ciclo de abajo sigue el cursor hasta un tope que tú eliges y responde "aún sin verificar" en lugar de "no" cuando se acaba el tope.
def retweeted(post, handle, max_pages=10): # 10 pages = 1,000 retweets
body = {"tweet_link": post, "username": handle}
for _ in range(max_pages):
page = call("POST", "/check-retweet", json=body)
if page["retweet"]:
return "yes"
if not page.get("next_cursor"):
return "no"
body["next_cursor"] = page["next_cursor"]
return "not checked yet"
La API oficial de X lee la misma lista con GET /2/tweets/:id/retweeted_by: 100 cuentas por página a $0.010 cada una, y 75 solicitudes cada 15 minutos por app, lo que limita una extracción a 7,500 retweeters por ventana (límites de la API de X (se abre en una pestaña nueva)).
#Verifica citas, respuestas e ingresos a Comunidades
Tres verificaciones más cubren el resto de una campaña: POST /check-quoted (se abre en una pestaña nueva) distingue una cita de un retweet simple, GET /check-comment (se abre en una pestaña nueva) devuelve la respuesta del participante y POST /check-community-member (se abre en una pestaña nueva) responde si se unió a tu Comunidad de X.
/check-quoted devuelve status como quoted, retweet (republicó sin comentario) o not_found, y agrega el texto y la fecha de la cita cuando existe. Ese texto es lo que te permite hacer cumplir reglas como una longitud mínima o un hashtag de la campaña.
{
"status": "quoted",
"date": "2026-10-28 15:21:47",
"text": "Joined the Lumen Harbor beta. The queue tool is quick #LumenBeta",
"user_protected": false
}
/check-comment recibe como parámetros de consulta el tweet_link del post y el participante y, cuando commented es true, devuelve la respuesta completa: su full_text, created_at y los conteos de interacción, de modo que las respuestas con solo emojis o copiadas puedan incumplir tus reglas. Para leer todas las respuestas bajo un post de una vez, consulta cómo ver comentarios en X.
/check-community-member recibe community_id o community_link, y cada uno acepta el ID numérico o la URL completa x.com/i/communities/, además del participante, y devuelve is_member. La API oficial de X puede consultar una Comunidad por ID o buscar una, pero no tiene un endpoint que liste miembros o verifique la membresía.
#Verifica un sorteo desde las participaciones hasta el pago
Un sorteo verificado se hace en tres pasos: reunir el usuario de cada participante, ejecutar una verificación por cada tarea requerida y pagar solo a los participantes que pasaron todas.
-
Reúne usuarios y un código. Pide el usuario de X en tu formulario de participación y muestra a cada participante un código corto de un solo uso para que lo publique, de modo que puedas comprobar que el usuario es suyo (siguiente sección).
-
Ejecuta una verificación por tarea. Verifica al participar para obtener una respuesta instantánea, o después de que cierren las participaciones; el diagrama de abajo elige la ruta más barata para tu tamaño.
-
Verifica de nuevo y luego paga. Ejecuta
/check-followotra vez con los ganadores antes del pago, porque algunos participantes dejan de seguir una vez que participaron, y luego elige solo entre los participantes que pasaron todo.Verifica al participar para obtener respuestas instantáneas; en una campaña cerrada de miles, extrae cada lista una vez y cruza los IDs.
La ruta por listas conviene cuando los participantes llegan a los miles: GET /followers (se abre en una pestaña nueva) devuelve 200 seguidores por página y POST /retweeters (se abre en una pestaña nueva) 20 retweeters por página, del más reciente al más antiguo, así que 10K retweeters toman 500 solicitudes en lugar de 10K verificaciones. La guía para exportar seguidores de Twitter trae el ciclo con cursor para la lista de seguidores; cruza ambas listas por el id de la cuenta, que nunca cambia aunque cambie el usuario.
Las propias Directrices para promociones en X (se abre en una pestaña nueva) piden a quienes organizan que descarten las participaciones desde varias cuentas y los posts idénticos repetidos, y advierten que una búsqueda pública puede no mostrar todas las participaciones. Verificar a cada participante por su usuario evita ese hueco, porque la verificación nunca depende de la búsqueda; el código de propiedad y el filtro de perfil de abajo dejan fuera las cuentas prestadas y desechables.
#Detén usuarios falsos y bots antes de pagar
Dos verificaciones baratas mantienen fuera de un pago a los usuarios prestados y a las granjas de bots: un código de propiedad leído con POST /user-tweets (se abre en una pestaña nueva) y un filtro de perfil mediante GET /info-batch (se abre en una pestaña nueva), con 100 participantes por solicitud.
El código de propiedad funciona porque solo el dueño de la cuenta puede publicar desde ella: dale a cada participante un código como LUMEN-7Q4K, luego lee sus últimos posts, hasta 20 por solicitud, y búscalo.
from datetime import datetime, timedelta, timezone
CUTOFF = datetime.now(timezone.utc) - timedelta(days=30)
def owns_handle(handle, code):
page = call("POST", "/user-tweets", json={"username": handle})
return any(code in t["full_text"] for t in page.get("tweets", []))
def looks_real(user):
joined = datetime.fromisoformat(
user["created_at"].replace("Z", "+00:00"))
return (joined < CUTOFF and user["tweets_count"] >= 10
and user["followers_count"] >= 5)
def real_entrants(handles):
keep = []
for i in range(0, len(handles), 100):
batch = {"usernames": handles[i:i + 100]}
users = call("GET", "/info-batch", params=batch)["users"]
keep += [u["username"] for u in users if looks_real(u)]
return keep
El filtro de arriba descarta las cuentas con menos de 30 días, con menos de 10 posts o con menos de 5 seguidores; ajusta los números a tu audiencia. Los perfiles cuestan desde $0.014 por cada 1,000, así que filtrar a 10K participantes cuesta desde $0.14. Para puntuar una lista sospechosa con más profundidad, la guía sobre detección de bots en Twitter explica las señales que distinguen a los bots de las personas.
Para tener en cuenta
Distingue "no lo hizo" de "no se pudo verificar". Un
429, un tiempo de espera agotado o un ciclo de retweets que llegó a su tope significan que el participante aún no está verificado, no que haya fallado. Guarda ese estado, reintenta más tarde y rechaza a un participante solo ante un false claro.
#Cuánto cuesta verificar una campaña
Verificar una campaña con Sorsa API cuesta una solicitud por tarea por participante, desde $0.0014 cada una; en la API oficial de X la misma comprobación significa leer listas completas, a $0.010 por cuenta y $0.005 por post.
Tarea por tarea, la columna de Sorsa API se queda en una solicitud, mientras que la columna de la API oficial de X crece con cada lista que lee y no tiene ninguna entrada para la membresía a una Comunidad.
| Tarea | Sorsa API | Ruta y precio de la API oficial de X |
|---|---|---|
| Follow | 1 solicitud, desde $0.0014 | Leer una lista de seguidores o seguidos, $0.010 por cuenta |
| Retweet | 1 solicitud al participar, desde $0.0014 | Leer retweeted_by, $0.010 por cuenta, 75 solicitudes cada 15 min |
| Cita | 1 solicitud, desde $0.0014 | Leer los posts que citan, $0.005 por post |
| Respuesta | 1 solicitud, desde $0.0014 | Buscar en la conversación, $0.005 por post |
| Comunidad | 1 solicitud, desde $0.0014 | No hay endpoint |
| Código de propiedad | 1 solicitud, desde $0.0014 | Leer los posts del usuario, 5 como mínimo: $0.025 |
Follow
- Sorsa API
- 1 solicitud, desde $0.0014
- Ruta y precio de la API oficial de X
- Leer una lista de seguidores o seguidos, $0.010 por cuenta
Retweet
- Sorsa API
- 1 solicitud al participar, desde $0.0014
- Ruta y precio de la API oficial de X
- Leer retweeted_by, $0.010 por cuenta, 75 solicitudes cada 15 min
Cita
- Sorsa API
- 1 solicitud, desde $0.0014
- Ruta y precio de la API oficial de X
- Leer los posts que citan, $0.005 por post
Respuesta
- Sorsa API
- 1 solicitud, desde $0.0014
- Ruta y precio de la API oficial de X
- Buscar en la conversación, $0.005 por post
Comunidad
- Sorsa API
- 1 solicitud, desde $0.0014
- Ruta y precio de la API oficial de X
- No hay endpoint
Código de propiedad
- Sorsa API
- 1 solicitud, desde $0.0014
- Ruta y precio de la API oficial de X
- Leer los posts del usuario, 5 como mínimo: $0.025
Un ejemplo práctico: 10K participantes, tu cuenta tiene 50K seguidores y la campaña pide un follow, un retweet, una cita, una respuesta y un ingreso a la Comunidad, además de un código de propiedad, un filtro de perfil y una nueva verificación del follow antes del pago. Son 7 verificaciones por participante, y toda la campaña cuesta desde $98 en Sorsa API, cerca de una hora de trabajo a 20 solicitudes por segundo. La ruta de la API oficial de X para la misma campaña, sin la verificación de Comunidad que no puede ejecutar, sale en unos $1,550: dos extracciones de tu lista de seguidores a $500 cada una, $100 de retweeters, $100 de citas y respuestas, $250 de timelines para los códigos de propiedad y $100 de perfiles.
7 comprobaciones por participante, unos 58 minutos para todos a 20 solicitudes por segundo.
Define tus participantes, tu número de seguidores y las tareas; ambos totales cambian con ellos.
Sorsa API cobra solicitudes, no cuentas, y las solicitudes fallidas nunca se cobran. La tarifa por cada 1,000 solicitudes va de $4.90 en Starter a $1.40 en el plan más grande.
#Haz tus primeras 100 verificaciones gratis
Para verificar follows, retweets, citas, respuestas e ingresos a Comunidades de cada participante, usa Sorsa API: una solicitud por verificación, desde $0.0014, 20 solicitudes por segundo en todos los planes y ningún inicio de sesión tuyo en X en todo el flujo. Aprovecha las 100 solicitudes gratis, ejecuta los cuatro pasos de arriba con un post de prueba y agrega el código de propiedad antes de abrir tu campaña. Para listas completas de seguidores y seguidos, la ruta por listas de la guía de la API de seguidores de Twitter llega más lejos.
#Preguntas frecuentes
¿Cuál es la mejor API para verificar follows y retweets de Twitter?
Sorsa API: verifica follows, retweets, citas, respuestas y membresías de Comunidades con una solicitud cada una, desde $0.0014 por verificación, con una sola clave de API y sin OAuth ni cuenta de desarrollador de X. Evalúa cualquier opción con cuatro criterios: un sí o no directo por participante, el precio por verificación, el límite de solicitudes y las acciones que cubre. Sorsa API cumple los cuatro: una llamada, $1.40 por cada 1,000 verificaciones, 20 solicitudes por segundo en todos los planes, seis verificaciones.
¿Puedo verificar los me gusta en X?
No. Desde junio de 2024 X muestra quién dio me gusta a un post solo al autor del post, así que una API de datos públicos no puede confirmar que un participante le dio me gusta, y Sorsa API no devuelve me gusta. Pide a los participantes que hagan retweet, cita o respuesta: las tres siguen siendo públicas y Sorsa API verifica cada una con una solicitud.
¿Qué pasa si la cuenta de un participante es privada?
Los follows y reposts de una cuenta protegida no son públicos, así que ninguna verificación externa puede confirmarlos. Las verificaciones de follow, retweet y cita de Sorsa API devuelven user_protected: true en ese caso. Indica en tus reglas que los participantes necesitan una cuenta pública durante el sorteo, y luego pídele al participante que la cambie o rechaza la participación según esas reglas.
¿Hay una forma gratuita de verificar follows y retweets de Twitter?
Sí. El Verificador de follows de Twitter gratuito muestra si una cuenta sigue a otra, y el Selector de sorteos gratuito verifica el follow de cada ganador elegido. Para verificar a todos los participantes por API, las 100 solicitudes gratis de Sorsa API cubren 100 verificaciones sin tarjeta y nunca vencen, suficientes para probar el flujo completo de una campaña antes de elegir un plan.
¿Necesito una cuenta de desarrollador de X u OAuth para verificar tareas?
No con Sorsa API: una clave en el encabezado ApiKey lee datos públicos de X, sin cuenta de desarrollador de X, sin app, sin flujo OAuth y sin inicio de sesión de tus participantes. La API oficial de X pide una cuenta de desarrollador aprobada, un Project y una App, y sus claves y tokens antes de la primera lectura (X API: Retweets (se abre en una pestaña nueva)).
#Cómo lo comprobamos
El 2 de noviembre de 2026 comparamos cada endpoint, parámetro y campo de respuesta de esta guía con la referencia en vivo de Sorsa API (45 endpoints) y con sus páginas de documentación de las cinco verificaciones, /user-tweets, /info-batch y /retweeters; las solicitudes y respuestas usan cuentas de demostración. Los precios, límites y endpoints de la API oficial de X salen de docs.x.com, y las reglas de promociones de X, de su Centro de ayuda, leídos el mismo día. Los costos de las campañas son aritmética propia a partir de ambas tarifas.
Fuentes
- Sorsa API reference: Check Follow (se abre en una pestaña nueva)
- Sorsa API reference: Check Retweet (se abre en una pestaña nueva)
- Sorsa API reference: Check Quote or Retweet (se abre en una pestaña nueva)
- Sorsa API reference: Check Comment (se abre en una pestaña nueva)
- Sorsa API reference: Check Community Membership (se abre en una pestaña nueva)
- X API pricing (se abre en una pestaña nueva)
- X API rate limits (se abre en una pestaña nueva)
- X API: Follows (se abre en una pestaña nueva)
- X API: Retweets (se abre en una pestaña nueva)
- X Help Center: Guidelines for Promotions on X (se abre en una pestaña nueva)
- Engadget: X is officially making likes (mostly) private for everyone (se abre en una pestaña nueva)