Docs/API et Webhooks/Organisation et utilisateurs

Organisation et utilisateurs

La ressource organisation renvoie les métadonnées sur votre compte. La ressource utilisateur vous permet de lister, récupérer, inviter, mettre à jour et désactiver les développeurs qui consomment la formation. Tous les points de terminaison se trouvent sous /api/public/v1.

Points de terminaison

MéthodeCheminPortéeObjectif
GET/orgorg:readMétadonnées de l'organisation appelante.
GET/usersusers:readLister les utilisateurs de l'organisation.
GET/users/{'{'}id{'}'}users:readUtilisateur unique incluant les totaux de progression.
POST/usersusers:writeInviter un utilisateur. Envoie un e-mail d'invitation.
PATCH/users/{'{'}id{'}'}users:writeMettre à jour le nom, l'e-mail, le rôle ou l'appartenance d'équipe.
DELETE/users/{'{'}id{'}'}users:writeDésactiver un utilisateur. Ne supprime pas définitivement.

Récupérer l'organisation

Renvoie le plan, le plafond de sièges, le slug, le domaine et l'état d'essai pour l'organisation liée à la clé API.

GET /api/public/v1/org
Authorization: Bearer scs_live_…

Réponse

{
  "id": "9c2f4b8e-0c1d-4a52-b6f3-1ed7b0a4c9f1",
  "name": "Acme Corp",
  "slug": "acme",
  "domain": "acme.com",
  "plan": "growth",
  "maxSeats": 250,
  "trialExpiresAt": null,
  "isActive": true,
  "createdAt": "2025-08-12T09:14:22Z"
}

Exemple

curl -sS -H "Authorization: Bearer $SCH_API_KEY" \
  https://api.limeplate.com/api/public/v1/org

Lister les utilisateurs

Renvoie chaque utilisateur de l'organisation, actif ou désactivé. La liste n'est pas paginée ; attendez-vous à jusqu'à quelques milliers d'entrées selon votre plan.

GET /api/public/v1/users
Authorization: Bearer scs_live_…

Réponse

[
  {
    "id": "b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4",
    "name": "Jane Smith",
    "email": "jane.smith@acme.com",
    "role": "learner",
    "teamId": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32",
    "teamName": "Payments",
    "isActive": true,
    "lastLoginAt": "2026-05-27T16:42:11Z",
    "createdAt": "2026-02-04T11:08:00Z"
  }
]

Exemple

curl -sS -H "Authorization: Bearer $SCH_API_KEY" \
  https://api.limeplate.com/api/public/v1/users

Récupérer un utilisateur

Renvoie les mêmes champs que l'entrée de liste plus l'XP agrégée, les challenges terminés, les scénarios terminés et les tableaux de progression par sujet. Utilisez ceci lorsque vous avez besoin de l'historique complet de formation d'un seul développeur.

GET /api/public/v1/users/{userId}
Authorization: Bearer scs_live_…

Réponse

{
  "id": "b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4",
  "name": "Jane Smith",
  "email": "jane.smith@acme.com",
  "role": "member",
  "teamId": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32",
  "teamName": "Payments",
  "isActive": true,
  "lastLoginAt": "2026-05-27T16:42:11Z",
  "createdAt": "2026-02-04T11:08:00Z",
  "totalXp": 4280,
  "completedChallenges": 38,
  "completedScenarios": 4,
  "practiceProgress": [],
  "learnProgress": []
}

Exemple

curl -sS -H "Authorization: Bearer $SCH_API_KEY" \
  https://api.limeplate.com/api/public/v1/users/b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4

Créer un utilisateur

Crée l'enregistrement utilisateur et envoie un e-mail d'invitation à l'adresse fournie. Idempotent sur email : reposter le même e-mail renvoie une erreur plutôt que de créer un doublon. Utilisez ceci depuis votre proxy SCIM, votre synchronisation SIRH ou votre script d'onboarding.

POST /api/public/v1/users
Authorization: Bearer scs_live_…
Content-Type: application/json

Corps de requête

ChampTypeRequisSignification
namestringouiNom d'affichage présenté dans les tableaux de bord et les e-mails d'affectation.
emailstringouiIdentifiant de connexion. Reçoit l'e-mail d'invitation.
rolestringouilearner (par défaut) ou org_admin. Toute autre valeur est coercée à learner.
teamIduuidnonPlacez l'utilisateur dans une équipe à la création. Omettez pour laisser non attribué.

Réponse

{
  "id": "b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4",
  "name": "Jane Smith",
  "email": "jane.smith@acme.com",
  "role": "learner",
  "teamId": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32",
  "teamName": "Payments",
  "isActive": true,
  "lastLoginAt": null,
  "createdAt": "2026-05-29T09:22:14Z"
}

Exemple

curl -sS -X POST \
  -H "Authorization: Bearer $SCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Jane Smith",
    "email": "jane.smith@acme.com",
    "role": "learner",
    "teamId": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32"
  }' \
  https://api.limeplate.com/api/public/v1/users

Mettre à jour un utilisateur

Tous les champs dans le corps sont écrits. Pour déplacer un utilisateur hors d'une équipe, envoyez teamId: null. Changer l'adresse e-mail ne renvoie pas une invitation.

PATCH /api/public/v1/users/{userId}
Authorization: Bearer scs_live_…
Content-Type: application/json

Corps de requête

Les quatre champs sont requis. Envoyez la valeur actuelle pour la conserver inchangée — il n'y a pas de sémantique PATCH partielle sur ce point de terminaison.

ChampTypeRequisSignification
namestringouiNom d'affichage.
emailstringouiIdentifiant de connexion.
rolestringouilearner ou org_admin.
teamIduuid ou nullouiId d'équipe, ou null pour détacher.

Réponse

{
  "id": "b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4",
  "name": "Jane Smith",
  "email": "jane.smith@acme.com",
  "role": "org_admin",
  "teamId": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32",
  "teamName": "Payments",
  "isActive": true,
  "lastLoginAt": "2026-05-27T16:42:11Z",
  "createdAt": "2026-02-04T11:08:00Z"
}

Exemple

curl -sS -X PATCH \
  -H "Authorization: Bearer $SCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Jane Smith",
    "email": "jane.smith@acme.com",
    "role": "org_admin",
    "teamId": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32"
  }' \
  https://api.limeplate.com/api/public/v1/users/b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4

Désactiver un utilisateur

Définit isActive à false. L'enregistrement reste en place : les challenges terminés, les scénarios, l'XP et les affectations historiques sont préservés pour que l'audit et les rapports continuent de fonctionner. L'utilisateur ne peut plus se connecter, et aucune nouvelle affectation ne sera créée contre lui via SARIF ou POST /assignments. Il n'y a pas de point de terminaison de suppression définitive ; les demandes de suppression de données passent par l'équipe confidentialité.

DELETE /api/public/v1/users/{userId}
Authorization: Bearer scs_live_…

Réponse

{
  "message": "User deactivated"
}

Exemple

curl -sS -X DELETE \
  -H "Authorization: Bearer $SCH_API_KEY" \
  https://api.limeplate.com/api/public/v1/users/b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4