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

  • objectstring
    Siempre team.
  • account_idstring
    El ID de la cuenta de X, como en el objeto account.
  • your_rolestring
    El rol del usuario de la clave. owner para las claves del propietario.
    ownerviewersettereditoradmincustom
  • your_member_idstring o null
    El usuario de la clave como miembro, null para el propietario.
  • ownerobject
    El usuario de Gemlead que conectó la cuenta de X y la paga.
  • membersarray de objects
    Los miembros y las invitaciones, como objetos team member.
  • max_membersinteger
    El máximo de miembros de una cuenta de X, invitaciones incluidas.
El objeto team
{
  "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

GET/v1/teamScope readMCPget_team

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.

GET/v1/team
curl https://gemlead.ai/api/v1/team \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Respuesta200
{
  "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

  • idstring
    Identificador único del miembro.
  • objectstring
    Siempre team_member.
  • emailstring
    El email al que se envió la invitación.
  • namestring o null
    Su nombre en Gemlead. Null hasta que se una al equipo.
  • profile_image_urlstring o null
    La URL de su foto de perfil.
  • rolestring
    viewer ve todo y no cambia nada. setter gestiona el chat y los leads. editor cambia todo menos los ajustes. admin cambia todo y gestiona el equipo. custom cambia las zonas que elijas.
    viewersettereditoradmincustom
  • zonesobject
    Lo que el miembro puede cambiar, zona por zona, cada una en view o edit. El rol las define, y custom conserva las que elijas.
  • statusstring
    active en cuanto tiene una cuenta de Gemlead con este email, invited hasta entonces.
    invitedactive
  • created_atstring
    Cuándo se envió la invitación, en ISO 8601.
El objeto team member
{
  "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

POST/v1/team/membersScope writeMCPedit_team

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

  • emailstringObligatorio
    El email de la persona invitada, hasta 200 caracteres.
  • rolestringObligatorio
    Lo que puede hacer el miembro. Consulta role en el objeto team member.
    viewersettereditoradmincustom
  • zonesobject
    Solo con el rol custom, lo que el miembro puede cambiar, zona por zona, cada una en view o edit. Una zona que no se envía queda en view.

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. param lo indica.
  • Un parámetro tiene un valor que la API no acepta, como zones con un rol distinto de custom o el propio email del propietario. param lo indica.
  • El cuerpo tiene un campo que este endpoint no acepta.
  • El 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.
POST/v1/team/members
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"
    }
  }'
Respuesta200
{
  "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

PATCH/v1/team/members/:member_idScope writeMCPedit_team

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_idstringObligatorio
    El ID del miembro del equipo.

Parámetros del cuerpo

  • rolestring
    Lo que puede hacer el miembro. Consulta role en el objeto team member.
    viewersettereditoradmincustom
  • zonesobject
    Las zonas que cambian, cada una en view o edit. 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. param lo indica.
  • El cuerpo tiene un campo que este endpoint no acepta.
  • El 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.
PATCH/v1/team/members/:member_id
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"
  }'
Respuesta200
{
  "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

DELETE/v1/team/members/:member_idScope writeMCPedit_team

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_idstringObligatorio
    El 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.
  • El 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.
DELETE/v1/team/members/:member_id
curl -X DELETE \
  https://gemlead.ai/api/v1/team/members/Tm8vX2pLnC \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Respuesta200
{
  "id": "Tm8vX2pLnC",
  "object": "team_member",
  "deleted": true
}

Salir del equipo

POST/v1/team/leaveScope writeMCPedit_team

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.
POST/v1/team/leave
curl -X POST https://gemlead.ai/api/v1/team/leave \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Respuesta200
{
  "id": "Tm4kQ9wZrB",
  "object": "team_member",
  "deleted": true
}