Référence API

Équipe

Le propriétaire d'un compte X peut le partager avec d'autres utilisateurs Gemlead. Chaque membre y travaille avec le plan et les crédits du propriétaire, et son rôle décide de ce qu'il peut modifier, zone par zone. La facturation et la connexion du compte X restent au propriétaire.

Le propriétaire et les admins invitent et modifient les membres. Seul le propriétaire peut nommer ou modifier un admin. Un compte X a 50 membres au plus, invitations comprises.

Un membre dont le rôle permet de modifier les réglages peut créer sa propre clé API ou connecter une app d'IA. Cette clé agit avec le rôle du membre, jamais plus, et cesse de fonctionner dès qu'il quitte l'équipe.

L'objet équipe

Qui travaille sur le compte X dans Gemlead, son propriétaire en premier, et ce que l'utilisateur de la clé peut y faire.

Attributs

  • objectstring
    Toujours team.
  • account_idstring
    L'ID du compte X, comme dans l'objet compte.
  • your_rolestring
    Le rôle de l'utilisateur de la clé. owner pour les clés du propriétaire.
    ownerviewersettereditoradmincustom
  • your_member_idstring ou null
    L'utilisateur de la clé en tant que membre, null pour le propriétaire.
  • ownerobject
    L'utilisateur Gemlead qui a connecté le compte X et qui le paie.
  • memberstableau d'objects
    Les membres et les invitations, en objets membre d'équipe.
  • max_membersinteger
    Le nombre maximum de membres d'un compte X, invitations comprises.
L'objet équipe
{
  "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
}

Récupérer l'équipe

GET/v1/teamScope readMCPget_team

Renvoie le propriétaire du compte X, puis chaque membre et chaque invitation avec son rôle et ses zones, et le rôle de l'utilisateur de la clé.

Renvoie

L'objet équipe.

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

L'objet membre d'équipe

Une personne avec qui le propriétaire partage le compte X, ou une invitation pas encore acceptée.

Attributs

  • idstring
    Identifiant unique du membre.
  • objectstring
    Toujours team_member.
  • emailstring
    L'email auquel l'invitation a été envoyée.
  • namestring ou null
    Son nom dans Gemlead. Null tant que la personne n'a pas rejoint l'équipe.
  • profile_image_urlstring ou null
    L'URL de sa photo de profil.
  • rolestring
    viewer voit tout et ne modifie rien. setter gère le chat et les leads. editor modifie tout sauf les réglages. admin modifie tout et gère l'équipe. custom modifie les zones que tu choisis.
    viewersettereditoradmincustom
  • zonesobject
    Ce que le membre peut modifier, zone par zone, chacune à view ou edit. Le rôle les fixe, et custom garde celles que tu choisis.
  • statusstring
    active dès que la personne a un compte Gemlead avec cet email, invited jusque-là.
    invitedactive
  • created_atstring
    Date d'envoi de l'invitation, en ISO 8601.
L'objet membre d'équipe
{
  "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"
}

Inviter un membre

POST/v1/team/membersScope writeMCPedit_team

Invite quelqu'un dans l'équipe du compte X par email, avec un rôle, et lui envoie un email. Une personne qui a un compte Gemlead avec cet email rejoint l'équipe tout de suite, les autres dès leur inscription avec cet email.

Paramètres du corps

  • emailstringObligatoire
    L'email de la personne, 200 caractères au plus.
  • rolestringObligatoire
    Ce que le membre peut faire. Voir role dans l'objet membre d'équipe.
    viewersettereditoradmincustom
  • zonesobject
    Avec le rôle custom seulement, ce que le membre peut modifier, zone par zone, chacune à view ou edit. Une zone absente vaut view.

Renvoie

Le nouvel objet membre d'équipe, son status à active si la personne a un compte Gemlead, sinon invited.

Erreurs

  • Il manque un paramètre obligatoire. param indique lequel.
  • Un paramètre a une valeur que l'API n'accepte pas, comme zones avec un autre rôle que custom ou l'email du propriétaire lui-même. param indique lequel.
  • Le corps contient un champ que cet endpoint n'accepte pas.
  • L'utilisateur de la clé ne peut pas modifier l'équipe. Le propriétaire et les admins le peuvent, et seul le propriétaire nomme ou modifie un admin.
  • Cet email est déjà dans l'équipe, comme membre ou comme invitation.
  • Le compte X a déjà 50 membres, invitations comprises.
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"
    }
  }'
Réponse200
{
  "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"
}

Modifier un membre

PATCH/v1/team/members/:member_idScope writeMCPedit_team

Change le rôle d'un membre, ou ce qu'il peut modifier zone par zone. Envoyer zones passe le rôle à custom, et seules les zones envoyées changent.

Paramètres de chemin

  • member_idstringObligatoire
    L'ID du membre d'équipe.

Paramètres du corps

  • rolestring
    Ce que le membre peut faire. Voir role dans l'objet membre d'équipe.
    viewersettereditoradmincustom
  • zonesobject
    Les zones à changer, chacune à view ou edit. Les autres ne bougent pas.

Renvoie

L'objet membre d'équipe à jour.

Erreurs

  • Aucun membre d'équipe avec cet ID sur le compte de la clé.
  • Un paramètre a une valeur que l'API n'accepte pas. param indique lequel.
  • Le corps contient un champ que cet endpoint n'accepte pas.
  • L'utilisateur de la clé ne peut pas modifier l'équipe. Le propriétaire et les admins le peuvent, et seul le propriétaire nomme ou modifie 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"
  }'
Réponse200
{
  "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"
}

Retirer un membre

DELETE/v1/team/members/:member_idScope writeMCPedit_team

Retire un membre de l'équipe, ou annule une invitation. La personne perd l'accès au compte X tout de suite.

Paramètres de chemin

  • member_idstringObligatoire
    L'ID du membre d'équipe.

Renvoie

Un objet avec l'id du membre et deleted à true.

Erreurs

  • Aucun membre d'équipe avec cet ID sur le compte de la clé.
  • L'utilisateur de la clé ne peut pas modifier l'équipe. Le propriétaire et les admins le peuvent, et seul le propriétaire nomme ou modifie 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"
Réponse200
{
  "id": "Tm8vX2pLnC",
  "object": "team_member",
  "deleted": true
}

Quitter l'équipe

POST/v1/team/leaveScope writeMCPedit_team

Retire l'utilisateur de la clé de l'équipe du compte X. Fonctionne avec la clé d'un membre, jamais avec celle du propriétaire.

Renvoie

Un objet avec l'id du membre et deleted à true.

Erreurs

  • La clé est celle du propriétaire. Le propriétaire ne quitte pas l'équipe, il en retire des membres.
POST/v1/team/leave
curl -X POST https://gemlead.ai/api/v1/team/leave \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Réponse200
{
  "id": "Tm4kQ9wZrB",
  "object": "team_member",
  "deleted": true
}