Skip to main content
L’API REST est maintenant versionnée. Pour plus d’informations, consultez « À propos des versions de l’API ».

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 »

En-têtes
Nom, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Paramètres de chemin d’accès
Nom, Type, Description
enterprise string Requis

The slug version of the enterprise name.

Paramètres de requête
Nom, Type, Description
page integer

The page number of results to fetch.

Par défaut: 1

per_page integer

The number of results per page (max 100).

Par défaut: 10

scope string

Filter budgets by scope type.

Peut être l'un des: enterprise, organization, repository, cost_center, multi_user_customer, user

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 statutDescription
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

get/enterprises/{enterprise}/settings/billing/budgets
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

Response 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 »

En-têtes
Nom, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Paramètres de chemin d’accès
Nom, Type, Description
enterprise string Requis

The slug version of the enterprise name.

Paramètres du corps
Nom, Type, Description
budget_amount integer Requis

The budget amount in whole dollars. For license-based products, this represents the number of licenses.

prevent_further_usage boolean Requis

Whether to prevent additional spending once the budget is exceeded. For user and multi_user_customer scopes, this must be true.

budget_alerting object Requis
Nom, Type, Description
will_alert boolean Requis

Whether alerts are enabled for this budget

alert_recipients array of strings Requis

Array of user login names who will receive alerts

budget_scope string Requis

The 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 Requis

The type of pricing model used by the budget. Determines how budget_product_sku is interpreted.

  • BundlePricing: Covers all AI credit SKUs. Set budget_product_sku to ai_credits.
  • ProductPricing: Covers all SKUs that belong to a product. Set budget_product_sku to a product such as actions or packages.
  • SkuPricing: Covers a single, specific SKU. Set budget_product_sku to a SKU such as actions_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 statutDescription
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

post/enterprises/{enterprise}/settings/billing/budgets
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 »

En-têtes
Nom, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Paramètres de chemin d’accès
Nom, Type, Description
enterprise string Requis

The slug version of the enterprise name.

budget_id string Requis

The ID corresponding to the budget.

Codes d’état de réponse HTTP pour «Get a budget by ID »

Code de statutDescription
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

get/enterprises/{enterprise}/settings/billing/budgets/{budget_id}
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_ID

Response 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 »

En-têtes
Nom, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Paramètres de chemin d’accès
Nom, Type, Description
enterprise string Requis

The slug version of the enterprise name

budget_id string Requis

The unique identifier of the budget

Paramètres du corps
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 user or multi_user_customer scope, this must remain true.

budget_alerting object
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. Set budget_product_sku to ai_credits.
  • ProductPricing: Covers all SKUs that belong to a product. Set budget_product_sku to a product such as actions or packages.
  • SkuPricing: Covers a single, specific SKU. Set budget_product_sku to a SKU such as actions_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 statutDescription
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

patch/enterprises/{enterprise}/settings/billing/budgets/{budget_id}
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 »

En-têtes
Nom, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Paramètres de chemin d’accès
Nom, Type, Description
enterprise string Requis

The slug version of the enterprise name.

budget_id string Requis

The ID corresponding to the budget.

Codes d’état de réponse HTTP pour «Delete a budget »

Code de statutDescription
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

delete/enterprises/{enterprise}/settings/billing/budgets/{budget_id}
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_ID

Response when deleting a budget

Status: 200
{ "message": "Budget successfully deleted.", "budget_id": "2c1feb79-3947-4dc8-a16e-80cbd732cc0b" }