Claude Enterprise : gérer son équipe avec la nouvelle Admin API

Depuis juillet 2026, l'Admin API de Claude Enterprise permet de scripter l'ajout, la révocation et l'audit des membres. Endpoints réels, exemples curl et Python, et les pièges à éviter côté SSO et rôles.

Depuis le 14 juillet 2026, l'Admin API de Claude Enterprise permet enfin de gérer les membres d'une organisation par script plutôt qu'à la souris. Si tu administres une équipe sur claude.ai et que tu voulais un guide complet pour apprendre Claude côté opérations, voilà le morceau qui manquait : provisionner, révoquer, auditer les rôles et les groupes RBAC via HTTP. La bêta est ouverte à toutes les organisations Claude Enterprise, sans liste d'attente, avec des endpoints stables et une documentation à jour sur platform.claude.com/docs/en/api/admin.

L'article qui suit part du principe que tu sais lancer un curl, lire un JSON paginé et stocker un secret ailleurs que dans un .env commité. On va regarder ce qui vaut le coup d'automatiser, ce qui reste dans la console, et où sont les pièges quand tu commences à brancher ton HRIS dessus.

Ce que l'Admin API change concrètement

Jusqu'à cette bêta, ajouter un membre à ton organisation Claude Enterprise, changer un rôle ou retirer un accès passait par claude.ai en tant qu'admin. Ça marche pour une équipe de 10. À 80 personnes réparties sur trois entités, avec du turn-over et un onboarding tous les quinze jours, ça devient une corvée récurrente et une source d'erreurs de rôle.

Les cas qui justifient de sortir du clic sont concrets :

  • onboarding déclenché depuis le HRIS (BambooHR, Personio, workflow Notion RH) quand un contrat est signé,
  • offboarding synchronisé avec la coupure SSO le jour du départ,
  • revue trimestrielle des rôles avec un dump JSON pour l'audit interne,
  • gestion des groupes RBAC (composition, rôles personnalisés en lecture) sans passer par l'UI.

L'Admin API ne remplace pas la Messages API : elle vit à côté, avec sa propre clé, son propre scope, et ne sert pas à envoyer des prompts. C'est un plan de contrôle, pas un plan de données. Pour la partie usage quotidien de Claude par tes équipes, tu restes sur les workflows habituels décrits dans notre guide de setup Claude et de gestion des abonnements.

Prérequis : plan Enterprise, clé admin, permissions

La bêta cible les organisations Claude Enterprise (celles qui vivent sur claude.ai, pas les organisations Console/API qui sont un type d'orga distinct). Concrètement :

  • Tu dois être Primary Owner ou Owner de l'organisation pour émettre une Admin API key.
  • La clé se génère dans les paramètres d'organisation côté Enterprise. Elle est distincte des clés Messages API : ne mélange pas les deux dans le même secret store.
  • Une clé Admin avec le scope read:org_audit peut appeler tous les endpoints GET de gestion des utilisateurs, ce qui est utile pour un job d'audit qui n'a besoin de rien écrire.

Règle d'hygiène : cette clé ne touche jamais un repo public. Stocke-la dans 1Password, Vault ou AWS Secrets Manager, prévois une rotation trimestrielle, et si tu la balances par erreur dans un log, révoque avant même de finir ton café. Sur les rate limits de l'Admin API, Anthropic ne publie pas de chiffres officiels dans les release notes de la bêta : traite ça comme inconnu et prévois du backoff exponentiel sur tes scripts.

Gérer les membres de l'organisation

Les endpoints membres ne demandent pas d'en-tête bêta. Ils sont directement accessibles avec ta clé Admin.

EndpointMéthodeUsage
Lister les membresGET /v1/organizations/userspagination, filtre par email
Détail d'un membreGET /v1/organizations/users/{user_id}rôle courant, statut
Changer un rôlePOST /v1/organizations/users/{user_id}update partiel
Retirer un membreDELETE /v1/organizations/users/{user_id}révoque l'accès
InviterPOST /v1/organizations/invitesenvoie l'email d'invitation
Retirer une invitationDELETE /v1/organizations/invites/{invite_id}annule avant acceptation

Point important sur les rôles assignables via l'API pour une organisation Claude Enterprise : uniquement user et managed. Les rôles developer, billing et claude_code_user existent mais sont réservés aux organisations Console/API, pas à Enterprise. Le rôle admin n'est jamais assignable par API. Les rôles système comme membership_admin, owner ou primary_owner sont visibles en lecture, pas modifiables via API.

Exemple minimal, invitation d'un nouvel arrivant :

curl https://api.anthropic.com/v1/organizations/invites \
  -H "x-api-key: $CLAUDE_ADMIN_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "email": "nouveau.dev@exemple.fr",
    "role": "user"
  }'

Côté Python, avec requests, penser à gérer la pagination cursor-based. Une organisation à 400 comptes qui ignore after_id ne récupère que la première page et un audit incomplet :

import os, requests

BASE = "https://api.anthropic.com"
HEADERS = {
    "x-api-key": os.environ["CLAUDE_ADMIN_KEY"],
    "anthropic-version": "2023-06-01",
}

def list_all_users():
    users, after = [], None
    while True:
        params = {"limit": 100}
        if after:
            params["after_id"] = after
        r = requests.get(f"{BASE}/v1/organizations/users",
                         headers=HEADERS, params=params, timeout=30)
        r.raise_for_status()
        data = r.json()
        users.extend(data["data"])
        if not data.get("has_more"):
            return users
        after = data["last_id"]

Groupes RBAC et rôles personnalisés

Les groupes sont sous /v1/organizations/rbac_groups, avec les opérations classiques list, get, create, update, delete, plus /v1/organizations/rbac_groups/{group_id}/members pour la composition. Les rôles personnalisés sont accessibles en lecture uniquement sous /v1/organizations/rbac_roles.

Pour ces deux familles d'endpoints, tu dois envoyer l'en-tête bêta explicite : anthropic-beta: ce-user-management-2026-07-13. Les endpoints membres et invitations n'en ont pas besoin. Ne mélange pas.

Piège à éviter : aucun de ces chemins ne contient de segment {org_id}. Si tu vois quelque part un exemple qui écrit /v1/organizations/{org_id}/users, c'est faux. L'organisation est déduite de la clé Admin.

Auditer la consommation et coordonner avec les limites de dépense

La gestion des limites de dépense (spend limits) sur Claude Enterprise est exposée par une Admin API distincte, sortie séparément et déjà en bêta publique avant le 14 juillet 2026. Ne la confonds pas avec la bêta membres décrite ici : ce sont deux surfaces API différentes, chacune avec son propre périmètre.

Ce que tu peux industrialiser aujourd'hui côté membres, c'est le rapport de composition : qui a quel rôle, quel groupe, depuis quand. C'est déjà 80 % de ce qu'un audit interne demande une fois par trimestre. Combine ça avec ton système de tickets ou ton wiki (Notion, Confluence) via un script qui pousse un CSV mensuel, et tu remplaces une revue manuelle par un rapport reproductible.

Si tu construis un pipeline de reporting plus large qui mêle données Claude et données produit, la logique est la même que celle qu'on décrit dans notre pipeline SEO industrialisé avec Claude : tirer les données brutes, les nettoyer, laisser Claude générer le narratif.

Automatiser onboarding et offboarding

Deux scénarios qui reviennent tout le temps.

Onboarding. Un contrat est signé dans ton HRIS. Un webhook déclenche un job qui appelle POST /v1/organizations/invites avec l'email pro et le rôle par défaut. Si tu as des groupes RBAC par équipe, tu enchaînes avec l'ajout au groupe via /v1/organizations/rbac_groups/{group_id}/members. Le nouveau reçoit l'invitation le jour même sans qu'un admin ait cliqué.

Offboarding. Là, l'ordre compte. Si tu supprimes l'utilisateur via DELETE /v1/organizations/users/{user_id} avant de couper l'accès dans ton IdP SSO, un compte pourrait techniquement se réauthentifier tant que le retrait SSO n'est pas propagé. Coupe le SSO d'abord (Okta, Entra, Google Workspace), attends la propagation, puis supprime côté Claude. Un simple sleep 60 entre les deux appels dans ton script d'offboarding évite déjà beaucoup de mauvaises surprises.

Pseudo-code très condensé, à adapter à ton stack :

def offboard(email):
    idp.disable_user(email)          # 1. IdP d'abord
    time.sleep(60)                    # 2. laisser propager
    user = find_claude_user(email)    # 3. lookup côté Claude
    if user:
        requests.delete(
            f"{BASE}/v1/organizations/users/{user['id']}",
            headers=HEADERS, timeout=30
        ).raise_for_status()
    log_audit(email, "offboarded")   # 4. trace

Trace tout dans un log immuable. Le jour où quelqu'un demande qui a supprimé quoi, tu veux la réponse en une requête.

Limites actuelles et quand rester dans la console

La bêta membres ne couvre pas tout. Ce qui reste dans l'UI Enterprise à ce jour :

  • La configuration SSO et SCIM. Aucune information vérifiée sur un statut SCIM 2.0 disponible dans cette bêta : ne t'appuie pas dessus pour tes plans.
  • La création et la gestion fine des Projects et Artifacts au niveau organisation. Pour comprendre où ces surfaces produit se situent, on a un décryptage dédié dans notre page sur Projects et Artifacts.
  • Les webhooks temps réel côté Admin. Ni confirmés ni disponibles publiquement : ne les intègre pas à ton architecture cible tant qu'ils ne sont pas annoncés.
  • Une éventuelle « API workspaces » avec création programmatique de workspaces ou attribution de sièges par workspace : rien de vérifié dans cette bêta membres, ne bâtis pas d'architecture qui en dépend.

La bonne posture est hybride : script pour ce qui est répétitif et à haut volume (onboarding, offboarding, audit trimestriel des rôles et groupes), console pour ce qui se configure une fois et qu'on ne touche plus (politiques, SSO, paramètres d'organisation).

Passer à l'action

Si tu démarres cette semaine, trois scripts valent l'investissement, dans cet ordre :

  1. Un dump JSON hebdomadaire de tes membres et de leurs rôles, versionné dans un repo privé. Ça te donne un historique de composition sans effort.
  2. Un offboarding coordonné IdP puis Claude, avec un log d'audit. C'est le plus risqué à laisser en manuel.
  3. Un onboarding déclenché depuis ton HRIS, une fois que les deux premiers tournent proprement.

L'Admin API n'a d'intérêt que si tes équipes utilisent Claude sérieusement au quotidien. Si tu veux monter ce niveau d'usage côté utilisateurs finaux avant de tout automatiser côté admin, c'est exactement ce que couvre la formation Maîtriser Claude au quotidien chez Ottho : cinq semaines, cinq projets concrets, à partir de 900 € TTC.

Pilier 1 · Mastery

Maîtriser Claude au quotidien : configuration, abonnements, premiers prompts

Choisir son plan Claude, configurer son environnement, comprendre la différence entre Claude.ai, Projects et Artifacts.

Découvrir le pilier complet →