Referencia de la API
Equipo
El propietario de una cuenta de X puede compartirla con otros usuarios de Gemlead. Cada miembro trabaja en ella con el plan y los créditos del propietario, y su rol decide lo que puede cambiar, zona por zona. La facturación y la conexión de la cuenta de X quedan en manos del propietario.
El propietario y los admins invitan y cambian a los miembros. Solo el propietario puede nombrar o cambiar a un admin. Una cuenta de X tiene como máximo 50 miembros, invitaciones incluidas.
Un miembro con un rol que edita los ajustes puede crear su propia clave API o conectar una app de IA. Esa clave funciona con el rol del miembro, nunca con más, y deja de funcionar en cuanto sale del equipo.
El objeto team
Quién trabaja en la cuenta de X en Gemlead, primero su propietario, y lo que el usuario de la clave puede hacer en ella.
Atributos
- objectstringSiempre
team. - account_idstringEl ID de la cuenta de X, como en el objeto account.
- your_rolestringEl rol del usuario de la clave.
ownerpara las claves del propietario.ownerviewersettereditoradmincustom - your_member_idstring o nullEl usuario de la clave como miembro, null para el propietario.
- ownerobjectEl usuario de Gemlead que conectó la cuenta de X y la paga.
- membersarray de objectsLos miembros y las invitaciones, como objetos team member.
- max_membersintegerEl máximo de miembros de una cuenta de X, invitaciones incluidas.
{
"object": "team",
"account_id": "a9PzK2vRtM",
"your_role": "owner",
"your_member_id": null,
"owner": {
"name": "Alex Moreau",
"email": "alex@acme.com",
"profile_image_url": "https://pbs.twimg.com/profile_images/1180044592/acme_400x400.jpg"
},
"members": [
{
"id": "Tm4kQ9wZrB",
"object": "team_member",
"email": "sara@acme.com",
"name": "Sara Kim",
"profile_image_url": "https://pbs.twimg.com/profile_images/1733920571/sara_400x400.jpg",
"role": "setter",
"zones": {
"personas": "view",
"campaigns": "view",
"chat": "edit",
"leads": "edit",
"settings": "view"
},
"status": "active",
"created_at": "2026-09-14T09:21:05.300Z"
},
{
"id": "Tm8vX2pLnC",
"object": "team_member",
"email": "dev@acme.com",
"name": null,
"profile_image_url": null,
"role": "custom",
"zones": {
"personas": "edit",
"campaigns": "view",
"chat": "view",
"leads": "edit",
"settings": "view"
},
"status": "invited",
"created_at": "2026-11-06T07:45:12.904Z"
}
],
"max_members": 50
}Obtener el equipo
Devuelve el propietario de la cuenta de X, luego cada miembro e invitación con su rol y sus zonas, y el rol del usuario de la clave.
Devuelve
El objeto team.
curl https://gemlead.ai/api/v1/team \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "team",
"account_id": "a9PzK2vRtM",
"your_role": "owner",
"your_member_id": null,
"owner": {
"name": "Alex Moreau",
"email": "alex@acme.com",
"profile_image_url": "https://pbs.twimg.com/profile_images/1180044592/acme_400x400.jpg"
},
"members": [
{
"id": "Tm4kQ9wZrB",
"object": "team_member",
"email": "sara@acme.com",
"name": "Sara Kim",
"profile_image_url": "https://pbs.twimg.com/profile_images/1733920571/sara_400x400.jpg",
"role": "setter",
"zones": {
"personas": "view",
"campaigns": "view",
"chat": "edit",
"leads": "edit",
"settings": "view"
},
"status": "active",
"created_at": "2026-09-14T09:21:05.300Z"
},
{
"id": "Tm8vX2pLnC",
"object": "team_member",
"email": "dev@acme.com",
"name": null,
"profile_image_url": null,
"role": "custom",
"zones": {
"personas": "edit",
"campaigns": "view",
"chat": "view",
"leads": "edit",
"settings": "view"
},
"status": "invited",
"created_at": "2026-11-06T07:45:12.904Z"
}
],
"max_members": 50
}El objeto team member
Alguien con quien el propietario comparte la cuenta de X, o una invitación que aún no se ha aceptado.
Atributos
- idstringIdentificador único del miembro.
- objectstringSiempre
team_member. - emailstringEl email al que se envió la invitación.
- namestring o nullSu nombre en Gemlead. Null hasta que se una al equipo.
- profile_image_urlstring o nullLa URL de su foto de perfil.
- rolestring
viewerve todo y no cambia nada.settergestiona el chat y los leads.editorcambia todo menos los ajustes.admincambia todo y gestiona el equipo.customcambia las zonas que elijas.viewersettereditoradmincustom - zonesobjectLo que el miembro puede cambiar, zona por zona, cada una en
viewoedit. El rol las define, ycustomconserva las que elijas. - statusstring
activeen cuanto tiene una cuenta de Gemlead con este email,invitedhasta entonces.invitedactive - created_atstringCuándo se envió la invitación, en ISO 8601.
{
"id": "Tm4kQ9wZrB",
"object": "team_member",
"email": "sara@acme.com",
"name": "Sara Kim",
"profile_image_url": "https://pbs.twimg.com/profile_images/1733920571/sara_400x400.jpg",
"role": "setter",
"zones": {
"personas": "view",
"campaigns": "view",
"chat": "edit",
"leads": "edit",
"settings": "view"
},
"status": "active",
"created_at": "2026-09-14T09:21:05.300Z"
}Invitar a un miembro
Invita a alguien al equipo de la cuenta de X por email, con un rol, y le envía un email. Quien ya tiene una cuenta de Gemlead con este email entra al instante, y cualquier otra persona en cuanto se registre con él.
Parámetros del cuerpo
- emailstringObligatorioEl email de la persona invitada, hasta 200 caracteres.
- rolestringObligatorioLo que puede hacer el miembro. Consulta
roleen el objeto team member.viewersettereditoradmincustom - zonesobjectSolo con el rol
custom, lo que el miembro puede cambiar, zona por zona, cada una enviewoedit. Una zona que no se envía queda enview.
Devuelve
El nuevo objeto team member, con su status en active si tiene una cuenta de Gemlead, o en invited si no.
Errores
- Falta un parámetro obligatorio.
paramlo indica. - Un parámetro tiene un valor que la API no acepta, como
zonescon un rol distinto decustomo el propio email del propietario.paramlo indica. - El cuerpo tiene un campo que este endpoint no acepta.
- 403forbiddenEl usuario de la clave no puede cambiar el equipo. El propietario y los admins sí pueden, y solo el propietario nombra o cambia a un admin.
- Este email ya está en el equipo, como miembro o como invitación.
- La cuenta de X ya tiene 50 miembros, invitaciones incluidas.
curl -X POST https://gemlead.ai/api/v1/team/members \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "dev@acme.com",
"role": "custom",
"zones": {
"personas": "edit",
"leads": "edit"
}
}'{
"id": "Tm8vX2pLnC",
"object": "team_member",
"email": "dev@acme.com",
"name": null,
"profile_image_url": null,
"role": "custom",
"zones": {
"personas": "edit",
"campaigns": "view",
"chat": "view",
"leads": "edit",
"settings": "view"
},
"status": "invited",
"created_at": "2026-11-06T07:45:12.904Z"
}Actualizar un miembro
Cambia el rol de un miembro, o lo que puede cambiar zona por zona. Enviar zones pasa el rol a custom, y solo cambian las zonas que envías.
Parámetros de ruta
- member_idstringObligatorioEl ID del miembro del equipo.
Parámetros del cuerpo
- rolestringLo que puede hacer el miembro. Consulta
roleen el objeto team member.viewersettereditoradmincustom - zonesobjectLas zonas que cambian, cada una en
viewoedit. Las demás se quedan como están.
Devuelve
El objeto team member actualizado.
Errores
- No hay ningún miembro del equipo 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.
- 403forbiddenEl usuario de la clave no puede cambiar el equipo. El propietario y los admins sí pueden, y solo el propietario nombra o cambia a un admin.
curl -X PATCH \
https://gemlead.ai/api/v1/team/members/Tm4kQ9wZrB \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"role": "editor"
}'{
"id": "Tm4kQ9wZrB",
"object": "team_member",
"email": "sara@acme.com",
"name": "Sara Kim",
"profile_image_url": "https://pbs.twimg.com/profile_images/1733920571/sara_400x400.jpg",
"role": "editor",
"zones": {
"personas": "edit",
"campaigns": "edit",
"chat": "edit",
"leads": "edit",
"settings": "view"
},
"status": "active",
"created_at": "2026-09-14T09:21:05.300Z"
}Quitar a un miembro
Quita a un miembro del equipo, o cancela una invitación. Pierde el acceso a la cuenta de X al instante.
Parámetros de ruta
- member_idstringObligatorioEl ID del miembro del equipo.
Devuelve
Un objeto con el id del miembro y deleted en true.
Errores
- No hay ningún miembro del equipo con este ID en la cuenta de la clave.
- 403forbiddenEl usuario de la clave no puede cambiar el equipo. El propietario y los admins sí pueden, y solo el propietario nombra o cambia a un admin.
curl -X DELETE \
https://gemlead.ai/api/v1/team/members/Tm8vX2pLnC \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "Tm8vX2pLnC",
"object": "team_member",
"deleted": true
}Salir del equipo
Saca al usuario de la clave del equipo de la cuenta de X. Funciona con la clave de un miembro, nunca con la del propietario.
Devuelve
Un objeto con el id del miembro y deleted en true.
Errores
- La clave es del propietario. En su lugar, el propietario quita a los miembros.
curl -X POST https://gemlead.ai/api/v1/team/leave \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "Tm4kQ9wZrB",
"object": "team_member",
"deleted": true
}