Referencia de la API
Leads
Los leads son los perfiles que Gemlead encuentra en X para tus buyer personas. Dana AI puntúa a cada uno de 0 a 100, y un lead está caliente a partir de 60. Lístalos con filtros, añádeles tus propios metadatos, como un ID de CRM, o actúa sobre uno como harías en la app.
El objeto lead
Alguien que Gemlead encontró en X para uno de tus buyer personas, con la puntuación que le dio Dana AI y la etapa de tu prospección en la que está.
Atributos
- idstringIdentificador único del lead.
- objectstringSiempre
lead. - profileobjectEl perfil de X del lead.
- scoreinteger o nullCuánto encaja el lead con tu buyer persona, de 0 a 100. Null hasta que se puntúe.
- score_reasonstring o nullPor qué el lead obtuvo esta puntuación, en una o dos frases.
- hotbooleanTrue si la puntuación es de 60 o más.
- statusstringEn qué punto de tu pipeline está el lead.
pendingscoringscoredin_campaigncontactedin_conversationclosed - personaobject o nullEl buyer persona para el que se encontró el lead.
- campaignobject o nullLa campaña en la que está el lead, si la hay.
- conversation_idstring o nullLa conversación con el lead, cuando ya existe. Úsala con Obtener una conversación.
- locked_toobject o nullLa única cuenta de X del propietario a la que se reserva este perfil. Un lead va a una sola cuenta de X, así que las demás nunca lo contactan. Null mientras ninguna cuenta retenga el lead.
- found_atstringCuándo encontró Gemlead el lead, en ISO 8601.
- scored_atstring o nullCuándo se puntuó el lead, en ISO 8601.
- updated_atstringCuándo cambió el lead por última vez, en ISO 8601.
- metadataobjectTus propios pares clave-valor, definidos con Actualizar un 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
Devuelve tus leads, por defecto primero los puntuados más recientemente. Combina filtros para obtener justo los leads que quieres.
Parámetros de consulta
- personastringSolo los leads del buyer persona con este ID.
- statusstringSolo los leads con estos estados, separados por comas, como
scored,in_campaign.pendingscoringscoredin_campaigncontactedin_conversationclosed - score_minintegerSolo los leads con esta puntuación o más, de 0 a 100.
- score_maxintegerSolo los leads con esta puntuación o menos, de 0 a 100.
- hotboolean
truepara los leads con una puntuación de 60 o más,falsepara los demás. - scored_afterstringSolo los leads puntuados después de esta fecha, en ISO 8601.
- scored_beforestringSolo los leads puntuados antes de esta fecha, en ISO 8601.
- found_afterstringSolo los leads encontrados después de esta fecha, en ISO 8601.
- found_beforestringSolo los leads encontrados antes de esta fecha, en ISO 8601.
- orderstringEl criterio de orden. Por defecto
-scored_at, primero los puntuados más recientemente.-scored_at-score-found_at - limitintegerCuántos objetos devolver, de 1 a 100. 25 por defecto.
- cursorstringEl
next_cursorde la página anterior, para obtener la siguiente. Consulta Paginación.
Devuelve
Una lista de objetos lead.
Errores
- Un parámetro tiene un valor que la API no acepta.
paramlo indica.
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"
}Obtener un lead
Devuelve un lead.
Parámetros de ruta
- idstringObligatorioEl ID del lead.
Devuelve
Un objeto lead.
Errores
- No hay ningún lead con este ID en la cuenta de la clave.
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": {}
}Actualizar un lead
Define tus propios metadatos en un lead, o lo cierra cuando terminas con él. Cerrar un lead detiene los pasos de campaña que aún tenía pendientes, así que Gemlead deja de escribirle.
Parámetros de ruta
- idstringObligatorioEl ID del lead.
Parámetros del cuerpo
- metadataobjectPares clave-valor que se fusionan con los metadatos del lead. Claves de hasta 40 letras, cifras,
_o-, valores de tipo string de hasta 500 caracteres, 20 claves como máximo. Pon una clave ennullo en un string vacío para quitarla, ometadataennullpara borrarlas todas. - statusstringPonlo en
closedpara cerrar el lead.closed
Devuelve
El objeto lead actualizado.
Errores
- No hay ningún lead con este ID en la cuenta de la clave.
- Un parámetro tiene un valor que la API no acepta.
paramlo indica. - El cuerpo tiene un campo que este endpoint no acepta.
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"
}
}Volver a puntuar un lead
Pide a Dana AI que vuelva a puntuar el lead según su buyer persona, por ejemplo después de editar la descripción del buyer persona. Usa hasta 2 créditos por lead: 1 por la primera pasada y 1 más por la puntuación a fondo si la supera.
Parámetros de ruta
- lead_idstringObligatorioEl ID del lead.
Devuelve
El objeto lead.
Errores
- No hay ningún lead con este ID en la cuenta de la clave.
- 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/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": {}
}Actualizar el perfil de un lead
Vuelve a leer el perfil de X del lead, para tener al día su bio, su foto o su número de seguidores.
Parámetros de ruta
- lead_idstringObligatorioEl ID del lead.
Devuelve
El objeto lead actualizado.
Errores
- No hay ningún lead con este ID en la cuenta de la clave.
- 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/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 a un lead
Sigue al lead en X desde tu cuenta de X, al instante.
Parámetros de ruta
- lead_idstringObligatorioEl ID del lead.
Devuelve
El objeto lead.
Errores
- No hay ningún lead con este ID en la cuenta de la clave.
- El lead no tiene ID de cuenta de X que seguir.
- 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/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": {}
}Dejar de seguir a un lead
Deja de seguir al lead en X desde tu cuenta de X, al instante.
Parámetros de ruta
- lead_idstringObligatorioEl ID del lead.
Devuelve
El objeto lead.
Errores
- No hay ningún lead con este ID en la cuenta de la clave.
- El lead no tiene ID de cuenta de X que dejar de seguir.
- 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/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": {}
}Convertir un lead en fuente
Convierte un buen lead en fuente de su buyer persona, para encontrar más perfiles como él. Gemlead lee a quién sigue, sus seguidores o quién comenta sus publicaciones.
Parámetros de ruta
- lead_idstringObligatorioEl ID del lead.
Parámetros del cuerpo
- methodstring
followinglee a quién sigue el lead,competitor_followerssus seguidores,competitor_commentsquién comenta sus publicaciones. Por defectofollowing.followingcompetitor_followerscompetitor_comments
Devuelve
Un objeto con el lead_id, su persona_id, el method y la nueva fuente, o el nombre de usuario competitor_account para competitor_comments.
Errores
- No hay ningún lead con este ID en la cuenta de la clave.
- El lead no pertenece a ningún buyer persona.
- El buyer persona ya tiene esta cuenta como fuente con este método.
- El buyer persona ya tiene 100 cuentas de competidores.
- Un parámetro tiene un valor que la API no acepta.
paramlo indica. - 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/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
}Eliminar un lead
Elimina un lead. Sale de tus listas, todas las campañas se detienen para él y Gemlead no vuelve a traer ese mismo perfil para este buyer persona. Para dejar a alguien fuera de todos tus buyer personas, añádelo a la lista de exclusión.
Parámetros de ruta
- lead_idstringObligatorioEl ID del lead.
Devuelve
Un objeto con el id del lead y deleted en true.
Errores
- No hay ningún lead con este ID en la cuenta de la clave.
curl -X DELETE https://gemlead.ai/api/v1/leads/msgOtJ8dvT \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "msgOtJ8dvT",
"object": "lead",
"deleted": true
}El objeto lead origin
Cómo encontró Gemlead un lead, la publicación que lo hizo aparecer y cada campaña en la que está.
Atributos
- objectstringSiempre
lead_origin. - lead_idstringEl ID del lead.
- personaobject o nullEl buyer persona para el que se encontró.
- methodstring o nullCómo se encontró.
followingkeywordscompetitor_followerscompetitor_comments - found_querystring o nullLa búsqueda por palabras clave que lo encontró, para
keywords. - source_usernamestring o nullLa fuente o la cuenta de competidor a través de la que se encontró.
- found_postobject o nullLa publicación que hizo aparecer el lead, si la hubo.
- campaignsarray de objectsLas campañas en las que está el lead, cada una con su
id, suname, elstatusdel lead en ella, elmethodde la campaña y elstepen el que está el lead.
{
"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"
}
]
}Obtener el origen de un lead
Devuelve cómo encontró Gemlead el lead, la publicación que lo hizo aparecer y cada campaña en la que está, con el paso en el que se encuentra.
Parámetros de ruta
- lead_idstringObligatorioEl ID del lead.
Devuelve
Errores
- No hay ningún lead con este ID en la cuenta de la clave.
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"
}
]
}