Referência da API
Leads
Leads são as pessoas que o Gemlead encontra no X para as suas personas. A Dana AI dá a cada um deles um score de 0 a 100, e um lead é quente a partir de 60. Liste os leads com filtros, anexe seus próprios metadados, como um ID do CRM, ou execute ações em um lead como faria no app.
O objeto lead
Uma pessoa que o Gemlead encontrou no X para uma das suas personas, com o score que a Dana AI deu a ela e o ponto em que ela está na sua prospecção.
Atributos
- idstringIdentificador único do lead.
- objectstringSempre
lead. - profileobjectO perfil do lead no X.
- scoreinteger ou nullO quanto o lead combina com a sua persona, de 0 a 100. Null até ser pontuado.
- score_reasonstring ou nullPor que o lead recebeu esse score, em uma ou duas frases.
- hotbooleanIndica se o score é 60 ou mais.
- statusstringOnde o lead está no seu pipeline.
pendingscoringscoredin_campaigncontactedin_conversationclosed - personaobject ou nullA persona para a qual o lead foi encontrado.
- campaignobject ou nullA campanha em que o lead está, se houver.
- conversation_idstring ou nullA conversa com o lead, assim que existir uma. Use com Obter uma conversa.
- locked_toobject ou nullA única conta do X do dono reservada para essa pessoa. Um lead vai para uma só conta do X, então as outras nunca entram em contato com ele. Null enquanto o lead não está reservado.
- found_atstringQuando o Gemlead encontrou o lead, em ISO 8601.
- scored_atstring ou nullQuando o lead foi pontuado, em ISO 8601.
- updated_atstringQuando o lead mudou pela última vez, em ISO 8601.
- metadataobjectSeus próprios pares de chave e valor, definidos com Atualizar um lead.
{
"id": "msgOtJ8dvT",
"object": "lead",
"profile": {
"x_user_id": "1460283925",
"username": "jane_builds",
"name": "Jane Doe",
"bio": "Runs a paid trading community. Daily setups, no hype.",
"followers_count": 12400,
"following_count": 380,
"location": "Austin, TX",
"website": "https://janedoe.com",
"profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
"verified": true,
"url": "https://x.com/jane_builds"
},
"score": 86,
"score_reason": "Runs a paid trading community and asks how to collect payments for it.",
"hot": true,
"status": "scored",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"campaign": null,
"conversation_id": null,
"locked_to": null,
"found_at": "2026-11-05T14:02:11.482Z",
"scored_at": "2026-11-05T14:03:40.117Z",
"updated_at": "2026-11-05T14:03:40.117Z",
"metadata": {}
}Listar leads
Retorna seus leads, por padrão dos pontuados mais recentemente para os mais antigos. Combine filtros para obter exatamente os leads que você quer.
Parâmetros de consulta
- personastringSó os leads da persona com este ID.
- statusstringSó os leads nestes status, separados por vírgula, como
scored,in_campaign.pendingscoringscoredin_campaigncontactedin_conversationclosed - score_minintegerSó os leads com pelo menos este score, de 0 a 100.
- score_maxintegerSó os leads com no máximo este score, de 0 a 100.
- hotboolean
truepara os leads com score de 60 ou mais,falsepara os outros. - scored_afterstringSó os leads pontuados depois deste horário, em ISO 8601.
- scored_beforestringSó os leads pontuados antes deste horário, em ISO 8601.
- found_afterstringSó os leads encontrados depois deste horário, em ISO 8601.
- found_beforestringSó os leads encontrados antes deste horário, em ISO 8601.
- orderstringA ordenação. O padrão é
-scored_at, com os pontuados mais recentemente primeiro.-scored_at-score-found_at - limitintegerQuantos objetos retornar, de 1 a 100. O padrão é 25.
- cursorstringO
next_cursorda página anterior, para obter a página seguinte. Veja Paginação.
Retorno
Uma lista de objetos lead.
Erros
- Um parâmetro tem um valor que a API não aceita.
paramdiz qual.
curl -G https://gemlead.ai/api/v1/leads \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-d hot=true \
-d limit=10{
"object": "list",
"data": [
{
"id": "msgOtJ8dvT",
"object": "lead",
"profile": {
"x_user_id": "1460283925",
"username": "jane_builds",
"name": "Jane Doe",
"bio": "Runs a paid trading community. Daily setups, no hype.",
"followers_count": 12400,
"following_count": 380,
"location": "Austin, TX",
"website": "https://janedoe.com",
"profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
"verified": true,
"url": "https://x.com/jane_builds"
},
"score": 86,
"score_reason": "Runs a paid trading community and asks how to collect payments for it.",
"hot": true,
"status": "scored",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"campaign": null,
"conversation_id": null,
"locked_to": null,
"found_at": "2026-11-05T14:02:11.482Z",
"scored_at": "2026-11-05T14:03:40.117Z",
"updated_at": "2026-11-05T14:03:40.117Z",
"metadata": {}
}
],
"has_more": true,
"next_cursor": "eyJzIjoiMjAyNi0xMS0wNVQxNDowMzo0MC4xMTdaIn0"
}Obter um lead
Retorna um lead.
Parâmetros de caminho
- idstringObrigatórioO ID do lead.
Retorno
Um objeto lead.
Erros
- Nenhum lead com este ID na conta da chave.
curl https://gemlead.ai/api/v1/leads/msgOtJ8dvT \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "msgOtJ8dvT",
"object": "lead",
"profile": {
"x_user_id": "1460283925",
"username": "jane_builds",
"name": "Jane Doe",
"bio": "Runs a paid trading community. Daily setups, no hype.",
"followers_count": 12400,
"following_count": 380,
"location": "Austin, TX",
"website": "https://janedoe.com",
"profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
"verified": true,
"url": "https://x.com/jane_builds"
},
"score": 86,
"score_reason": "Runs a paid trading community and asks how to collect payments for it.",
"hot": true,
"status": "scored",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"campaign": null,
"conversation_id": null,
"locked_to": null,
"found_at": "2026-11-05T14:02:11.482Z",
"scored_at": "2026-11-05T14:03:40.117Z",
"updated_at": "2026-11-05T14:03:40.117Z",
"metadata": {}
}Atualizar um lead
Define seus próprios metadados num lead, ou encerra o lead quando você terminar com ele. Encerrar um lead interrompe as etapas de campanha que ainda esperavam por ele, e o Gemlead deixa de escrever para ele.
Parâmetros de caminho
- idstringObrigatórioO ID do lead.
Parâmetros do corpo
- metadataobjectPares de chave e valor mesclados nos metadados do lead. Chaves de até 40 letras, dígitos,
_ou-, valores em string de até 500 caracteres, no máximo 20 chaves. Defina uma chave comonullou string vazia para removê-la, oumetadatacomonullpara apagar tudo. - statusstringDefina como
closedpara encerrar o lead.closed
Retorno
O objeto lead atualizado.
Erros
- Nenhum lead com este ID na conta da chave.
- 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.
curl -X PATCH https://gemlead.ai/api/v1/leads/msgOtJ8dvT \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"metadata": {
"crm_id": "hs_48213"
}
}'{
"id": "msgOtJ8dvT",
"object": "lead",
"profile": {
"x_user_id": "1460283925",
"username": "jane_builds",
"name": "Jane Doe",
"bio": "Runs a paid trading community. Daily setups, no hype.",
"followers_count": 12400,
"following_count": 380,
"location": "Austin, TX",
"website": "https://janedoe.com",
"profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
"verified": true,
"url": "https://x.com/jane_builds"
},
"score": 86,
"score_reason": "Runs a paid trading community and asks how to collect payments for it.",
"hot": true,
"status": "scored",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"campaign": null,
"conversation_id": null,
"locked_to": null,
"found_at": "2026-11-05T14:02:11.482Z",
"scored_at": "2026-11-05T14:03:40.117Z",
"updated_at": "2026-11-05T14:03:40.117Z",
"metadata": {
"crm_id": "hs_48213"
}
}Repontuar um lead
Pede à Dana AI para pontuar o lead de novo com base na persona dele, depois de você mudar a descrição da persona, por exemplo. Usa até 2 créditos por lead: 1 pela primeira triagem, mais 1 pelo score aprofundado quando o lead passa.
Parâmetros de caminho
- lead_idstringObrigatórioO ID do lead.
Retorno
O objeto lead.
Erros
- Nenhum lead com este ID na conta da chave.
- 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/leads/msgOtJ8dvT/rescore \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "msgOtJ8dvT",
"object": "lead",
"profile": {
"x_user_id": "1460283925",
"username": "jane_builds",
"name": "Jane Doe",
"bio": "Runs a paid trading community. Daily setups, no hype.",
"followers_count": 12400,
"following_count": 380,
"location": "Austin, TX",
"website": "https://janedoe.com",
"profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
"verified": true,
"url": "https://x.com/jane_builds"
},
"score": 86,
"score_reason": "Runs a paid trading community and asks how to collect payments for it.",
"hot": true,
"status": "scored",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"campaign": null,
"conversation_id": null,
"locked_to": null,
"found_at": "2026-11-05T14:02:11.482Z",
"scored_at": "2026-11-05T14:03:40.117Z",
"updated_at": "2026-11-05T14:03:40.117Z",
"metadata": {}
}Recarregar um lead
Lê de novo o perfil do lead no X, para obter uma nova bio, foto ou número de seguidores.
Parâmetros de caminho
- lead_idstringObrigatórioO ID do lead.
Retorno
O objeto lead atualizado.
Erros
- Nenhum lead com este ID na conta da chave.
- 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/leads/msgOtJ8dvT/refresh \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "msgOtJ8dvT",
"object": "lead",
"profile": {
"x_user_id": "1460283925",
"username": "jane_builds",
"name": "Jane Doe",
"bio": "Runs a paid trading community. Daily setups, no hype.",
"followers_count": 12400,
"following_count": 380,
"location": "Austin, TX",
"website": "https://janedoe.com",
"profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
"verified": true,
"url": "https://x.com/jane_builds"
},
"score": 86,
"score_reason": "Runs a paid trading community and asks how to collect payments for it.",
"hot": true,
"status": "scored",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"campaign": null,
"conversation_id": null,
"locked_to": null,
"found_at": "2026-11-05T14:02:11.482Z",
"scored_at": "2026-11-05T14:03:40.117Z",
"updated_at": "2026-11-05T14:03:40.117Z",
"metadata": {}
}Seguir um lead
Segue o lead no X pela sua conta do X, na hora.
Parâmetros de caminho
- lead_idstringObrigatórioO ID do lead.
Retorno
O objeto lead.
Erros
- Nenhum lead com este ID na conta da chave.
- O lead não tem ID de conta do X para seguir.
- 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/leads/msgOtJ8dvT/follow \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "msgOtJ8dvT",
"object": "lead",
"profile": {
"x_user_id": "1460283925",
"username": "jane_builds",
"name": "Jane Doe",
"bio": "Runs a paid trading community. Daily setups, no hype.",
"followers_count": 12400,
"following_count": 380,
"location": "Austin, TX",
"website": "https://janedoe.com",
"profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
"verified": true,
"url": "https://x.com/jane_builds"
},
"score": 86,
"score_reason": "Runs a paid trading community and asks how to collect payments for it.",
"hot": true,
"status": "scored",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"campaign": null,
"conversation_id": null,
"locked_to": null,
"found_at": "2026-11-05T14:02:11.482Z",
"scored_at": "2026-11-05T14:03:40.117Z",
"updated_at": "2026-11-05T14:03:40.117Z",
"metadata": {}
}Deixar de seguir um lead
Deixa de seguir o lead no X pela sua conta do X, na hora.
Parâmetros de caminho
- lead_idstringObrigatórioO ID do lead.
Retorno
O objeto lead.
Erros
- Nenhum lead com este ID na conta da chave.
- O lead não tem ID de conta do X para deixar de seguir.
- 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/leads/msgOtJ8dvT/unfollow \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "msgOtJ8dvT",
"object": "lead",
"profile": {
"x_user_id": "1460283925",
"username": "jane_builds",
"name": "Jane Doe",
"bio": "Runs a paid trading community. Daily setups, no hype.",
"followers_count": 12400,
"following_count": 380,
"location": "Austin, TX",
"website": "https://janedoe.com",
"profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
"verified": true,
"url": "https://x.com/jane_builds"
},
"score": 86,
"score_reason": "Runs a paid trading community and asks how to collect payments for it.",
"hot": true,
"status": "scored",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"campaign": null,
"conversation_id": null,
"locked_to": null,
"found_at": "2026-11-05T14:02:11.482Z",
"scored_at": "2026-11-05T14:03:40.117Z",
"updated_at": "2026-11-05T14:03:40.117Z",
"metadata": {}
}Transformar um lead em fonte
Transforma um ótimo lead em fonte da persona dele, para encontrar mais pessoas parecidas. O Gemlead lê quem ele segue, os seguidores dele ou quem comenta nos posts dele.
Parâmetros de caminho
- lead_idstringObrigatórioO ID do lead.
Parâmetros do corpo
- methodstring
followinglê quem o lead segue,competitor_followersos seguidores dele,competitor_commentsquem comenta nos posts dele. O padrão éfollowing.followingcompetitor_followerscompetitor_comments
Retorno
Um objeto com o lead_id, o persona_id dele, o method e a nova fonte, ou o username competitor_account para competitor_comments.
Erros
- Nenhum lead com este ID na conta da chave.
- O lead não pertence a nenhuma persona.
- A persona já tem esta conta como fonte com este método.
- A persona já tem 100 contas concorrentes.
- Um parâmetro tem um valor que a API não aceita.
paramdiz qual. - 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/leads/msgOtJ8dvT/convert_to_source \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"method": "following"
}'{
"object": "lead_conversion",
"lead_id": "msgOtJ8dvT",
"persona_id": "lvWBPnytpS",
"method": "following",
"source": {
"id": "s9KdT3pXwM",
"object": "source",
"persona_id": "lvWBPnytpS",
"method": "following",
"profile": {
"username": "pickswithmike",
"name": "Mike Picks",
"profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
"followers_count": 8400,
"following_count": 1210,
"url": "https://x.com/pickswithmike"
},
"status": "pending",
"paused": false,
"error": null,
"read_following": true,
"read_followers": false,
"score_self": true,
"self_lead_id": "Lp4WqZ7sXe",
"origin_lead_id": "msgOtJ8dvT",
"stats": {
"leads": 1184,
"scored_leads": 1160,
"hot_leads": 212,
"avg_score": 44
},
"last_activity_at": "2026-11-05T14:03:40.117Z",
"last_scraped_at": "2026-11-05T14:02:11.482Z",
"created_at": "2026-09-14T09:21:05.300Z"
},
"competitor_account": null
}Excluir um lead
Exclui um lead. Ele sai das suas listas, todas as campanhas param para ele, e o Gemlead não traz mais a mesma pessoa para esta persona. Para deixar alguém fora de todas as personas, adicione a pessoa à lista de exclusão.
Parâmetros de caminho
- lead_idstringObrigatórioO ID do lead.
Retorno
Um objeto com o id do lead e deleted igual a true.
Erros
- Nenhum lead com este ID na conta da chave.
curl -X DELETE https://gemlead.ai/api/v1/leads/msgOtJ8dvT \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "msgOtJ8dvT",
"object": "lead",
"deleted": true
}O objeto lead origin
Como o Gemlead encontrou um lead, o post que o revelou e cada campanha em que ele está.
Atributos
- objectstringSempre
lead_origin. - lead_idstringO ID do lead.
- personaobject ou nullA persona para a qual ele foi encontrado.
- methodstring ou nullComo ele foi encontrado.
followingkeywordscompetitor_followerscompetitor_comments - found_querystring ou nullA busca por palavra-chave que o encontrou, para
keywords. - source_usernamestring ou nullA fonte ou a conta concorrente pela qual ele foi encontrado.
- found_postobject ou nullO post que revelou o lead, quando foi um post.
- campaignsarray de objectsAs campanhas em que o lead está, cada uma com
id,name, ostatusdo lead nela, omethodda campanha e ostepem que o lead está.
{
"object": "lead_origin",
"lead_id": "msgOtJ8dvT",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"method": "keywords",
"found_query": "paid discord picks",
"source_username": null,
"found_post": {
"method": "keywords",
"query": "paid discord picks",
"post_id": "1985102233445566778",
"text": "Thinking of moving my paid discord picks to a real checkout. Any tips?",
"url": "https://x.com/i/status/1985102233445566778",
"posted_at": "2026-11-05T13:40:02.000Z",
"found_at": "2026-11-05T14:02:11.482Z"
},
"campaigns": [
{
"id": "c7RkQ2wLxe",
"name": "Tipsters warm intro",
"status": "waiting",
"method": "keywords",
"step": "Timer"
}
]
}Obter a origem de um lead
Retorna como o Gemlead encontrou o lead, o post que o revelou e cada campanha em que ele está, com a etapa em que ele se encontra.
Parâmetros de caminho
- lead_idstringObrigatórioO ID do lead.
Retorno
Erros
- Nenhum lead com este ID na conta da chave.
curl https://gemlead.ai/api/v1/leads/msgOtJ8dvT/origin \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "lead_origin",
"lead_id": "msgOtJ8dvT",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"method": "keywords",
"found_query": "paid discord picks",
"source_username": null,
"found_post": {
"method": "keywords",
"query": "paid discord picks",
"post_id": "1985102233445566778",
"text": "Thinking of moving my paid discord picks to a real checkout. Any tips?",
"url": "https://x.com/i/status/1985102233445566778",
"posted_at": "2026-11-05T13:40:02.000Z",
"found_at": "2026-11-05T14:02:11.482Z"
},
"campaigns": [
{
"id": "c7RkQ2wLxe",
"name": "Tipsters warm intro",
"status": "waiting",
"method": "keywords",
"step": "Timer"
}
]
}