---
title: "Create a budget"
method: POST
path: "/enterprises/{enterprise}/settings/billing/budgets"
tags: ["billing"]
---

# Create a budget

`POST /enterprises/{enterprise}/settings/billing/budgets`

Creates a new budget for an enterprise. Enterprise owners and billing managers can create budgets scoped to the enterprise, all users in the enterprise, or any organization in it. Organization administrators can create budgets for their organizations, and repository-scoped budgets require administration of the repository's owning organization. A custom role holder with fine-grained write access to enterprise billing can create budgets scoped to a single user or a cost center, including all users in a cost center, without an additional administrator role; the role requirements above still apply to the other scopes. An installation access token for a GitHub App installed on the enterprise with write access to enterprise billing can create budgets for any target in the enterprise.

## Path parameters

- `enterprise` string, required

## Request body

- object
  - `budget_amount` integer, required — The budget amount in whole dollars. For license-based products, this represents the number of licenses.
  - `prevent_further_usage` boolean, required — Whether to prevent additional spending once the budget is exceeded. For `user` and `multi_user_customer` scopes, this must be `true`.
  - `budget_alerting` object, required
    - `will_alert` boolean, required — Whether alerts are enabled for this budget. Rejected for user-scope as alerting is always disabled for them.
    - `alert_recipients` string[], required — Array of user login names who will receive alerts. Rejected for user-scope as alerting is always disabled for them.
  - `budget_scope` 'enterprise' | 'organization' | 'repository' | 'cost_center' | 'multi_user_customer' | 'multi_user_cost_center' | 'user', required — The scope of the budget. - `enterprise`: Apply the budget to the entire enterprise. - `organization`: Apply the budget to a specific organization in the enterprise. - `repository`: Apply the budget to a specific repository. - `cost_center`: Apply the budget to a specific cost center. - `multi_user_customer`: Apply a universal budget to all users in the enterprise. - `multi_user_cost_center`: Apply a universal budget to all users in a cost center. - `user`: Apply the budget to a single user. `user`, `multi_user_customer`, and `multi_user_cost_center` scopes are only supported when `budget_product_sku` is `ai_credits` or `premium_requests`.
  - `budget_entity_name` string — The name of the entity to apply the budget to
  - `budget_type` union, required — 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`.
    - 'BundlePricing'
    - 'ProductPricing'
    - 'SkuPricing'
  - `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`.

## Response `200`

Budget created successfully

- CreateBudget
  - `message` string, required — A message indicating the result of the create operation
  - `budget` object, required
    - `id` string — ID of the budget.
    - `budget_scope` 'enterprise' | 'organization' | 'repository' | 'cost_center' | 'multi_user_customer' | 'multi_user_cost_center' | 'user' — The type of scope for the budget
    - `budget_entity_name` string — The name of the entity to apply the budget to
    - `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
    - `budget_product_sku` string — A single product or sku to apply the budget to.
    - `budget_type` union — The type of pricing for the budget
      - 'ProductPricing'
      - 'SkuPricing'
    - `budget_alerting` object
      - `will_alert` boolean — Whether alerts are enabled for this budget. Rejected for user-scope as alerting is always disabled for them.
      - `alert_recipients` string[] — Array of user login names who will receive alerts. Rejected for user-scope as alerting is always disabled for them.

## Other responses

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

---

[API](https://skmtc.net/github/apis/enterprise-cloud.md) · [All operations](https://skmtc.net/github/apis/enterprise-cloud/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/github/enterprise-cloud/revisions/905703de9c0f/schema)
