Referencia de la API
Cuenta
La cuenta es la cuenta de X a la que pertenece una clave. Léela para comprobar una clave, cambiar sus ajustes, reiniciar la sincronización de su inbox de X o dar a Gemlead su código de X Chat. La zona horaria, el idioma y el nombre del propietario son comunes a todas sus cuentas de X.
El objeto account
La cuenta de X a la que pertenece una clave. Una clave funciona con una sola cuenta de X, y un propietario con varias cuentas de X tiene una clave para cada una.
Atributos
- objectstringSiempre
account. - idstringIdentificador único de la cuenta.
- usernamestringEl nombre de usuario de X, sin la @.
- namestringEl nombre visible en X.
- profile_image_urlstring o nullLa URL de la foto de perfil.
- planstringEl plan del propietario.
businessenterprise
{
"object": "account",
"id": "a9PzK2vRtM",
"username": "acme",
"name": "Acme",
"profile_image_url": "https://pbs.twimg.com/profile_images/1180044592/acme_400x400.jpg",
"plan": "business"
}Obtener la cuenta
Devuelve la cuenta de X a la que pertenece la clave. Una buena primera llamada para comprobar una clave.
Devuelve
Un objeto account.
Errores
- La clave es incorrecta.
- El propietario de la cuenta tiene el plan Free o Starter.
curl https://gemlead.ai/api/v1/account \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "account",
"id": "a9PzK2vRtM",
"username": "acme",
"name": "Acme",
"profile_image_url": "https://pbs.twimg.com/profile_images/1180044592/acme_400x400.jpg",
"plan": "business"
}Actualizar el perfil de X
Vuelve a leer el perfil de X de la cuenta, para tener al día su nombre o su foto.
Devuelve
El objeto account.
Errores
- La sesión de la cuenta de X caducó. Vuelve a conectarla en la app e inténtalo de nuevo.
- X o un servicio de Gemlead no respondió. No ha cambiado nada, vuelve a intentarlo en un minuto.
curl -X POST \
https://gemlead.ai/api/v1/account/refresh_profile \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "account",
"id": "a9PzK2vRtM",
"username": "acme",
"name": "Acme",
"profile_image_url": "https://pbs.twimg.com/profile_images/1180044592/acme_400x400.jpg",
"plan": "business"
}El objeto account settings
Cómo sincroniza la cuenta su inbox de X, si sus DM están en pausa y el perfil de su propietario. La zona horaria, el idioma y el nombre del propietario son comunes a todas sus cuentas de X.
Atributos
- objectstringSiempre
account_settings. - account_idstringEl ID de la cuenta.
- syncobjectLa sincronización del inbox de X con Gemlead.
- dms_paused_untilstring o nullMientras X limita la cuenta, cuándo se reanudan sus DM, en ISO 8601.
- ownerobjectEl propietario de la cuenta.
{
"object": "account_settings",
"account_id": "a9PzK2vRtM",
"sync": {
"all_conversations": true,
"status": "done",
"conversations": 1342
},
"dms_paused_until": null,
"owner": {
"first_name": "Alex",
"last_name": "Martin",
"timezone": "Europe/Paris",
"language": "en"
}
}Obtener los ajustes de la cuenta
Devuelve la sincronización del inbox, la pausa de DM y el perfil del propietario.
Devuelve
curl https://gemlead.ai/api/v1/account/settings \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "account_settings",
"account_id": "a9PzK2vRtM",
"sync": {
"all_conversations": true,
"status": "done",
"conversations": 1342
},
"dms_paused_until": null,
"owner": {
"first_name": "Alex",
"last_name": "Martin",
"timezone": "Europe/Paris",
"language": "en"
}
}Actualizar los ajustes de la cuenta
Cambia los ajustes que envías y conserva los demás.
Parámetros del cuerpo
- sync_all_conversationsboolean
truesincroniza todas las conversaciones del inbox de X y vuelve a recorrerlo ahora.falseconserva solo las conversaciones con leads. - timezonestringLa zona horaria IANA del propietario, como
Europe/Paris. Los gráficos y los totales diarios se basan en ella. - languagestringEl idioma de la app del propietario.
enfresitderuptnlja - first_namestringEl nombre del propietario, hasta 60 caracteres.
- last_namestringEl apellido del propietario, hasta 60 caracteres.
Devuelve
El objeto account settings actualizado.
Errores
- Un parámetro tiene un valor que la API no acepta.
paramlo indica. - El cuerpo tiene un campo que este endpoint no acepta.
- La sesión de la cuenta de X caducó. Vuelve a conectarla en la app e inténtalo de nuevo.
curl -X PATCH https://gemlead.ai/api/v1/account/settings \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"timezone": "Europe/Paris"
}'{
"object": "account_settings",
"account_id": "a9PzK2vRtM",
"sync": {
"all_conversations": true,
"status": "done",
"conversations": 1342
},
"dms_paused_until": null,
"owner": {
"first_name": "Alex",
"last_name": "Martin",
"timezone": "Europe/Paris",
"language": "en"
}
}Reiniciar la sincronización del inbox
Vuelve a recorrer el inbox de X desde el principio, para recuperar las conversaciones que se le escaparon a Gemlead.
Devuelve
Errores
- La sesión de la cuenta de X caducó. Vuelve a conectarla en la app e inténtalo de nuevo.
curl -X POST https://gemlead.ai/api/v1/account/sync/restart \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "account_settings",
"account_id": "a9PzK2vRtM",
"sync": {
"all_conversations": true,
"status": "syncing",
"conversations": 1342
},
"dms_paused_until": null,
"owner": {
"first_name": "Alex",
"last_name": "Martin",
"timezone": "Europe/Paris",
"language": "en"
}
}Pausar la sincronización del inbox
Pausa la sincronización del inbox de X.
Devuelve
Errores
- La sesión de la cuenta de X caducó. Vuelve a conectarla en la app e inténtalo de nuevo.
curl -X POST https://gemlead.ai/api/v1/account/sync/pause \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "account_settings",
"account_id": "a9PzK2vRtM",
"sync": {
"all_conversations": true,
"status": "paused",
"conversations": 1342
},
"dms_paused_until": null,
"owner": {
"first_name": "Alex",
"last_name": "Martin",
"timezone": "Europe/Paris",
"language": "en"
}
}Reanudar la sincronización del inbox
Reanuda una sincronización del inbox de X en pausa.
Devuelve
Errores
- La sesión de la cuenta de X caducó. Vuelve a conectarla en la app e inténtalo de nuevo.
curl -X POST https://gemlead.ai/api/v1/account/sync/resume \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "account_settings",
"account_id": "a9PzK2vRtM",
"sync": {
"all_conversations": true,
"status": "syncing",
"conversations": 1342
},
"dms_paused_until": null,
"owner": {
"first_name": "Alex",
"last_name": "Martin",
"timezone": "Europe/Paris",
"language": "en"
}
}El objeto X Chat
X Chat es el inbox cifrado de X. Gemlead lee sus mensajes en cuanto tiene el código de X Chat de 4 cifras de la cuenta. X Chat se conecta desde la app.
Atributos
- objectstringSiempre
x_chat. - connectedboolean
truesi la cuenta está conectada a X Chat en la app. - passcode_setboolean
truesi Gemlead tiene el código de X Chat. El código en sí nunca se devuelve. - unlockobject o nullEl descifrado del historial de X Chat tras introducir el código,
nullsi no se ha hecho ninguno.
{
"object": "x_chat",
"connected": true,
"passcode_set": true,
"unlock": {
"running": false,
"total": 214,
"done": 214,
"finished_at": "2026-11-06T07:58:30.000Z"
}
}Obtener X Chat
Indica si la cuenta está conectada a X Chat, si Gemlead tiene su código y hasta dónde llegó el descifrado de su historial.
Devuelve
Un objeto X Chat.
curl https://gemlead.ai/api/v1/account/x_chat \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "x_chat",
"connected": true,
"passcode_set": true,
"unlock": {
"running": false,
"total": 214,
"done": 214,
"finished_at": "2026-11-06T07:58:30.000Z"
}
}El resultado del código
Lo que devuelve definir o eliminar el código de X Chat.
Atributos
- objectstringSiempre
x_chat. - passcode_setboolean
truesi Gemlead guarda un código. - unlockedboolean
truesi X aceptó el código y Gemlead puede leer los mensajes cifrados. - reasonstringSolo si no se desbloqueó, el motivo.
passcodesignifica que X rechazó el código, y Gemlead lo elimina. - remaining_attemptsinteger o nullSolo si no se desbloqueó, los intentos que X aún permite, cuando X lo indica.
{
"object": "x_chat",
"passcode_set": false,
"unlocked": false,
"reason": "passcode",
"remaining_attempts": 3
}Definir el código de X Chat
writeDa a Gemlead el código de X Chat de la cuenta y desbloquea con él los mensajes cifrados. Puedes probar 5 veces por hora, X cuenta cada intento. Solo REST. Ninguna herramienta MCP define ni elimina un código, por diseño, para que un código nunca pase por un chat de IA.
Parámetros del cuerpo
- passcodestringObligatorioEl código de X Chat, 4 cifras, como
4821.
Devuelve
Un resultado del código, con reason y remaining_attempts si X rechazó el código.
Errores
- Falta un parámetro obligatorio.
paramlo indica. - Un parámetro tiene un valor que la API no acepta.
paramlo indica. - Más de 5 intentos en una hora en la cuenta.
- X o un servicio de Gemlead no respondió. No ha cambiado nada, vuelve a intentarlo en un minuto.
curl -X PUT \
https://gemlead.ai/api/v1/account/x_chat/passcode \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"passcode": "4821"
}'{
"object": "x_chat",
"passcode_set": true,
"unlocked": true
}Eliminar el código de X Chat
writeElimina el código de Gemlead. Los nuevos mensajes de X Chat siguen cifrados hasta que lo vuelvas a definir. Solo REST. Ninguna herramienta MCP define ni elimina un código, por diseño, para que un código nunca pase por un chat de IA.
Devuelve
Un resultado del código, con passcode_set en false.
curl -X DELETE \
https://gemlead.ai/api/v1/account/x_chat/passcode \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "x_chat",
"passcode_set": false,
"unlocked": false
}