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 for an organization

Gets all budgets for an organization. The authenticated user must be an organization admin or billing manager. Each page returns up to 100 budgets.

Jetons d'accès granulaires pour «Get all budgets for an organization»

Ce point de terminaison fonctionne avec les types de tokens à granularité fine suivants:

Le token à granularité fine doit disposer de l’ensemble d’autorisations suivant:

  • "Administration" organization permissions (read)

Paramètres pour «Get all budgets for an organization »

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
org string Requis

The organization name. The name is not case sensitive.

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

The page number of the 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 for an organization »

Code de statutDescription
200

Response when getting all budgets

403

Forbidden

404

Resource not found

500

Internal Error

Exemples de code pour «Get all budgets for an organization »

Exemples de requête

get/organizations/{org}/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/organizations/ORG/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 for an organization

Creates a new budget for an organization. The authenticated user must be an organization admin or billing manager.

Jetons d'accès granulaires pour «Create a budget for an organization»

Ce point de terminaison fonctionne avec les types de tokens à granularité fine suivants:

Le token à granularité fine doit disposer de l’ensemble d’autorisations suivant:

  • "Administration" organization permissions (write)

Paramètres pour «Create a budget for an organization »

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
org string Requis

The organization name. The name is not case sensitive.

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 user and multi_user_customer scopes, this must be 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 for this organization. Use 'organization' for org-level budgets or 'repository' for repo-specific budgets within the organization. user and multi_user_customer scopes are only supported when budget_product_sku is ai_credits or premium_requests.

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

budget_entity_name string

The name of the entity to apply the budget to

Par défaut: ""

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. This field is required when budget_scope is user.

Codes d’état de réponse HTTP pour «Create a budget for an organization »

Code de statutDescription
200

Budget created successfully

400

Bad Request

401

Requires authentication

403

Insufficient permissions

404

Feature not enabled or organization not found

422

Validation failed, or the endpoint has been spammed.

500

Internal server error

Exemples de code pour «Create a budget for an organization »

Exemple de requête

post/organizations/{org}/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/organizations/ORG/settings/billing/budgets \ -d '{"budget_amount":500,"prevent_further_usage":true,"budget_scope":"organization","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 for an organization

Gets a budget by ID. The authenticated user must be an organization admin or billing manager.

Jetons d'accès granulaires pour «Get a budget by ID for an organization»

Ce point de terminaison fonctionne avec les types de tokens à granularité fine suivants:

Le token à granularité fine doit disposer de l’ensemble d’autorisations suivant:

  • "Administration" organization permissions (read)

Paramètres pour «Get a budget by ID for an organization »

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
org string Requis

The organization name. The name is not case sensitive.

budget_id string Requis

The ID corresponding to the budget.

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

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 for an organization »

Exemple de requête

get/organizations/{org}/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/organizations/ORG/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 for an organization

Updates an existing budget for an organization. The authenticated user must be an organization admin or billing manager.

Jetons d'accès granulaires pour «Update a budget for an organization»

Ce point de terminaison fonctionne avec les types de tokens à granularité fine suivants:

Le token à granularité fine doit disposer de l’ensemble d’autorisations suivant:

  • "Administration" organization permissions (write)

Paramètres pour «Update a budget for an organization »

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
org string Requis

The organization name. The name is not case sensitive.

budget_id string Requis

The ID corresponding to 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 for an organization »

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

Exemples de code pour «Update a budget for an organization »

Exemple de requête

patch/organizations/{org}/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/organizations/ORG/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 for an organization

Deletes a budget by ID for an organization. The authenticated user must be an organization admin or billing manager.

Jetons d'accès granulaires pour «Delete a budget for an organization»

Ce point de terminaison fonctionne avec les types de tokens à granularité fine suivants:

Le token à granularité fine doit disposer de l’ensemble d’autorisations suivant:

  • "Administration" organization permissions (write)

Paramètres pour «Delete a budget for an organization »

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
org string Requis

The organization name. The name is not case sensitive.

budget_id string Requis

The ID corresponding to the budget.

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

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 for an organization »

Exemple de requête

delete/organizations/{org}/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/organizations/ORG/settings/billing/budgets/BUDGET_ID

Response when deleting a budget

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