Admin API
Gérez par programmation les membres de votre organisation, les espaces de travail, les invitations et les clés API avec l'Admin API, à l'aide d'une clé Admin API, d'un jeton OAuth org:admin, ou d'une clé personnelle ou de compte de service.
L'Admin API vous permet de gérer par programmation les membres, les « workspaces » (espaces de travail), les invitations et les clés API de votre organisation, au lieu de le faire manuellement dans la Claude Console.
Authentification
Authentifiez-vous avec l'un des trois types d'identifiants. Une clé Admin API couvre la plupart des points de terminaison. Les points de terminaison des comptes de service, des émetteurs de fédération et des règles de fédération n'acceptent qu'un jeton OAuth org:admin. Envoyez une clé personnelle ou une clé de compte de service dans l'en-tête x-api-key, comme vous le feriez pour une clé Admin API. Les exemples suivants appellent le point de terminaison d'informations sur l'organisation avec un jeton OAuth et avec une clé Admin API.
Les SDK Python, TypeScript, C#, Go, Java, PHP et Ruby exposent l'Admin API sous client.beta.organization, et la CLI ant sous ant beta:organization. Les exemples de cette page utilisent le client par défaut, qui lit une clé Admin API depuis ANTHROPIC_API_KEY ou un jeton porteur OAuth depuis ANTHROPIC_AUTH_TOKEN. Les méthodes de liste des SDK en Python, TypeScript, C#, Go et Java renvoient un itérateur qui récupère des pages supplémentaires à la demande ; limit définit donc la taille de la page, et non le total. Les exemples PHP, Ruby et curl renvoient une seule page. Dans la CLI, --limit plafonne les résultats des listes de membres, d'invitations, d'espaces de travail, de membres d'espaces de travail et de clés API. Pour les paramètres et les réponses de chaque point de terminaison, consultez la référence de l'Admin API.
Jeton porteur OAuth
Connectez-vous avec la CLI ant sous un profil dédié disposant de la portée org:admin (consultez Accès administrateur), puis exportez le jeton porteur. --profile admin stocke l'identifiant org:admin sous son propre profil et en fait le profil actif de la CLI. La variable exportée s'applique à chaque appel de SDK et de CLI dans ce shell. Utilisez un shell que vous réservez à l'administration, supprimez la variable lorsque vous avez terminé, et rebasculez la CLI avec ant profile activate default :
ant auth login --profile admin --scope "org:admin"
export ANTHROPIC_AUTH_TOKEN=$(ant auth print-credentials --profile admin --access-token)Les jetons interactifs ont une durée de vie courte. Si les requêtes commencent à renvoyer des erreurs 401, réexécutez la commande export pour actualiser le jeton.
Les SDK et la CLI ant lisent ANTHROPIC_AUTH_TOKEN automatiquement. Laissez ANTHROPIC_API_KEY non définie dans le même shell afin qu'ils envoient le jeton porteur. Les charges de travail automatisées ignorent l'étape de connexion : elles s'authentifient via la fédération d'identité de charge de travail, et les SDK et la CLI effectuent l'échange de jetons à partir des variables d'environnement de fédération. Consultez Amorcer une charge de travail pour gérer WIF.
Appelez l'Admin API avec le jeton exporté :
client = anthropic.Anthropic()
organization = client.beta.organization.retrieve()
print(f"id: {organization.id}")
print(f"name: {organization.name}")Un jeton org:admin accorde l'accès à l'ensemble de l'organisation, quel que soit l'espace de travail auquel le profil sous-jacent ou la règle de fédération est lié.
Pour la CI et les autres charges de travail non interactives, générez le jeton avec Workload Identity Federation au lieu de vous connecter de manière interactive. Consultez Gérer WIF avec l'Admin API.
Clé Admin API
Pour créer une clé Admin API pour votre type d'organisation, consultez Créer une clé Admin API.
client = anthropic.Anthropic()
organization = client.beta.organization.retrieve()
print(f"id: {organization.id}")
print(f"name: {organization.name}")Fonctionnement de l'Admin API
Authentifiez-vous avec n'importe quel identifiant décrit dans Authentification, puis gérez les ressources suivantes :
- Les membres de l'organisation et leurs rôles
- Les invitations de l'organisation
- Les espaces de travail et leurs membres
- Les clés API
- Les comptes de service, les émetteurs de fédération et les règles de fédération (jeton OAuth
org:adminuniquement)
Les usages courants incluent l'automatisation de l'intégration et du départ des utilisateurs, la gestion de l'accès aux espaces de travail et l'audit des clés API.
Rôles et autorisations de l'organisation
Il existe cinq rôles au niveau de l'organisation. Pour plus de détails, consultez Rôles et autorisations de la Console API.
| Rôle | Autorisations |
|---|---|
| user | Peut utiliser le playground |
| claude_code_user | Peut utiliser le playground et Claude Code |
| developer | Peut utiliser le playground et gérer les clés API |
| billing | Peut utiliser le playground et gérer les informations de facturation |
| admin | Peut faire tout ce qui précède, et gérer les utilisateurs |
Les owners et primary owners de l'organisation disposent de toutes les autorisations admin et peuvent également gérer les admins. Toutes les références au rôle admin sur cette page s'appliquent également aux owners et aux primary owners.
Concepts clés
Membres de l'organisation
Listez les membres de l'organisation, mettez à jour leurs rôles et supprimez-les.
Listez les membres de votre organisation :
client = anthropic.Anthropic()
users = client.beta.organization.users.list(limit=10)
# Récupère automatiquement d'autres pages selon les besoins.
for user in users:
print(f"{user.id}: {user.email} ({user.role})")Mettez à jour le rôle d'un membre :
client = anthropic.Anthropic()
user = client.beta.organization.users.update(
"user_01XyDMpzjS89pFZXqSFUBDr6", role="developer"
)
print(f"id: {user.id}")
print(f"role: {user.role}")Supprimez un membre de l'organisation :
client = anthropic.Anthropic()
removed_user = client.beta.organization.users.remove("user_01XyDMpzjS89pFZXqSFUBDr6")
print(f"id: {removed_user.id}")Invitations de l'organisation
Invitez des utilisateurs dans votre organisation et gérez les invitations en attente.
Invitez un utilisateur dans votre organisation :
client = anthropic.Anthropic()
invite = client.beta.organization.invites.create(
email="user@example.com", role="developer"
)
print(f"id: {invite.id}")
print(f"email: {invite.email}")
print(f"status: {invite.status}")
print(f"expires_at: {invite.expires_at}")Listez les invitations en attente :
client = anthropic.Anthropic()
invites = client.beta.organization.invites.list(limit=10)
# Récupère automatiquement d'autres pages selon les besoins.
for invite in invites:
print(f"{invite.id}: {invite.email} ({invite.status})")Supprimez une invitation :
client = anthropic.Anthropic()
deleted_invite = client.beta.organization.invites.delete(
"invite_015gWxHNr6h6TdRPZTmuCGnn"
)
print(f"id: {deleted_invite.id}")Espaces de travail
Consultez Espaces de travail pour des exemples dans la Console et via l'API.
Membres des espaces de travail
Gérez l'accès des utilisateurs à des espaces de travail spécifiques :
Ajoutez un membre à un espace de travail :
client = anthropic.Anthropic()
member = client.beta.organization.workspaces.members.add(
"wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
user_id="user_01XyDMpzjS89pFZXqSFUBDr6",
workspace_role="workspace_developer",
)
print(f"user_id: {member.user_id}")
print(f"workspace_role: {member.workspace_role}")Listez les membres d'un espace de travail :
client = anthropic.Anthropic()
members = client.beta.organization.workspaces.members.list(
"wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", limit=10
)
# Récupère automatiquement d'autres pages selon les besoins.
for member in members:
print(f"{member.user_id}: {member.workspace_role}")Mettez à jour le rôle d'un membre d'un espace de travail :
client = anthropic.Anthropic()
member = client.beta.organization.workspaces.members.update(
"user_01XyDMpzjS89pFZXqSFUBDr6",
workspace_id="wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
workspace_role="workspace_admin",
)
print(f"user_id: {member.user_id}")
print(f"workspace_role: {member.workspace_role}")Supprimez un membre d'un espace de travail :
client = anthropic.Anthropic()
removed_member = client.beta.organization.workspaces.members.remove(
"user_01XyDMpzjS89pFZXqSFUBDr6", workspace_id="wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
)
print(f"user_id: {removed_member.user_id}")Clés API
Surveillez et gérez les clés API. Chaque clé de la réponse inclut son horodatage expires_at (null pour les clés sans expiration) et principal, l'identité au nom de laquelle elle agit (consultez Types de clés). Pour une clé personnelle, principal vaut {"type": "user_actor", "user_id": "user_..."} ; pour une clé de compte de service, {"type": "service_account_actor", "service_account_id": "svac_..."} ; et pour une clé d'espace de travail, null. Chaque clé possède également un objet scope : {"type": "workspace", "workspace_id": "wrkspc_..."} pour une clé liée à un seul espace de travail, ou {"type": "organization"} pour une clé pouvant fonctionner dans n'importe quel espace de travail auquel le compte a accès. Le champ de premier niveau workspace_id est déprécié et vaut null à la fois pour les clés liées à l'espace de travail par défaut (Default Workspace) et pour les clés sans portée d'espace de travail ; utilisez scope pour les distinguer. Filtrer la liste par workspace_id avec l'ID du Default Workspace ne renvoie que les clés liées au Default Workspace ; les clés sans portée d'espace de travail ne sont renvoyées sous aucun filtre workspace_id.
Listez les clés API actives d'un espace de travail :
client = anthropic.Anthropic()
api_keys = client.beta.organization.api_keys.list(
limit=10, status="active", workspace_id="wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
)
# Récupère automatiquement d'autres pages selon les besoins.
for api_key in api_keys:
print(f"{api_key.id}: {api_key.name} ({api_key.status})")Renommez ou désactivez une clé API :
client = anthropic.Anthropic()
api_key = client.beta.organization.api_keys.update(
"apikey_01Rj2N8SVvo6BePZj99NhmiT", status="inactive", name="New Key Name"
)
print(f"id: {api_key.id}")
print(f"name: {api_key.name}")
print(f"status: {api_key.status}")Comptes de service
Créez et gérez les comptes de service (svac_...), les identités non humaines au nom desquelles agissent les clés de compte de service et les jetons Workload Identity Federation. Ces points de terminaison, comme ceux des émetteurs de fédération et des règles de fédération, nécessitent un jeton OAuth org:admin. Consultez Gérer WIF avec l'Admin API.
Émetteurs de fédération
Enregistrez les fournisseurs d'identité OIDC (fdis_...) dont les jetons peuvent attester de l'identité d'une charge de travail pour votre organisation. Consultez Gérer WIF avec l'Admin API.
Règles de fédération
Gérez les règles (fdrl_...) qui associent les jetons des émetteurs aux comptes de service et aux portées. Consultez Gérer WIF avec l'Admin API.
Accéder aux informations sur l'organisation
Le point de terminaison /v1/organizations/me renvoie l'organisation à laquelle appartient votre identifiant :
client = anthropic.Anthropic()
organization = client.beta.organization.retrieve()
print(f"id: {organization.id}")
print(f"name: {organization.name}"){
"id": "12345678-1234-5678-1234-567812345678",
"type": "organization",
"name": "Organization Name"
}Pour le détail des paramètres et les schémas de réponse, consultez la référence de l'API Organization Info.
Rapports d'utilisation et de coûts
Suivez l'utilisation et les coûts de votre organisation avec l'API Usage and Cost.
Analytique Claude Code
Surveillez la productivité des développeurs et l'adoption de Claude Code avec l'API Claude Code Analytics.
Limites de débit
Consultez les « rate limits » (limites de débit) configurées pour votre organisation et ses espaces de travail avec l'API Rate Limits.
API Compliance
Récupérez les données d'audit et d'activité de votre organisation avec l'API Compliance. Les clés Admin API ne peuvent lire que le flux d'activité (Activity Feed). Pour un accès complet, consultez Configurer l'API Compliance.
Bonnes pratiques
- Utilisez des noms et des descriptions explicites pour les espaces de travail et les clés API
- Gérez les erreurs des opérations ayant échoué
- Auditez régulièrement les rôles et les autorisations des membres
- Nettoyez les espaces de travail inutilisés et les invitations expirées
- Surveillez l'utilisation des clés API, auditez le champ
expires_atde chaque clé et effectuez une rotation périodique des clés
FAQ
L'Admin API accepte une clé Admin API (commençant par sk-ant-admin), un jeton porteur OAuth avec la portée org:admin, ou une clé personnelle ou de compte de service qui n'est pas limitée à un espace de travail spécifique. Seuls les membres de l'organisation disposant du rôle admin peuvent provisionner des clés Admin API, et seuls les membres disposant du rôle admin, owner ou primary owner peuvent obtenir des jetons org:admin. Une clé personnelle ou une clé de compte de service dispose des mêmes autorisations que le compte associé. Consultez Authentification.
Non. Vous créez les clés API dans la Claude Console. L'Admin API peut uniquement lire, renommer et modifier le statut des clés existantes.
Le comportement dépend du type de clé.
Les clés personnelles cessent de fonctionner lorsque leur utilisateur est supprimé de l'organisation. Les clés de compte de service cessent de fonctionner si leur compte de service est archivé, mais continuent de fonctionner même si l'utilisateur qui les a créées est supprimé. Les clés API d'espace de travail continuent de fonctionner. Dans l'espace de travail Claude Code, chaque clé est liée au membre qui l'a créée et cesse de fonctionner lorsque ce membre est supprimé.
Non. L'API ne peut pas supprimer les membres disposant du rôle admin.
Les invitations expirent après 21 jours. La durée d'expiration n'est pas configurable.
Pour les questions spécifiques aux espaces de travail, consultez la FAQ sur les espaces de travail.
Was this page helpful?