Référence API
Compte
Le compte est le compte X auquel une clé appartient. Lis-le pour tester une clé, modifier ses réglages, relancer la synchronisation de son inbox X ou donner à Gemlead son code X Chat. Le fuseau horaire, la langue et le nom du propriétaire sont communs à tous ses comptes X.
L'objet compte
Le compte X auquel une clé appartient. Une clé ne sert qu'à un seul compte X, et un propriétaire avec plusieurs comptes X a une clé pour chacun.
Attributs
- objectstringToujours
account. - idstringIdentifiant unique du compte.
- usernamestringLe nom d'utilisateur X, sans le @.
- namestringLe nom affiché sur X.
- profile_image_urlstring ou nullL'URL de la photo de profil.
- planstringLe plan du propriétaire.
businessenterprise
{
"object": "account",
"id": "a9PzK2vRtM",
"username": "acme",
"name": "Acme",
"profile_image_url": "https://pbs.twimg.com/profile_images/1180044592/acme_400x400.jpg",
"plan": "business"
}Récupérer le compte
Renvoie le compte X auquel appartient la clé. Un bon premier appel pour tester une clé.
Renvoie
Un objet compte.
Erreurs
- La clé est incorrecte.
- Le propriétaire du compte est sur le plan Free ou 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"
}Actualiser le profil X
Relit le profil X du compte, pour un nouveau nom ou une nouvelle photo.
Renvoie
L'objet compte.
Erreurs
- La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
- X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
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"
}L'objet réglages du compte
Comment le compte synchronise son inbox X, si ses DM sont en pause, et le profil de son propriétaire. Le fuseau horaire, la langue et le nom du propriétaire sont communs à tous ses comptes X.
Attributs
- objectstringToujours
account_settings. - account_idstringL'ID du compte.
- syncobjectLa synchronisation de l'inbox X dans Gemlead.
- dms_paused_untilstring ou nullTant que X limite le compte, la date de reprise de ses DM, en ISO 8601.
- ownerobjectLe propriétaire du compte.
{
"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"
}
}Récupérer les réglages du compte
Renvoie la synchronisation de l'inbox, la pause des DM et le profil du propriétaire.
Renvoie
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"
}
}Modifier les réglages du compte
Modifie les réglages que tu envoies et ne touche pas aux autres.
Paramètres du corps
- sync_all_conversationsboolean
truesynchronise toutes les conversations de l'inbox X et la reparcourt tout de suite.falsene garde que les conversations avec des leads. - timezonestringLe fuseau horaire IANA du propriétaire, comme
Europe/Paris. Les graphiques et les compteurs du jour le suivent. - languagestringLa langue de l'app du propriétaire.
enfresitderuptnlja - first_namestringLe prénom du propriétaire, 60 caractères au plus.
- last_namestringLe nom du propriétaire, 60 caractères au plus.
Renvoie
L'objet réglages du compte à jour.
Erreurs
- Un paramètre a une valeur que l'API n'accepte pas.
paramindique lequel. - Le corps contient un champ que cet endpoint n'accepte pas.
- La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
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"
}
}Relancer la synchronisation de l'inbox
Reparcourt l'inbox X depuis le début, pour récupérer les conversations que Gemlead a manquées.
Renvoie
Erreurs
- La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
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"
}
}Mettre la synchronisation de l'inbox en pause
Met la synchronisation de l'inbox X en pause.
Renvoie
Erreurs
- La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
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"
}
}Reprendre la synchronisation de l'inbox
Reprend la synchronisation de l'inbox X mise en pause.
Renvoie
Erreurs
- La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
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"
}
}L'objet X Chat
X Chat est l'inbox chiffrée de X. Gemlead lit ses messages dès qu'il a le code X Chat à 4 chiffres du compte. La connexion à X Chat se fait dans l'app.
Attributs
- objectstringToujours
x_chat. - connectedboolean
truequand le compte est connecté à X Chat dans l'app. - passcode_setboolean
truequand Gemlead a le code X Chat. Le code lui-même n'est jamais renvoyé. - unlockobject ou nullLe déchiffrement de l'historique X Chat qui suit l'envoi du code,
nulls'il n'a pas eu lieu.
{
"object": "x_chat",
"connected": true,
"passcode_set": true,
"unlock": {
"running": false,
"total": 214,
"done": 214,
"finished_at": "2026-11-06T07:58:30.000Z"
}
}Récupérer l'état de X Chat
Indique si le compte est connecté à X Chat, si Gemlead a son code, et où en est le déchiffrement de son historique.
Renvoie
Un objet 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"
}
}Le résultat du code
Ce que renvoie la définition ou le retrait du code X Chat.
Attributs
- objectstringToujours
x_chat. - passcode_setboolean
truequand Gemlead conserve un code. - unlockedboolean
truequand X a accepté le code et que Gemlead peut lire les messages chiffrés. - reasonstringSeulement en cas d'échec du déverrouillage, la raison.
passcodesignifie que X a refusé le code, et Gemlead le retire. - remaining_attemptsinteger ou nullSeulement en cas d'échec du déverrouillage, les essais que X autorise encore, quand X l'indique.
{
"object": "x_chat",
"passcode_set": false,
"unlocked": false,
"reason": "passcode",
"remaining_attempts": 3
}Définir le code X Chat
writeDonne à Gemlead le code X Chat du compte, qui s'en sert pour déverrouiller les messages chiffrés. Tu as 5 essais par heure, X compte chaque essai. REST uniquement. Aucun outil MCP ne définit ni ne retire de code, et c'est voulu, pour qu'un code ne passe jamais par un chat IA.
Paramètres du corps
- passcodestringObligatoireLe code X Chat à 4 chiffres, comme
4821.
Renvoie
Un résultat du code, avec reason et remaining_attempts quand X a refusé le code.
Erreurs
- Il manque un paramètre obligatoire.
paramindique lequel. - Un paramètre a une valeur que l'API n'accepte pas.
paramindique lequel. - Plus de 5 essais dans l'heure sur le compte.
- X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
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
}Retirer le code X Chat
writeRetire le code de Gemlead. Les nouveaux messages X Chat restent chiffrés jusqu'à ce que tu le redéfinisses. REST uniquement. Aucun outil MCP ne définit ni ne retire de code, et c'est voulu, pour qu'un code ne passe jamais par un chat IA.
Renvoie
Un résultat du code, avec passcode_set à 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
}