Cómo obtener una clave de la API de Twitter (X)
Para obtener una clave de la API de Twitter (X), inicia sesión en console.x.com con tu cuenta de X, acepta el Developer Agreement, crea una app y guarda sus claves y el Bearer token, y luego compra créditos: cada post leído cuesta $0.005.
Respuesta corta: La consola emite la clave de API, su secreto, un Bearer token y credenciales OAuth cuando se crea la app, y muestra cada una una sola vez. Mientras no compres créditos, cada solicitud responde HTTP 402 CreditsDepleted. Para leer datos públicos de X con una sola clave, usa Sorsa API: tweets desde $0.014 por 1,000, y 100 solicitudes gratis sin tarjeta.
ApiKey: YOUR_API_KEY- una clave, sin OAuth
- Precio
- desde $0.014 por 1K tweets
#Cómo obtener una clave oficial de la API de X, paso a paso
Una clave oficial de la API de X sale del X Developer Console en console.x.com, el sitio donde X emite todas las credenciales de su API, y el camino tiene seis pasos. La guía Getting Access (se abre en una pestaña nueva) de X enumera los primeros cuatro. Los créditos del paso 5 están en su página de precios, y la solicitud del paso 6 falla sin ellos.
Abrir una cuenta de desarrollador y crear una app no cuesta nada. Leer sí: X cobra $0.005 por cada post que devuelve una respuesta y $0.010 por cada perfil o seguidor, con un saldo que recargas por adelantado. Nuestro desglose de precios de la API de X lista cada tarifa.
-
Inicia sesión en console.x.com. Usa la cuenta de X que debe ser dueña de la app; no hay un login de desarrollador aparte.
-
Acepta el Developer Agreement. Lee y acepta el Developer Agreement and Policy de X, y describe con palabras sencillas qué vas a construir y qué datos lee. X no publica cuánto tarda esta revisión.
-
Crea una app. Haz clic en New App e ingresa un nombre, una descripción y un caso de uso. La consola genera las credenciales de la app en cuanto existe.
-
Guarda las credenciales. Copia la clave de API y su secreto, y el Bearer token. Si la app va a publicar o actuar por otras personas, copia también el access token y su secreto, o el client ID y el secreto de OAuth 2.0. Cada valor se muestra una sola vez.
-
Compra créditos. En la consola, agrega una tarjeta y compra créditos. Fija un límite de gasto mientras pruebas; la recarga automática puede esperar a que un trabajo no deba detenerse nunca.
-
Envía una solicitud de prueba. Consulta una cuenta pública con el Bearer token en el header
Authorization. Un objeto JSON conid,nameyusernamesignifica que la clave funciona, y la consulta cuesta $0.010, el precio de una lectura de usuario.Terminal curl "https://api.x.com/2/users/by/username/XDevelopers" \ -H "Authorization: Bearer $X_BEARER_TOKEN"Seis pasos de console.x.com a una clave oficial que funciona. El paso 5, los créditos, es el que la guía Getting Access de X omite.
Para leer posts y perfiles públicos, el Bearer token es la única credencial que envía tu código. Los access tokens y el par de OAuth 2.0 importan cuando la app publica o actúa por otras personas, y la tabla de credenciales de abajo muestra cuál es cuál.
#Obtén una clave de Sorsa API en unos 3 minutos
Para leer datos públicos de X, usa Sorsa API, una API y scraper de Twitter (X): una clave reemplaza la app, sus credenciales y el saldo de créditos, y los tweets cuestan desde $0.014 por 1,000. Eso es 250 veces menos que la API oficial de X. No interviene ninguna cuenta tuya de X, así que tu cuenta corre cero riesgo, y la clave funciona a 20 solicitudes por segundo en todos los planes, cuentas gratis incluidas.
-
Regístrate. Regístrate con Google o con un correo electrónico. No hay tarjeta, ni cuenta de X, ni revisión, y la cuenta empieza con 100 solicitudes gratis que nunca vencen.
-
Copia la clave. La página de resumen del dashboard muestra tu clave API. Guárdala en una variable de entorno en tu servidor, como
SORSA_API_KEY. -
Verifica la clave gratis. Llama a
GET /key-usage-info(se abre en una pestaña nueva) con la clave en el headerApiKey. Esta llamada nunca descuenta de tus solicitudes, así que probar una clave no cuesta nada.Terminal curl "https://api.sorsa.io/v3/key-usage-info" \ -H "ApiKey: YOUR_API_KEY"Response200 OK { "key_requests": 100, "remaining_requests": 100, "total_requests": 0 }
remaining_requests es lo que la clave aún puede gastar. En un plan de pago la respuesta incluye además valid_until, la fecha en que vence el saldo actual de solicitudes; las 100 solicitudes gratis no tienen esa fecha. A partir de aquí, cada endpoint de Sorsa API, 45 en total, usa el mismo header: GET /info (se abre en una pestaña nueva) devuelve un perfil, y la búsqueda, los timelines, los seguidores y los lotes de 100 tweets funcionan igual.
Lado a lado, la clave de Sorsa API necesita menos piezas, no cuesta nada verificarla y lee tweets por una pequeña fracción del precio oficial:
| Qué se necesita | Clave de Sorsa API | Clave de la API oficial de X |
|---|---|---|
| Registro con | Correo o Google | Tu cuenta de X |
| Antes de que aparezca la clave | Solo el registro | Developer Agreement, descripción de uso, una app |
| Qué guardas | 1 clave API | Hasta 7 valores: clave y secreto, Bearer token, access token y secreto, client ID y secreto |
| Header en cada solicitud | ApiKey: <key> | Authorization: Bearer <token> |
| Antes de la primera lectura | 100 solicitudes gratis, sin tarjeta | Créditos prepagados, o HTTP 402 |
| Verificar que la clave funciona | GET /key-usage-info, gratis | Una lectura cobrada, como $0.010 por un perfil |
| Tasa de solicitudes | 20 solicitudes por segundo en todos los planes | Ventanas separadas de 15 minutos para cada endpoint |
| 1,000 tweets | Desde $0.014 | $5.00 |
Registro con
- Clave de Sorsa API
- Correo o Google
- Clave de la API oficial de X
- Tu cuenta de X
Antes de que aparezca la clave
- Clave de Sorsa API
- Solo el registro
- Clave de la API oficial de X
- Developer Agreement, descripción de uso, una app
Qué guardas
- Clave de Sorsa API
- 1 clave API
- Clave de la API oficial de X
- Hasta 7 valores: clave y secreto, Bearer token, access token y secreto, client ID y secreto
Header en cada solicitud
- Clave de Sorsa API
ApiKey: <key>- Clave de la API oficial de X
Authorization: Bearer <token>
Antes de la primera lectura
- Clave de Sorsa API
- 100 solicitudes gratis, sin tarjeta
- Clave de la API oficial de X
- Créditos prepagados, o HTTP 402
Verificar que la clave funciona
- Clave de Sorsa API
GET /key-usage-info, gratis- Clave de la API oficial de X
- Una lectura cobrada, como $0.010 por un perfil
Tasa de solicitudes
- Clave de Sorsa API
- 20 solicitudes por segundo en todos los planes
- Clave de la API oficial de X
- Ventanas separadas de 15 minutos para cada endpoint
1,000 tweets
- Clave de Sorsa API
- Desde $0.014
- Clave de la API oficial de X
- $5.00
En código, lee la clave de una variable de entorno, o pégala en lugar de YOUR_API_KEY para una primera prueba, y detente ante cualquier estado distinto de 200; el message del JSON dice qué salió mal.
import os
import requests
key = os.environ.get("SORSA_API_KEY", "YOUR_API_KEY")
r = requests.get("https://api.sorsa.io/v3/key-usage-info",
headers={"ApiKey": key}, timeout=30)
if r.status_code != 200:
raise SystemExit(f"{r.status_code}: {r.json()['message']}")
print("requests left:", r.json()["remaining_requests"])
Si viniste para evitar por completo la consola de X, la guía de la API de Twitter sin cuenta de desarrollador recorre las primeras lecturas: tweets, búsqueda y listas de seguidores.
#Qué hace cada credencial de X
La API oficial de X emite cuatro tipos de credenciales, y leer datos públicos solo necesita una de ellas, el Bearer token. La clave de API y su secreto, también llamados consumer key y secret, identifican tu app y funcionan como su usuario y contraseña. La página API Key and Secret (se abre en una pestaña nueva) de X lo dice con esas palabras. Las demás credenciales se generan a partir de ellas, o para una persona que usa tu app.
Solo el Bearer token lee posts públicos por sí solo, así que un script que nunca publica puede ignorar las otras tres filas:
| Credencial | Qué es | Para qué sirve | Lee posts públicos por sí sola |
|---|---|---|---|
| Clave de API y secreto (consumer key y secret) | La identidad de tu app | Firmar solicitudes OAuth 1.0a, generar el Bearer token | No |
| Bearer token | Token OAuth 2.0 solo de app | Lecturas públicas: posts, perfiles, búsqueda | Sí |
| Access token y secreto | Par OAuth 1.0a de la cuenta dueña de la app | Publicar y actuar como esa cuenta | Sí, como esa cuenta |
| Client ID y secreto de OAuth 2.0 | La identidad de tu app en el flujo de inicio de sesión | Dejar que otras personas inicien sesión con X y actúen a través de tu app | No, producen tokens de usuario |
Clave de API y secreto (consumer key y secret)
- Qué es
- La identidad de tu app
- Para qué sirve
- Firmar solicitudes OAuth 1.0a, generar el Bearer token
- Lee posts públicos por sí sola
- No
Bearer token
- Qué es
- Token OAuth 2.0 solo de app
- Para qué sirve
- Lecturas públicas: posts, perfiles, búsqueda
- Lee posts públicos por sí sola
- Sí
Access token y secreto
- Qué es
- Par OAuth 1.0a de la cuenta dueña de la app
- Para qué sirve
- Publicar y actuar como esa cuenta
- Lee posts públicos por sí sola
- Sí, como esa cuenta
Client ID y secreto de OAuth 2.0
- Qué es
- La identidad de tu app en el flujo de inicio de sesión
- Para qué sirve
- Dejar que otras personas inicien sesión con X y actúen a través de tu app
- Lee posts públicos por sí sola
- No, producen tokens de usuario
Un Bearer token perdido se puede generar de nuevo con la clave y el secreto. La guía del Bearer token (se abre en una pestaña nueva) de X los envía como un par de autenticación básica a oauth2/token, y el campo access_token del JSON que vuelve es el Bearer token:
curl -u "$X_API_KEY:$X_API_SECRET" \
--data "grant_type=client_credentials" \
"https://api.x.com/oauth2/token"
Los permisos pertenecen a la app, no al token. Una app configurada en Read no puede publicar. Cámbiala a Read and write en sus ajustes de autenticación de usuario y luego genera de nuevo el access token y su secreto: un token conserva los permisos con los que se creó. Un token creado antes del cambio es una causa común de un 403 en el primer post.
Elige el trabajo que tu código debe hacer, y el selector te dice la credencial, el header y la primera solicitud:
¿Qué necesita hacer tu código?
Leer publicaciones y perfiles públicos
Sorsa API
- Credencial
- Una clave API
- Dónde la obtienes
- En el panel, justo después de registrarte
- Encabezado
ApiKey: <key>- Primera solicitud
GET /v3/key-usage-infosin costo- 1,000 tweets
- desde $0.014
API oficial de X
- Credencial
- Bearer token
- Dónde la obtienes
- La pestaña Keys and tokens de tu app
- Encabezado
Authorization: Bearer <token>- Primera solicitud
GET /2/users/by/username/…a $0.010- 1,000 tweets
- $5.00
Publicar como mi propia cuenta
API oficial de X
- Credencial
- Access token y secret, firmados con la API key y el secret
- Dónde la obtienes
- Keys and tokens, después de configurar la app en Read and write
- Encabezado
Authorization: OAuth …con una firma OAuth 1.0a- Primera solicitud
POST /2/tweets- Cada publicación
- $0.015
Una publicación con un enlace cuesta $0.20. Sorsa API es de solo lectura por diseño: nunca publica, así que tu cuenta de X queda fuera.
Dejar que otras personas inicien sesión con X
API oficial de X
- Credencial
- Client ID y secret de OAuth 2.0
- Dónde la obtienes
- Los ajustes de autenticación de usuario de la app, con una URL de callback
- Encabezado
Authorization: Bearer <user token>para cada persona- Primera solicitud
- El flujo de inicio de sesión: código de autorización con PKCE
- Lecturas y publicaciones
- tarifas oficiales
Cada persona que inicia sesión recibe su propio token, y cada lectura o publicación con él se cobra de tus créditos.
Una tarea, una credencial: el selector muestra de dónde sale, qué encabezado la lleva y cuánto cuesta la primera solicitud.
#X-API-Key, Bearer o ApiKey: qué header usar
La API oficial de X lee su token solo del header Authorization: Bearer, y Sorsa API lee su clave solo del header ApiKey. Ninguna lee X-API-Key, un nombre de header que muchas otras API usan para sus claves. El nombre confunde porque suena a "clave de la API de X", pero no tiene relación con X. Los API gateways y muchos productos SaaS lo usan, y una clave puesta ahí llega a los servidores de X como si no hubiera clave.
El 2 de noviembre de 2026 enviamos las mismas solicitudes a ambas API, con claves inventadas, y cada respuesta de abajo es lo que volvió:
| Qué enviamos | Respuesta de Sorsa API | Respuesta de la API oficial de X |
|---|---|---|
| Ninguna clave | 403 missing key in request header | 401 Unauthorized |
| Una clave inventada en el header correcto | 401 invalid api key | 401 Unauthorized |
La clave en un header X-API-Key | 403 missing key in request header | 401 Unauthorized |
La clave como Authorization: Bearer | 403 missing key in request header | 401 Unauthorized |
Ninguna clave
- Respuesta de Sorsa API
- 403
missing key in request header - Respuesta de la API oficial de X
- 401
Unauthorized
Una clave inventada en el header correcto
- Respuesta de Sorsa API
- 401
invalid api key - Respuesta de la API oficial de X
- 401
Unauthorized
La clave en un header
X-API-Key- Respuesta de Sorsa API
- 403
missing key in request header - Respuesta de la API oficial de X
- 401
Unauthorized
La clave como
Authorization: Bearer- Respuesta de Sorsa API
- 403
missing key in request header - Respuesta de la API oficial de X
- 401
Unauthorized
Así que un 401 de la API oficial de X significa que el token es incorrecto, falta o se envió de forma equivocada, y no dice cuál. Sorsa API distingue los dos casos: 401 invalid api key significa que el valor es incorrecto, y 403 missing key in request header significa que el nombre del header lo es.
#Cuando una clave nueva falla: 401, 402, 403, 429
Una clave nueva de la API oficial de X falla por cuatro motivos, cada uno con su propio código de estado. 401 indica un token incorrecto o regenerado, 402 un saldo de créditos vacío, 403 un permiso faltante o una app fuera de un proyecto, y 429 una ventana de límite de tasa agotada. Los mismos números significan cosas distintas en Sorsa API, y la solución sale del mensaje:
| Estado | Sorsa API | API oficial de X |
|---|---|---|
| 401 | La clave es incorrecta o se eliminó (invalid api key) | El token es incorrecto, falta o se regeneró |
| 402 | No se usa | CreditsDepleted: la cuenta no tiene créditos |
| 403 | No hay clave en el header ApiKey, o se agotaron las solicitudes | La app no tiene el permiso, o no está en un proyecto (client-not-enrolled) |
| 429 | Más de 20 solicitudes en un segundo | Se agotó la ventana de 15 minutos del endpoint |
401
- Sorsa API
- La clave es incorrecta o se eliminó (
invalid api key) - API oficial de X
- El token es incorrecto, falta o se regeneró
402
- Sorsa API
- No se usa
- API oficial de X
CreditsDepleted: la cuenta no tiene créditos
403
- Sorsa API
- No hay clave en el header
ApiKey, o se agotaron las solicitudes - API oficial de X
- La app no tiene el permiso, o no está en un proyecto (
client-not-enrolled)
429
- Sorsa API
- Más de 20 solicitudes en un segundo
- API oficial de X
- Se agotó la ventana de 15 minutos del endpoint
El 402 es el error que la guía Getting Access de X nunca menciona. Su cuerpo trae el título CreditsDepleted y la línea "Your enrolled account does not have any credits to fulfill this request." (tu cuenta inscrita no tiene créditos para cumplir esta solicitud), como han publicado desarrolladores en el foro de desarrolladores de X (se abre en una pestaña nueva), y comprar créditos lo resuelve. Un saldo también puede caer un poco por debajo de cero, y entonces las solicitudes siguen bloqueadas hasta que una recarga lo cubra.
El 403 client-not-enrolled dice que las claves deben venir de una app de desarrollador "attached to a Project" (asociada a un proyecto). Aparece en apps independientes más antiguas; asociar la app a un proyecto en la consola, o crear una app nueva ahí, lo resuelve. Los límites de tasa de la API oficial de X difieren en cada endpoint, y la guía de límites de tasa de la API de X los lista. En Sorsa API un 429 se despeja en menos de un segundo, y las solicitudes fallidas nunca se cobran, así que el reintento no cuesta nada.
#Mantén la clave en secreto y reemplázala si se filtra
Trata cada clave API como una contraseña: guárdala en una variable de entorno o en un gestor de secretos en tu servidor, nunca en código del front-end ni en un repositorio de Git. Pon el archivo .env que contiene X_BEARER_TOKEN o SORSA_API_KEY en .gitignore antes del primer commit, porque hay bots que buscan claves en repositorios públicos.
Una clave filtrada te cuesta en ambas API. En la API oficial de X, la página de buenas prácticas (se abre en una pestaña nueva) de X advierte que una clave robada puede agotar tu acceso de pago o hacer que suspendan la app. En Sorsa API, gasta tus solicitudes.
- API oficial de X: abre la pestaña Keys and tokens de la app y haz clic en Regenerate junto a la credencial filtrada. El valor anterior deja de funcionar al instante, así que actualiza cada servidor que lo usaba. Un Bearer token también se puede invalidar con
oauth2/invalidate_tokeny generar de nuevo. - Sorsa API: en la página API Keys del dashboard, crea una clave nueva y elimina la filtrada. La clave anterior se detiene al instante y responde 401.
Las claves de Sorsa API van solo en código del lado del servidor: los navegadores no pueden llamar a la API directamente, y una clave en JavaScript del front-end la puede leer cualquiera que abra la página.
Para tener en cuenta
X muestra cada credencial una sola vez, en el momento en que se genera. Pégala directo en tu gestor de contraseñas o de secretos. Si cierras la página antes, la única forma de recuperarla es regenerarla, lo que rompe todos los scripts que aún tengan el valor anterior.
#Empieza con la clave que lee datos hoy
Una clave oficial de la API de X necesita seis pasos y un saldo de créditos antes de la primera respuesta, y cada post que lee cuesta $0.005. Para leer datos públicos de X, usa una clave de Sorsa API: un registro, un header y tweets desde $0.014 por 1,000. Copia la clave, verifícala gratis y gasta las 100 solicitudes gratis en hasta 10K tweets antes de pagar nada. Para publicar posts también, conserva una app oficial pequeña para escribir y lee todo con Sorsa API.
#Preguntas frecuentes
¿Dónde encuentro mi clave de la API de X y mi Bearer token?
En el X Developer Console en console.x.com: abre Apps en el menú lateral, elige tu app y ve a su pestaña Keys and tokens. La pestaña lista la clave de API y su secreto, el Bearer token y los access tokens, cada uno con un botón Regenerate. X muestra un secreto solo cuando se genera, así que un valor perdido no se puede volver a ver, solo reemplazar.
¿Es gratis una clave de la API de Twitter?
Crear una clave oficial de la API de X es gratis, pero usarla no. La API oficial de X no tiene nivel gratuito para desarrolladores nuevos, y cada lectura se descuenta de créditos prepagados: $0.005 por post y $0.010 por perfil. Una clave de Sorsa API viene con 100 solicitudes gratis, hasta 10K tweets, sin tarjeta. La respuesta completa a ¿es gratis la API de Twitter? cubre ambas.
¿Qué clave de la API de Twitter debo usar para leer tweets?
Usa una clave de Sorsa API. Obtenerla toma unos 3 minutos, sin app, sin OAuth y sin cuenta de X; un solo header ApiKey funciona en los 45 endpoints, y todos los planes corren a 20 solicitudes por segundo. Los tweets cuestan desde $0.014 por 1,000, 250 veces menos que los $5.00 de la API oficial de X, y las primeras 100 solicitudes son gratis. Sorsa API ha procesado más de 6 mil millones de solicitudes de datos de X desde 2022.
¿Cuánto tarda en obtenerse una clave de la API de X?
X no publica un tiempo de revisión. Su guía Getting Access lista tres pasos (iniciar sesión, aceptar el Developer Agreement, crear una app), y la consola genera las credenciales cuando se crea la app. La clave no lee nada hasta que compras créditos, así que cuenta también con el paso del pago. Una clave de Sorsa API toma unos 3 minutos desde el registro hasta la primera respuesta.
¿Qué clave necesito para publicar tweets?
Publicar necesita un token de usuario, no el Bearer token: el access token y su secreto de una app configurada en Read and write, o un token de usuario de OAuth 2.0 con permiso de escritura. X cobra $0.015 por post y $0.20 por un post con enlace. Sorsa API es de solo lectura por diseño, así que nunca publica y nunca toca tu cuenta de X; combina las dos cuando un bot lea y publique a la vez.
#Cómo lo verificamos
El 2 de noviembre de 2026 leímos las páginas de docs.x.com de X sobre cómo obtener acceso, la clave de API y su secreto, el Bearer token, las apps de desarrollador, los precios, los errores y la seguridad de las claves, además de hilos del foro de desarrolladores de X sobre los errores de configuración 402 y 403. Ese mismo día enviamos solicitudes sin clave, con una clave inventada y con claves en el header equivocado a ambas API; la tabla de headers muestra los códigos y mensajes que volvieron. Las solicitudes a Sorsa API siguen su referencia de API en vivo, y la respuesta de key-usage muestra los valores de una cuenta nueva, no una llamada capturada.
Fuentes
- X API: Getting Access (se abre en una pestaña nueva)
- X API: API Key and Secret (se abre en una pestaña nueva)
- X API: Using and generating an app-only Bearer Token (se abre en una pestaña nueva)
- X API: Developer apps (se abre en una pestaña nueva)
- X API: pay-per-usage pricing and credits (se abre en una pestaña nueva)
- X API: Response codes and errors (se abre en una pestaña nueva)
- X API: Authentication best practices (se abre en una pestaña nueva)
- X Developers forum: Auto-Recharge Never Triggers (402 CreditsDepleted) (se abre en una pestaña nueva)
- Sorsa API reference (OpenAPI)