Budgets
Utilisez l’API REST pour obtenir des informations budgétaires.
Important
Le schéma du corps de la requête ci-dessous ne contient pas de champ obligatoire. Lorsque budget_scope est user, vous devez également inclure un champ user défini sur le nom d’utilisateur GitHub auquel le budget s’applique. Si vous omettez ce champ, l’API retourne HTTP 400: Missing required fields: budget_entity_name. Pour les budgets délimités par l’utilisateur, budget_entity_name il peut s’agir d’une chaîne vide.
L’exemple suivant crée un budget défini au niveau de l’utilisateur qui limite les CopilotAI credits d’un seul utilisateur à 30 USD par mois :
{
"budget_amount": 30,
"prevent_further_usage": true,
"budget_scope": "user",
"budget_entity_name": "",
"budget_type": "BundlePricing",
"budget_product_sku": "ai_credits",
"budget_alerting": {
"will_alert": false,
"alert_recipients": []
},
"user": "USERNAME"
}
Get all budgets
Gets all budgets for an enterprise. The authenticated user must be an enterprise admin or billing manager. Each page returns up to 100 budgets.
Jetons d'accès granulaires pour «Get all budgets»
Ce point de terminaison ne fonctionne pas avec des jetons d’accès utilisateur de l'application GitHub, les jetons d’accès d’installation de l'application GitHub, ou des jetons d’accès personnels affinés.
Paramètres pour «Get all budgets »
| Nom, Type, Description |
|---|
accept string Setting to |
| Nom, Type, Description |
|---|
enterprise string RequisThe slug version of the enterprise name. |
| Nom, Type, Description |
|---|
page integer The page number of results to fetch. Par défaut: |
per_page integer The number of results per page (max 100). Par défaut: |
scope string Filter budgets by scope type. Peut être l'un des: |
user string Filter consumed amount details for budgets by the specified user login. |
Codes d’état de réponse HTTP pour «Get all budgets »
| Code de statut | Description |
|---|---|
200 | Response when getting all budgets |
403 | Forbidden |
404 | Resource not found |
Exemples de code pour «Get all budgets »
Si vous accédez à GitHub à GHE.com, remplacez api.github.com par le sous-domaine dédié de votre entreprise à api.SUBDOMAIN.ghe.com.
Exemples de requête
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/enterprises/ENTERPRISE/settings/billing/budgetsResponse when getting all budgets
Status: 200{
"budgets": [
{
"id": "2066deda-923f-43f9-88d2-62395a28c0cdd",
"budget_type": "ProductPricing",
"budget_product_skus": [
"actions"
],
"budget_scope": "enterprise",
"budget_amount": 1000,
"prevent_further_usage": true,
"budget_alerting": {
"will_alert": true,
"alert_recipients": [
"enterprise-admin",
"billing-manager"
]
}
},
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"budget_type": "SkuPricing",
"budget_product_skus": [
"actions_linux"
],
"budget_scope": "organization",
"budget_amount": 500,
"prevent_further_usage": false,
"budget_alerting": {
"will_alert": true,
"alert_recipients": [
"org-owner"
]
}
},
{
"id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"budget_type": "ProductPricing",
"budget_product_skus": [
"packages"
],
"budget_scope": "cost_center",
"budget_amount": 250,
"prevent_further_usage": true,
"budget_alerting": {
"will_alert": false,
"alert_recipients": []
}
}
],
"has_next_page": false,
"total_count": 3
}Create a budget
Creates a new budget for an enterprise. The authenticated user must be an enterprise admin, organization admin, or billing manager of the enterprise.
Jetons d'accès granulaires pour «Create a budget»
Ce point de terminaison ne fonctionne pas avec des jetons d’accès utilisateur de l'application GitHub, les jetons d’accès d’installation de l'application GitHub, ou des jetons d’accès personnels affinés.
Paramètres pour «Create a budget »
| Nom, Type, Description |
|---|
accept string Setting to |
| Nom, Type, Description |
|---|
enterprise string RequisThe slug version of the enterprise name. |
| Nom, Type, Description | |||
|---|---|---|---|
budget_amount integer RequisThe budget amount in whole dollars. For license-based products, this represents the number of licenses. | |||
prevent_further_usage boolean RequisWhether to prevent additional spending once the budget is exceeded. For | |||
budget_alerting object Requis | |||
Properties of |
| Nom, Type, Description |
|---|
will_alert boolean RequisWhether alerts are enabled for this budget |
alert_recipients array of strings RequisArray of user login names who will receive alerts |
budget_scope string RequisThe scope of the budget. user and multi_user_customer scopes are only supported when budget_product_sku is ai_credits or premium_requests.
Peut être l'un des: enterprise, organization, repository, cost_center, multi_user_customer, user
budget_entity_name string The name of the entity to apply the budget to
Par défaut: ""
budget_type string RequisThe type of pricing model used by the budget. Determines how budget_product_sku is interpreted.
BundlePricing: Covers all AI credit SKUs. Setbudget_product_skutoai_credits.ProductPricing: Covers all SKUs that belong to a product. Setbudget_product_skuto a product such asactionsorpackages.SkuPricing: Covers a single, specific SKU. Setbudget_product_skuto a SKU such asactions_linux.
budget_product_sku string A single product or SKU that will be covered in the budget
user string The username of the user for user scope budgets. This field is required when budget_scope is user.
Codes d’état de réponse HTTP pour «Create a budget »
| Code de statut | Description |
|---|---|
200 | Budget created successfully |
400 | Bad Request |
401 | Requires authentication |
403 | Forbidden |
404 | Feature not enabled |
422 | Validation failed, or the endpoint has been spammed. |
500 | Internal server error |
Exemples de code pour «Create a budget »
Si vous accédez à GitHub à GHE.com, remplacez api.github.com par le sous-domaine dédié de votre entreprise à api.SUBDOMAIN.ghe.com.
Exemple de requête
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/enterprises/ENTERPRISE/settings/billing/budgets \
-d '{"budget_amount":200,"prevent_further_usage":true,"budget_scope":"enterprise","budget_entity_name":"","budget_type":"ProductPricing","budget_product_sku":"actions","budget_alerting":{"will_alert":false,"alert_recipients":[]}}'Budget created successfully
Status: 200{
"message": "Budget successfully created.",
"budget": {
"id": "f5236c62-157f-4d8f-a79e-ffb91058ee97",
"budget_type": "ProductPricing",
"budget_product_sku": "actions",
"budget_scope": "organization",
"budget_entity_name": "example-organization",
"budget_amount": 100,
"prevent_further_usage": true,
"budget_alerting": {
"will_alert": false,
"alert_recipients": []
}
}
}Get a budget by ID
Gets a budget by ID. The authenticated user must be an enterprise admin or billing manager.
Jetons d'accès granulaires pour «Get a budget by ID»
Ce point de terminaison ne fonctionne pas avec des jetons d’accès utilisateur de l'application GitHub, les jetons d’accès d’installation de l'application GitHub, ou des jetons d’accès personnels affinés.
Paramètres pour «Get a budget by ID »
| Nom, Type, Description |
|---|
accept string Setting to |
| Nom, Type, Description |
|---|
enterprise string RequisThe slug version of the enterprise name. |
budget_id string RequisThe ID corresponding to the budget. |
Codes d’état de réponse HTTP pour «Get a budget by ID »
| Code de statut | Description |
|---|---|
200 | Response when updating a budget |
400 | Bad Request |
403 | Forbidden |
404 | Resource not found |
500 | Internal Error |
503 | Service unavailable |
Exemples de code pour «Get a budget by ID »
Si vous accédez à GitHub à GHE.com, remplacez api.github.com par le sous-domaine dédié de votre entreprise à api.SUBDOMAIN.ghe.com.
Exemple de requête
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/enterprises/ENTERPRISE/settings/billing/budgets/BUDGET_IDResponse when updating a budget
Status: 200{
"id": "2066deda-923f-43f9-88d2-62395a28c0cdd",
"budget_type": "ProductPricing",
"budget_product_sku": "actions_linux",
"budget_scope": "repository",
"budget_entity_name": "example-repo-name",
"budget_amount": 0,
"prevent_further_usage": true,
"budget_alerting": {
"will_alert": true,
"alert_recipients": [
"mona",
"lisa"
]
}
}Update a budget
Updates an existing budget for an enterprise. The authenticated user must be an enterprise admin, organization admin, or billing manager of the enterprise.
Jetons d'accès granulaires pour «Update a budget»
Ce point de terminaison ne fonctionne pas avec des jetons d’accès utilisateur de l'application GitHub, les jetons d’accès d’installation de l'application GitHub, ou des jetons d’accès personnels affinés.
Paramètres pour «Update a budget »
| Nom, Type, Description |
|---|
accept string Setting to |
| Nom, Type, Description |
|---|
enterprise string RequisThe slug version of the enterprise name |
budget_id string RequisThe unique identifier of the budget |
| Nom, Type, Description | |||
|---|---|---|---|
budget_amount integer The budget amount in whole dollars. For license-based products, this represents the number of licenses. | |||
prevent_further_usage boolean Whether to prevent additional spending once the budget is exceeded. For budgets with | |||
budget_alerting object | |||
Properties of |
| Nom, Type, Description |
|---|
will_alert boolean Whether alerts are enabled for this budget |
alert_recipients array of strings Array of user login names who will receive alerts |
budget_scope string The scope of the budget
Peut être l'un des: enterprise, organization, repository, cost_center, multi_user_customer, user
budget_entity_name string The name of the entity to apply the budget to
budget_type string The type of pricing model used by the budget. Determines how budget_product_sku is interpreted.
BundlePricing: Covers all AI credit SKUs. Setbudget_product_skutoai_credits.ProductPricing: Covers all SKUs that belong to a product. Setbudget_product_skuto a product such asactionsorpackages.SkuPricing: Covers a single, specific SKU. Setbudget_product_skuto a SKU such asactions_linux.
budget_product_sku string A single product or SKU that will be covered in the budget
user string The username of the user for user scope budgets.
Codes d’état de réponse HTTP pour «Update a budget »
| Code de statut | Description |
|---|---|
200 | Budget updated successfully |
400 | Bad Request |
401 | Requires authentication |
403 | Forbidden |
404 | Budget not found or feature not enabled |
422 | Validation failed, or the endpoint has been spammed. |
500 | Internal server error |
503 | Service unavailable |
Exemples de code pour «Update a budget »
Si vous accédez à GitHub à GHE.com, remplacez api.github.com par le sous-domaine dédié de votre entreprise à api.SUBDOMAIN.ghe.com.
Exemple de requête
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/enterprises/ENTERPRISE/settings/billing/budgets/BUDGET_ID \
-d '{"prevent_further_usage":false,"budget_amount":10,"budget_alerting":{"will_alert":false,"alert_recipients":[]}}'Budget updated successfully
Status: 200{
"message": "Budget successfully updated.",
"budget": {
"id": "2066deda-923f-43f9-88d2-62395a28c0cdd",
"budget_type": "ProductPricing",
"budget_product_sku": "actions_linux",
"budget_scope": "repository",
"budget_entity_name": "org-name/example-repo-name",
"budget_amount": 10,
"prevent_further_usage": true,
"budget_alerting": {
"will_alert": true,
"alert_recipients": [
"mona",
"lisa"
]
}
}
}Delete a budget
Deletes a budget by ID. The authenticated user must be an enterprise admin.
Jetons d'accès granulaires pour «Delete a budget»
Ce point de terminaison ne fonctionne pas avec des jetons d’accès utilisateur de l'application GitHub, les jetons d’accès d’installation de l'application GitHub, ou des jetons d’accès personnels affinés.
Paramètres pour «Delete a budget »
| Nom, Type, Description |
|---|
accept string Setting to |
| Nom, Type, Description |
|---|
enterprise string RequisThe slug version of the enterprise name. |
budget_id string RequisThe ID corresponding to the budget. |
Codes d’état de réponse HTTP pour «Delete a budget »
| Code de statut | Description |
|---|---|
200 | Response when deleting a budget |
400 | Bad Request |
403 | Forbidden |
404 | Resource not found |
500 | Internal Error |
503 | Service unavailable |
Exemples de code pour «Delete a budget »
Si vous accédez à GitHub à GHE.com, remplacez api.github.com par le sous-domaine dédié de votre entreprise à api.SUBDOMAIN.ghe.com.
Exemple de requête
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/enterprises/ENTERPRISE/settings/billing/budgets/BUDGET_IDResponse when deleting a budget
Status: 200{
"message": "Budget successfully deleted.",
"budget_id": "2c1feb79-3947-4dc8-a16e-80cbd732cc0b"
}