---
title: "Get a budget by ID"
method: GET
path: "/enterprises/{enterprise}/settings/billing/budgets/{budget_id}"
tags: ["billing"]
---

# Get a budget by ID

`GET /enterprises/{enterprise}/settings/billing/budgets/{budget_id}`

Gets a budget by ID. Enterprise owners and billing managers can view any budget in the enterprise, and organization administrators can view budgets scoped to organizations and repositories they administer. A custom role holder with fine-grained read access to enterprise billing can view the budget unless it is scoped to a repository; repository-scoped budgets require the organization administrator permissions described above. An installation access token for a GitHub App installed on the enterprise with read access to enterprise billing can get any budget in the enterprise.

## Path parameters

- `enterprise` string, required
- `budget_id` string, required

## Response `200`

Response when updating a budget

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

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `404` — Resource not found
- `500` — Internal Error
- `503` — Service unavailable

## Changes

- **2026-06-30** `783a30335135` — 1 warning
  - added the new `multi_user_cost_center` enum value to the `budget_scope` response property for the response status `200`
- **2026-06-03** `1c5f737292e2` — 2 warning, 1 info
  - added the new `multi_user_customer` enum value to the `budget_scope` response property for the response status `200`
  - added the new `user` enum value to the `budget_scope` response property for the response status `200`
  - added the optional property `user` to the response with the `200` status

[Change history](https://skmtc.dev/github/apis/enterprise-cloud/changes/enterprises/:enterprise/settings/billing/budgets/:budget_id/get.md)

---

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