Referência da API
Conta
A conta é a conta do X à qual a chave pertence. Leia a conta para testar uma chave, alterar as configurações, reiniciar a sincronização da inbox do X ou passar ao Gemlead o código do X Chat. O fuso horário, o idioma e o nome do dono valem para todas as contas do X dele.
O objeto account
A conta do X à qual a chave pertence. Uma chave funciona em uma única conta do X, e um dono com várias contas do X tem uma chave para cada uma.
Atributos
- objectstringSempre
account. - idstringIdentificador único da conta.
- usernamestringO username no X, sem o @.
- namestringO nome de exibição no X.
- profile_image_urlstring ou nullA URL da foto do perfil.
- planstringO plano do dono.
businessenterprise
{
"object": "account",
"id": "a9PzK2vRtM",
"username": "acme",
"name": "Acme",
"profile_image_url": "https://pbs.twimg.com/profile_images/1180044592/acme_400x400.jpg",
"plan": "business"
}Obter a conta
Retorna a conta do X à qual a chave pertence. Uma boa primeira chamada para testar uma chave.
Retorno
Um objeto account.
Erros
- A chave está errada.
- O dono da conta está no plano 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"
}Recarregar o perfil do X
Lê de novo o perfil da conta no X, para obter um novo nome ou uma nova foto.
Retorno
Erros
- A sessão da conta do X expirou. Reconecte a conta no app e tente de novo.
- O X ou um serviço do Gemlead não respondeu. Nada mudou, tente de novo em um 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"
}O objeto account settings
Como a conta sincroniza a inbox do X, se as DMs dela estão pausadas e o perfil do dono. O fuso horário, o idioma e o nome do dono valem para todas as contas do X dele.
Atributos
- objectstringSempre
account_settings. - account_idstringO ID da conta.
- syncobjectA sincronização da inbox do X com o Gemlead.
- dms_paused_untilstring ou nullEnquanto o X limita a conta, quando as DMs dela voltam a funcionar, em ISO 8601.
- ownerobjectO dono da conta.
{
"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"
}
}Obter as configurações da conta
Retorna a sincronização da inbox, a pausa das DMs e o perfil do dono.
Retorno
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"
}
}Atualizar as configurações da conta
Altera as configurações que você envia e mantém as outras.
Parâmetros do corpo
- sync_all_conversationsboolean
truesincroniza todas as conversas da inbox do X e percorre a inbox de novo agora.falsemantém só as conversas com leads. - timezonestringO fuso horário IANA do dono, como
Europe/Paris. Os gráficos e as contagens diárias seguem esse fuso. - languagestringO idioma do app do dono.
enfresitderuptnlja - first_namestringO nome do dono, com até 60 caracteres.
- last_namestringO sobrenome do dono, com até 60 caracteres.
Retorno
O objeto account settings atualizado.
Erros
- Um parâmetro tem um valor que a API não aceita.
paramdiz qual. - O corpo tem um campo que este endpoint não aceita.
- A sessão da conta do X expirou. Reconecte a conta no app e tente de novo.
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 a sincronização da inbox
Percorre de novo a inbox do X desde o início, para recuperar conversas que o Gemlead deixou passar.
Retorno
Erros
- A sessão da conta do X expirou. Reconecte a conta no app e tente de novo.
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 a sincronização da inbox
Pausa a sincronização da inbox do X.
Retorno
Erros
- A sessão da conta do X expirou. Reconecte a conta no app e tente de novo.
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"
}
}Retomar a sincronização da inbox
Retoma uma sincronização pausada da inbox do X.
Retorno
Erros
- A sessão da conta do X expirou. Reconecte a conta no app e tente de novo.
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"
}
}O objeto X Chat
O X Chat é a inbox criptografada do X. O Gemlead lê as mensagens dele assim que tem o código do X Chat da conta, de 4 dígitos. A conexão do X Chat é feita no app.
Atributos
- objectstringSempre
x_chat. - connectedboolean
truequando a conta está conectada ao X Chat no app. - passcode_setboolean
truequando o Gemlead tem o código do X Chat. O código em si nunca é retornado. - unlockobject ou nullA descriptografia do histórico do X Chat após o envio do código,
nullquando nenhuma foi feita.
{
"object": "x_chat",
"connected": true,
"passcode_set": true,
"unlock": {
"running": false,
"total": 214,
"done": 214,
"finished_at": "2026-11-06T07:58:30.000Z"
}
}Obter o X Chat
Retorna se a conta está conectada ao X Chat, se o Gemlead tem o código dela e até onde foi a descriptografia do histórico.
Retorno
Um 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"
}
}O resultado do código
O que definir ou remover o código do X Chat retorna.
Atributos
- objectstringSempre
x_chat. - passcode_setboolean
truequando o Gemlead guarda um código. - unlockedboolean
truequando o X aceitou o código e o Gemlead consegue ler as mensagens criptografadas. - reasonstringApenas quando o desbloqueio falha, o motivo.
passcodesignifica que o X recusou o código, e o Gemlead o remove. - remaining_attemptsinteger ou nullApenas quando o desbloqueio falha, as tentativas que o X ainda permite, se o X informar.
{
"object": "x_chat",
"passcode_set": false,
"unlocked": false,
"reason": "passcode",
"remaining_attempts": 3
}Definir o código do X Chat
writePassa ao Gemlead o código do X Chat da conta e depois desbloqueia as mensagens criptografadas com ele. Você pode tentar 5 vezes por hora, e o X conta cada tentativa. Apenas na API REST. Por design, nenhuma ferramenta MCP define ou remove um código, para que ele nunca passe por um chat de IA.
Parâmetros do corpo
- passcodestringObrigatórioO código do X Chat, com 4 dígitos, como
4821.
Retorno
Um resultado do código, com reason e remaining_attempts quando o X recusou o código.
Erros
- Falta um parâmetro obrigatório.
paramdiz qual. - Um parâmetro tem um valor que a API não aceita.
paramdiz qual. - Mais de 5 tentativas na mesma hora nesta conta.
- O X ou um serviço do Gemlead não respondeu. Nada mudou, tente de novo em um 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
}Remover o código do X Chat
writeRemove o código do Gemlead. As novas mensagens do X Chat ficam criptografadas até você definir o código de novo. Apenas na API REST. Por design, nenhuma ferramenta MCP define ou remove um código, para que ele nunca passe por um chat de IA.
Retorno
Um resultado do código, com passcode_set em 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
}