Ce guide couvre les limites de dépenses et les demandes d'augmentation de limites de dépenses pour votre organisation Claude Enterprise à l'aide de l'API Claude Enterprise Admin. Les limites de dépenses vous permettent de plafonner les dépenses en crédits d'utilisation de chaque membre sur une période récurrente, de voir d'où provient la limite de chaque membre et d'examiner ou de traiter les demandes des membres pour une limite plus élevée.
Pour les rapports d'utilisation et de coûts par utilisateur et par période, consultez le guide de référence de l'API Claude Enterprise Analytics.
L'API Claude Enterprise Admin est actuellement en version bêta publique et disponible pour les organisations disposant de plans Enterprise avec crédits d'utilisation activés.
Aperçu
Il y a huit points de terminaison répartis sur deux ressources :
Ressource | Points de terminaison | Utilisation |
Limites de dépenses |
| Lire la limite effective et les dépenses cumulées de chaque membre ; définir ou effacer un remplacement par utilisateur. |
Demandes d'augmentation de limites de dépenses |
| Lister les demandes des membres pour une limite plus élevée, avec le contexte nécessaire pour décider ; approuver ou refuser chaque demande. |
Utilisez les points de terminaison des limites de dépenses pour répondre à « Quelle limite s'applique à chaque membre, d'où provient-elle et à quel point en sont-ils ? » et pour définir un remplacement par utilisateur. Utilisez les points de terminaison des demandes d'augmentation de limites de dépenses pour traiter la file d'attente des demandes soumises par les membres.
Conditions préalables et authentification
Votre organisation doit être sur un plan Claude Enterprise.
Les crédits d'utilisation doivent être activés pour votre organisation. Votre propriétaire principal peut activer cela sous Paramètres de facturation dans Claude.
Le propriétaire principal doit créer une clé API Admin avec l'une ou les deux portées suivantes :
read:spend_limits(requis pour tous les points de terminaisonGET)write:spend_limits(requis pour les points de terminaisonPOSTetDELETE)
Transmettez la clé dans l'en-tête x-api-key à chaque demande.
Important : Ne partagez pas les clés API publiquement et ne les archivez pas dans le contrôle de source.
URL de base
https://api.anthropic.com
Limitation de débit
Les huit points de terminaison partagent une seule limite par organisation de 60 demandes par minute. Les demandes dépassant la limite retournent 429 Trop de demandes.
Pagination
GET /v1/organizations/spend_limits/effective et GET /v1/organizations/spend_limit_increase_requests sont paginés avec un curseur opaque. La première demande retourne jusqu'à limit lignes plus un curseur next_page. Transmettez ce curseur inchangé en tant que paramètre page à la demande suivante, et répétez jusqu'à ce que next_page soit null.
Important : Ne modifiez pas les paramètres de requête au milieu de la séquence. Les curseurs sont liés aux filtres qui les ont émis. Si vous modifiez user_ids[], status[] ou actor_ids[] et transmettez un ancien curseur, vous obtiendrez une erreur 400 avec « le curseur ne correspond pas aux paramètres de requête actuels ». Commencez plutôt une nouvelle séquence à partir de la première page.
Traitez la chaîne de curseur comme opaque : ne l'analysez pas, ne la modifiez pas et ne la construisez pas vous-même.
Sérialisation des paramètres de liste
Les paramètres de liste utilisent la notation entre crochets : répétez le nom du paramètre avec [] pour chaque valeur.
user_ids[]=user_01AbCdEfGh&user_ids[]=user_01JkLmNoPq
Réponses d'erreur
Statut | Signification |
400 | Entrée invalide, valeur de paramètre non prise en charge, le curseur de page ne correspond pas aux paramètres actuels, ou une condition préalable n'est pas remplie (voir les validations par point de terminaison). |
401 | En-tête |
403 | La clé API ne dispose pas de la portée requise ( |
404 | Ressource non trouvée, ou clé API inconnue, expirée ou révoquée. |
429 | Limite de débit dépassée. |
500 | Erreur interne. |
Les corps d'erreur ont la forme :
{"type": "error", "error": {"type": "<error_type>", "message": "..."}, "request_id": "req_..."}
error.type est un discriminateur dépendant du statut : invalid_request_error (400), authentication_error (401), permission_error (403), not_found_error (404), rate_limit_error (429), api_error (500). request_id est toujours présent et est la valeur à citer lors de la prise de contact avec le support. Le tableau Validations sous chaque endpoint liste les messages spécifiques.
Concepts
La hiérarchie des limites de dépenses
Les dépenses en crédits d'utilisation de chaque membre sont plafonnées par une limite de dépense effective, résolue à partir d'une hiérarchie de niveaux de portée. Lorsqu'un membre n'a pas de remplacement par utilisateur, il hérite de la limite configurée pour son niveau de siège, son groupe (si votre organisation utilise des limites basées sur les groupes), ou la valeur par défaut à l'échelle de l'organisation.
La lecture de GET /v1/organizations/spend_limits/effective retourne chaque membre actuel avec sa limite effective résolue, d'où cette limite a été résolue (source), et ses dépenses cumulées pour la période. La définition d'un remplacement par utilisateur via POST /v1/organizations/spend_limits épingle un membre à une limite spécifique indépendamment de ce qu'il hériterait autrement. La suppression du remplacement le ramène à la limite héritée.
Portée
Une portée identifie le niveau auquel une limite de dépense est écrite ou résolue :
Type | Champs | Signification |
|
| Un membre spécifique. |
|
| Une valeur par défaut de niveau de siège. Les valeurs |
|
| Une valeur par défaut de groupe, lorsque votre organisation gère les limites par groupe. |
| — | La valeur par défaut à l'échelle de l'organisation. |
scope.type est une chaîne ouverte. Les clients doivent traiter les valeurs inconnues comme opaques et continuer plutôt que d'échouer. Des types de portée supplémentaires peuvent être ajoutés à l'avenir.
Période
period est la fenêtre récurrente sur laquelle la limite est appliquée et les dépenses sont réinitialisées. La seule valeur aujourd'hui est "monthly".
period est une chaîne ouverte. Les clients doivent traiter les valeurs inconnues comme opaques et continuer plutôt que d'échouer. Des valeurs de période supplémentaires peuvent être ajoutées à l'avenir.
Montants et devise
Toutes les valeurs monétaires sont des chaînes en unités mineures de la devise de facturation de l'organisation (centimes, pour USD). Par exemple, "50000" représente 500,00 USD. Analysez comme un nombre décimal et divisez par 100 pour afficher les dollars. Évitez la virgule flottante binaire pour les grandes valeurs.
amount est nullable : null signifie illimité (pas de limite). "0" signifie que les crédits d'utilisation sont désactivés pour ce membre.
period_to_date_spend est le crédit d'utilisation accumulé par le membre depuis le début de la period actuelle, dans le même format d'unité mineure. Il peut inclure une partie fractionnaire (par exemple, "41280.125").
Cycle de vie de la demande d'augmentation de limite de dépense
Une demande d'augmentation de limite de dépense est créée lorsqu'un membre clique sur « demander plus d'utilisation » dans claude.ai. Les demandes ne sont pas créées via cette API.
Statut | Signification |
| En attente d'action de l'administrateur. La demande porte normalement un |
| La demande a été résolue avec approbation : soit un administrateur l'a approuvée explicitement (en écrivant une limite de dépense par utilisateur au montant fourni par l'administrateur), soit une autre action de l'administrateur a rendu les crédits d'utilisation disponibles pour le membre (par exemple, en augmentant une limite de niveau de siège ou en activant la facturation des crédits d'utilisation pour l'organisation), soit le support Anthropic a augmenté une limite au nom de l'organisation. |
| Un administrateur a refusé. |
approved et denied sont tous deux terminaux. Un membre a au maximum une demande pending à la fois.
L'approbation via POST …/approve écrit la même ligne de limite de dépense par utilisateur que POST /v1/organizations/spend_limits écrit. La définition d'une limite de dépense directement ne fait pas transitionner une demande en attente. Utilisez le endpoint d'approbation pour résoudre une demande.
Par défaut, Anthropic envoie un e-mail au membre lorsque sa demande est approuvée ou refusée. Passez suppress_notification: true lors de l'approbation ou du refus pour supprimer cet e-mail (par exemple, lorsque votre propre système notifie le membre).
L'objet SpendLimit
Une limite configurée à un niveau de portée.
{
"type": "spend_limit",
"id": "spl_01AbCdEfGhIjKlMnOpQrSt",
"created_at": "2026-05-01T12:00:00Z",
"updated_at": "2026-05-03T09:14:11Z",
"scope": { "type": "user", "user_id": "user_01AbCdEfGh" },
"amount": "50000",
"currency": "USD",
"period": "monthly"
}Champ | Type | Description |
| chaîne | Toujours |
| chaîne | Préfixé |
| chaîne (RFC 3339) | Quand cette limite a été définie pour la première fois. |
| chaîne (RFC 3339) | Quand cette limite a été modifiée pour la dernière fois. |
| Portée | Le niveau auquel cette limite est définie. Voir la section « Portée ». |
| chaîne ou null | Limite pour la |
| chaîne | ISO 4217. La devise de facturation de l'organisation. |
| chaîne | La fenêtre récurrente sur laquelle |
L'objet SpendSummary
Un rapport calculé par membre : la limite effective du membre, sa source et ses dépenses cumulées pour la période. Pas une ressource adressable (pas de id).
{
"scope": { "type": "user", "user_id": "user_01AbCdEfGh" },
"amount": "50000",
"currency": "USD",
"period": "monthly",
"source": { "type": "seat_tier", "seat_tier": "enterprise_standard" },
"spend_limit_id": "spl_01XyZaBcDeFgHiJkLmNoPq",
"period_to_date_spend": "31402.5"
}Champ | Type | Description |
| Portée ( | Le membre pour lequel cette ligne est destinée. |
| chaîne ou null | La limite effective pour la |
| chaîne | ISO 4217. |
| chaîne | La période de la limite de dépense que |
| Portée | D'où |
| chaîne | ID du |
| chaîne de caractères | Les crédits d'utilisation accumulés par le membre depuis le début de la |
L'objet SpendLimitIncreaseRequest
{
"type": "spend_limit_increase_request",
"id": "slir_01AbCdEfGhIjKlMnOpQrSt",
"created_at": "2026-05-04T16:22:09Z",
"status": "pending",
"resolved_at": null,
"resolved_by": null,
"actor": {
"type": "user_actor",
"user_id": "user_01AbCdEfGh",
"name": "Jane Smith",
"email_address": "[email protected]"
},
"spend_summary": {
"scope": { "type": "user", "user_id": "user_01AbCdEfGh" },
"amount": "50000",
"currency": "USD",
"period": "monthly",
"source": { "type": "seat_tier", "seat_tier": "enterprise_standard" },
"spend_limit_id": "spl_01XyZaBcDeFgHiJkLmNoPq",
"period_to_date_spend": "48900"
}
}Champ | Type | Description |
| chaîne de caractères | Toujours |
| chaîne de caractères | Préfixé |
| chaîne de caractères (RFC 3339) | Quand le membre a soumis la demande. |
| chaîne de caractères |
|
| chaîne de caractères (RFC 3339) ou null | Quand la demande a été approuvée ou refusée. |
| Acteur ou null | Qui a approuvé ou refusé la demande : soit un |
| Acteur ( | Le membre qui a soumis la demande. |
| SpendSummary ou null | Contexte de décision en direct pour le demandeur : sa limite effective et ses dépenses période-à-date. Présent tant que |
Acteur
Champ | Type | Description |
| chaîne de caractères |
|
| chaîne de caractères | Présent sur |
| chaîne de caractères ou null | Présent sur |
| chaîne de caractères ou null | Présent sur |
| chaîne de caractères | Présent sur |
Limites de dépenses
1. Lister les limites de dépenses effectives
GET /v1/organizations/spend_limits/effective
Retourne tous les membres actuels de l'organisation avec leur limite effective résolue et les dépenses cumulées pour la période. Les membres sans remplacement par utilisateur apparaissent avec un source.type de seat_tier, rbac_group, ou organization. Les anciens membres ne sont pas listés.
Nécessite le scope : read:spend_limits.
Paramètres de requête
Champ | Type | Requis | Par défaut | Description |
| string, max 100 entrées | Non | tous les membres | Restreindre à des membres spécifiques. Accepte les IDs |
| integer 1–1000 | Non | 20 | Lignes par page. |
| chaîne de curseur opaque | Non | — | La valeur |
Champs de réponse
Champ | Type | Description |
| array of SpendSummary | Une entrée par membre, ordonnée par date d'adhésion à l'organisation (plus récent en premier). |
| string or null | Curseur opaque pour la page suivante ; |
Exemple de requête
curl "https://api.anthropic.com/v1/organizations/spend_limits/effective?limit=20" \
-H "x-api-key: $ANTHROPIC_ADMIN_KEY"
Exemple de réponse
{
"data": [
{
"scope": { "type": "user", "user_id": "user_01AbCdEfGh" },
"amount": "50000",
"currency": "USD",
"period": "monthly",
"source": { "type": "seat_tier", "seat_tier": "enterprise_standard" },
"spend_limit_id": "spl_01XyZaBcDeFgHiJkLmNoPq",
"period_to_date_spend": "31402.5"
}
],
"next_page": "page_..."
}
Validations
Condition | Statut | Message |
Entrée | 400 |
|
| 400 |
|
| 400 |
|
Curseur | 400 |
|
| 400 |
|
| 400 |
|
L'organisation n'est pas sur un plan Entreprise | 400 |
|
Facturation par crédit d'utilisation non activée | 400 |
|
2. Obtenir une limite de dépenses
GET /v1/organizations/spend_limits/{spend_limit_id}
Retourne une limite de dépenses unique par ID. Utilisez ceci pour inspecter la ligne qu'une SpendSummary.spend_limit_id ou une réponse POST référencée.
Nécessite la portée : read:spend_limits.
Paramètres de chemin
Champ | Type | Description |
| chaîne | Préfixé |
Réponse
Un objet SpendLimit.
Exemple de requête
curl "https://api.anthropic.com/v1/organizations/spend_limits/spl_01AbCdEfGhIjKlMnOpQrSt" \
-H "x-api-key: $ANTHROPIC_ADMIN_KEY"
Validations
Condition | Statut | Message |
| 404 |
|
L'organisation n'est pas sur un plan Entreprise | 400 |
|
Facturation par crédit d'utilisation non activée | 400 |
|
3. Définir une limite de dépenses
POST /v1/organizations/spend_limits
Définit un remplacement de limite de dépenses par utilisateur. Upsert : définir une limite pour un utilisateur qui en a déjà une la remplace sur place.
Seul scope.type: "user" est accepté. Les valeurs par défaut au niveau du siège, du groupe et de l'organisation sont configurées dans les paramètres claude.ai.
Définir une limite de dépenses directement ne fait pas passer la demande d'augmentation en attente d'un membre. Utilisez le point de terminaison d'approbation pour résoudre une demande.
Nécessite la portée : write:spend_limits.
Corps de la requête
Champ | Type | Requis | Description |
| objet | Oui |
|
| chaîne ou null | Oui | Nouvelle limite pour la |
| chaîne | Non | Par défaut |
Réponse
Un objet SpendLimit reflétant le remplacement écrit.
Exemple de requête
curl -X POST "https://api.anthropic.com/v1/organizations/spend_limits" \
-H "x-api-key: $ANTHROPIC_ADMIN_KEY" \
-H "content-type: application/json" \
-d '{"scope": {"type": "user", "user_id": "user_01AbCdEfGh"}, "amount": "75000"}'
Exemple de réponse
{
"type": "spend_limit",
"id": "spl_01RsTuVwXyZaBcDeFgHiJk",
"created_at": "2026-05-11T10:02:44Z",
"updated_at": "2026-05-11T10:02:44Z",
"scope": { "type": "user", "user_id": "user_01AbCdEfGh" },
"amount": "75000",
"currency": "USD",
"period": "monthly"
}
Validations
Condition | Statut | Message |
| 400 |
|
| 400 |
|
| 400 |
|
| 400 |
|
| 400 |
|
L'organisation n'est pas sur un plan Enterprise | 400 |
|
Facturation du crédit d'utilisation non activée | 400 |
|
4. Supprimer une limite de dépenses
DELETE /v1/organizations/spend_limits/{spend_limit_id}
Supprime un remplacement par utilisateur afin que le membre revienne à la limite héritée (niveau de siège, groupe ou défaut de l'organisation). Les lignes au niveau du siège, du groupe et de l'organisation ne peuvent pas être supprimées via ce point de terminaison.
Nécessite la portée : write:spend_limits.
Paramètres de chemin
Champ | Type | Description |
| chaîne | Préfixé |
Réponse
{ "type": "spend_limit_deleted", "id": "spl_01RsTuVwXyZaBcDeFgHiJk" }
Exemple de demande
curl -X DELETE "https://api.anthropic.com/v1/organizations/spend_limits/spl_01RsTuVwXyZaBcDeFgHiJk" \
-H "x-api-key: $ANTHROPIC_ADMIN_KEY"
Validations
Condition | Statut | Message |
| 404 |
|
| 400 |
|
L'organisation n'est pas sur un plan Entreprise | 400 |
|
Facturation des crédits d'utilisation non activée | 400 |
|
Demandes d'augmentation de limite de dépenses
5. Lister les demandes d'augmentation
GET /v1/organizations/spend_limit_increase_requests
Liste les demandes d'augmentation, les plus récentes en premier. Les demandes dont le demandeur n'est plus membre de l'organisation sont exclues.
Portée requise : read:spend_limits.
Paramètres de requête
Champ | Type | Requis | Par défaut | Description |
| un ou plusieurs de | Non | tous | Filtrer par statut. Répétez le paramètre pour plusieurs valeurs. |
| chaîne | Non | tous | Filtrer par demandeur. Accepte les ID |
| entier 1–1000 | Non | 20 | Lignes par page. |
| chaîne de curseur opaque | Non | — | La valeur |
Champs de réponse
Champ | Type | Description |
| tableau de SpendLimitIncreaseRequest | Trié par |
| chaîne ou null | Curseur opaque pour la page suivante ; |
Exemple de requête
curl "https://api.anthropic.com/v1/organizations/spend_limit_increase_requests?status[]=pending&limit=50" \
-H "x-api-key: $ANTHROPIC_ADMIN_KEY"
Exemple de réponse
{
"data": [
{
"type": "spend_limit_increase_request",
"id": "slir_01AbCdEfGhIjKlMnOpQrSt",
"created_at": "2026-05-04T16:22:09Z",
"status": "pending",
"resolved_at": null,
"resolved_by": null,
"actor": {
"type": "user_actor",
"user_id": "user_01AbCdEfGh",
"name": "Jane Smith",
"email_address": "[email protected]"
},
"spend_summary": {
"scope": { "type": "user", "user_id": "user_01AbCdEfGh" },
"amount": "50000",
"currency": "USD",
"period": "monthly",
"source": { "type": "seat_tier", "seat_tier": "enterprise_standard" },
"spend_limit_id": "spl_01XyZaBcDeFgHiJkLmNoPq",
"period_to_date_spend": "48900"
}
}
],
"next_page": null
}
Validations
Condition | Statut | Message |
| 400 |
|
| 400 |
|
| 400 |
|
| 400 |
|
| 400 |
|
L'organisation n'est pas sur un plan Entreprise | 400 |
|
Facturation des crédits d'utilisation non activée | 400 |
|
6. Obtenir une demande d'augmentation
GET /v1/organizations/spend_limit_increase_requests/{spend_limit_increase_request_id}
Retourne une seule demande d'augmentation.
Nécessite la portée : read:spend_limits.
Paramètres de chemin
Champ | Type | Description |
| chaîne | Préfixé |
Réponse
Un objet SpendLimitIncreaseRequest.
Exemple de requête
curl "https://api.anthropic.com/v1/organizations/spend_limit_increase_requests/slir_01AbCdEfGhIjKlMnOpQrSt" \
-H "x-api-key: $ANTHROPIC_ADMIN_KEY"
Validations
Condition | Statut | Message |
Demande non trouvée dans cette organisation | 404 |
|
Le demandeur n'est plus membre de cette organisation | 404 |
|
L'organisation n'est pas sur un plan Enterprise | 400 |
|
Facturation par crédit d'utilisation non activée | 400 |
|
7. Approuver une demande d'augmentation
POST /v1/organizations/spend_limit_increase_requests/{spend_limit_increase_request_id}/approve
Approuve une demande en attente. Écrit une limite de dépenses par utilisateur à amount pour le demandeur et fait passer la demande à approved. Si la demande ne comporte pas de montant demandé, l'administrateur fournit la nouvelle limite lors de l'approbation.
Nécessite l'étendue : write:spend_limits.
Paramètres de chemin
Champ | Type | Description |
| chaîne | Préfixé |
Corps de la demande
Champ | Type | Requis | Par défaut | Description |
| chaîne | Oui | — | Nouvelle limite par utilisateur pour la |
| chaîne | Non |
| Voir la section "Période". |
| booléen | Non |
| Si |
Réponse
Le SpendLimitIncreaseRequest avec le statut approved, avec un champ spend_limit supplémentaire contenant le SpendLimit qui a été écrit.
Exemple de demande
curl -X POST "https://api.anthropic.com/v1/organizations/spend_limit_increase_requests/slir_01AbCdEfGhIjKlMnOpQrSt/approve" \
-H "x-api-key: $ANTHROPIC_ADMIN_KEY" \
-H "content-type: application/json" \
-d '{"amount": "75000", "suppress_notification": true}'
Exemple de réponse
{
"type": "spend_limit_increase_request",
"id": "slir_01AbCdEfGhIjKlMnOpQrSt",
"created_at": "2026-05-04T16:22:09Z",
"status": "approved",
"resolved_at": "2026-05-11T10:05:02Z",
"resolved_by": {
"type": "scoped_api_key_actor",
"scoped_api_key_id": "apikey_01ZyXwVuTsRqPoNmLkJiHg"
},
"actor": {
"type": "user_actor",
"user_id": "user_01AbCdEfGh",
"name": "Jane Smith",
"email_address": "[email protected]"
},
"spend_summary": null,
"spend_limit": {
"type": "spend_limit",
"id": "spl_01RsTuVwXyZaBcDeFgHiJk",
"created_at": "2026-05-11T10:05:02Z",
"updated_at": "2026-05-11T10:05:02Z",
"scope": { "type": "user", "user_id": "user_01AbCdEfGh" },
"amount": "75000",
"currency": "USD",
"period": "monthly"
}
}
Validations
Condition | Statut | Message |
Demande introuvable dans cette organisation | 404 |
|
Le demandeur n'est plus membre de cette organisation | 404 |
|
Demande déjà | 400 |
|
| 400 |
|
| 400 |
|
L'organisation n'est pas sur un plan Entreprise | 400 |
|
Facturation des crédits d'utilisation non activée | 400 |
|
8. Refuser une demande d'augmentation
POST /v1/organizations/spend_limit_increase_requests/{spend_limit_increase_request_id}/deny
Refuse une demande en attente. Idempotent sur refusée : refuser une demande déjà refusée retourne 200 avec la ressource existante. Refuser une demande déjà approuvée est rejetée pour que l'automatisation puisse distinguer une nouvelle tentative d'une décision conflictuelle.
Nécessite la portée : write:spend_limits.
Paramètres de chemin
Champ | Type | Description |
| chaîne | Préfixé |
Corps de la demande
Champ | Type | Requis | Défaut | Description |
| booléen | Non |
| Si |
Réponse
Une SpendLimitIncreaseRequest avec le statut refusé.
Exemple de demande
curl -X POST "https://api.anthropic.com/v1/organizations/spend_limit_increase_requests/slir_01AbCdEfGhIjKlMnOpQrSt/deny" \
-H "x-api-key: $ANTHROPIC_ADMIN_KEY" \
-H "content-type: application/json" \
-d '{"suppress_notification": true}'
Validations
Condition | Statut | Message |
Demande non trouvée dans cette organisation | 404 |
|
Le demandeur n'est plus membre de cette organisation | 404 |
|
Demande déjà | 400 |
|
Demande déjà | — (200, idempotent) |
|
L'organisation n'est pas sur un plan Enterprise | 400 |
|
Crédits d'utilisation non activés | 400 |
|
