---
title: "Retrieve a budget"
method: GET
path: "/analytics/v1/budgets/{id}"
tags: ["Budgets"]
---

# Retrieve a budget

`GET /analytics/v1/budgets/{id}`

Returns the current utilization and configuration of the specified budget.

## Path parameters

- `id` string, required

## Response `200`

OK - Budget details returned.

- BudgetAPI — Budget details and runtime metrics.
  - `alerts` ExternalBudgetAlert[] — List of up to three thresholds defined as a percentage of amount.
    - `forecastedDate` integer
    - `percentage` number, double
    - `triggered` boolean
  - `amount` number, double — Budget period amount required: true(if usePrevSpend is false)
  - `seasonalAmounts` number[] — List of seasonal amounts for recurring budgets with different amounts per period.
  - `collaborators` Collaborator[] — List of permitted users to view/edit the report.
    - `email` string
    - `role` 'owner' | 'editor' | 'viewer'
  - `createTime` integer — Creation time (in UNIX timestamp).
  - `currency` 'USD' | 'ILS' | 'EUR' | 'AUD' | 'CAD' | 'GBP' | 'DKK' | 'NOK' | 'SEK' | 'BRL' | 'SGD' | 'MXN' | 'CHF' | 'MYR' | 'TWD' | 'EGP' | 'ZAR' | 'JPY' | 'IDR' | 'AED' | 'THB' | 'COP', required — Currency code for monetary values.
  - `currentUtilization` number, double
  - `description` string — Budget description.
  - `endPeriod` integer — Fixed budget end date (in UNIX timestamp) required: true(if budget type is fixed)
  - `forecastedUtilization` number, double
  - `growthPerPeriod` number, double — Periodical growth percentage in recurring budgets.
  - `id` string — budget ID, identifying the report in:path
  - `metric` string — Budget metric - currently fixed to "cost"
  - `name` string, required — Budget Name
  - `public` 'owner' | 'editor' | 'viewer' — Public sharing access level for the budget.
  - `recipients` string[] — List of emails to notify when reaching alert threshold.
  - `recipientsSlackChannels` SlackChannel[] — List of Slack channels to notify when reaching alert threshold.
    - `customerId` string
    - `id` string
    - `name` string
    - `shared` boolean
    - `type` string
    - `workspace` string
  - `scope` string[] — List of allocations that defines the budget scope.
  - `scopes` ExternalConfigFilter[], required — The filters selected define the scope of the budget.
    - `id` string, required — Dimension key to filter on. Must pair with `type` and match a dimension returned by `GET /analytics/v1/dimensions` (for example, `service_description` with `type: fixed`). For `allocation_rule`, use `allocation_rule`. For `allocation`, use the allocation group ID. See `DimensionsTypes` for how each `type` uses `id`.
    - `type` 'datetime' | 'fixed' | 'optional' | 'label' | 'tag' | 'project_label' | 'system_label' | 'attribution' | 'attribution_group' | 'allocation' | 'allocation_rule' | 'gke' | 'gke_label', required — Dimension filter type. Always pair `type` with `id` on scope filters. Discover valid `id` + `type` pairs for your account with `GET /analytics/v1/dimensions`. `allocation_rule` replaces `attribution`; `allocation` replaces `attribution_group`.
    - `values` string[] — List of values to include or exclude. Must match exact strings from your billing or DataHub data for the dimension (for example, `Amazon Simple Storage Service` for AWS S3 on `service_description`). For `allocation_rule`, use allocation rule IDs.
    - `mode` 'is' | 'starts_with' | 'ends_with' | 'contains' | 'regexp' — Controls how the dimension’s `values` are matched when the alert query runs. If mode is omitted, behavior defaults to is.
    - `inverse` boolean — Set to `true` to exclude the set values. If inverse is omitted, behavior defaults to `false`.
    - `caseInsensitive` boolean — If true, string matching is case-insensitive. Effective only for starts_with, ends_with, and contains modes; ignored otherwise.
    - `includeNull` boolean — Include rows where the dimension is null. If includeNull is omitted, behavior defaults to `false`.
  - `startPeriod` integer, required — Budget start date (in UNIX timestamp).
  - `timeInterval` string, required — Recurring budget interval can be one of: ["day", "week", "month", "quarter" ,"year"]
  - `type` string, required — budget type can be one of: ["fixed", "recurring"]
  - `updateTime` integer — Update time (in UNIX timestamp).
  - `usePrevSpend` boolean — Use the last period's spend as the target amount for recurring budgets.

## Other responses

- `400` — Bad Request - The server cannot process the request, often due to a malformed request.
- `401` — Unauthorized - Invalid API key.
- `403` — Forbidden - The client is not authorized to perform the request.
- `404` — Not Found - The requested resource does not exist.

---

[API](https://skmtc.dev/doit/apis/doit-cloud-intelligence.md) · [All operations](https://skmtc.dev/doit/apis/doit-cloud-intelligence/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/doit/doit-cloud-intelligence/revisions/9416402fc119/schema)
