GET https://api.ap1.datadoghq.com/api/v2/cost/budget/{budget_id}https://api.ap2.datadoghq.com/api/v2/cost/budget/{budget_id}https://api.datadoghq.eu/api/v2/cost/budget/{budget_id}https://api.ddog-gov.com/api/v2/cost/budget/{budget_id}https://api.us2.ddog-gov.com/api/v2/cost/budget/{budget_id}https://api.uk1.datadoghq.com/api/v2/cost/budget/{budget_id}https://api.datadoghq.com/api/v2/cost/budget/{budget_id}https://api.us3.datadoghq.com/api/v2/cost/budget/{budget_id}https://api.us5.datadoghq.com/api/v2/cost/budget/{budget_id}

概要

Get a budget by ID. Pass actual=true or forecast=true to include cost data in the response. Use start and end (millisecond epochs, both required) to set the cost window. When forecast=true, each entry also includes ootb_forecast (the ML forecast before overrides) and custom_forecast (null if no override is set, a number if one is).

引数

パスパラメーター

名前

種類

説明

budget_id [required]

string

Budget id.

クエリ文字列

名前

種類

説明

actual

boolean

When true, includes actual cost data in the response.

forecast

boolean

When true, includes forecast cost data in the response, including ootb_forecast and custom_forecast per entry.

start

integer

Start of the cost window in milliseconds since epoch. Must be used together with end.

end

integer

End of the cost window in milliseconds since epoch. Must be used together with start.

応答

OK

The definition of the BudgetWithEntries object.

Expand All

フィールド

種類

説明

data

object

A budget and all its entries.

attributes

object

The attributes of a budget.

costs

object

Aggregated cost data for the budget. Present only when actual=true or forecast=true is requested.

actual

double

The total actual cost. Present only when actual=true is requested.

amount

double

The total budgeted amount over the requested period.

forecast

double

The total forecast cost, with any custom forecast overrides applied. Present only when forecast=true is requested.

ootb_forecast

double

The out-of-the-box ML forecast before custom overrides. Present only when forecast=true is requested.

costs_period_end

int64

The end of the period used to compute cost data, in milliseconds since epoch.

costs_period_start

int64

The start of the period used to compute cost data, in milliseconds since epoch.

costs_unit

object

The unit used for all cost values in the response.

family

string

The unit family (for example, currency).

id

string

The unique identifier for the unit.

name

string

The full name of the unit.

plural

string

The plural form of the unit name.

scale_factor

double

The scale factor applied to raw cost values.

short_name

string

The abbreviated unit name.

created_at

int64

The timestamp when the budget was created.

created_by

string

The id of the user that created the budget.

end_month

int64

The month when the budget ends.

entries

[object]

The list of monthly budget entries.

amount

double

The budgeted amount for this entry.

costs

object

Cost data for this entry. Present only when actual=true or forecast=true is requested.

actual

double

The actual cost for this entry. Present only when actual=true is requested.

amount

double

The budgeted amount for this entry.

custom_forecast

double

The custom forecast override for this entry. null when forecast=true is requested but no custom forecast has been set for this entry's month. A numeric value, including 0, indicates an explicit custom forecast override. Omitted when forecast=false or the feature is not available for the organization.

forecast

double

The final forecast for this entry, with any custom forecast override applied. Present only when forecast=true is requested.

ootb_forecast

double

The out-of-the-box ML forecast for this entry, before custom overrides. Present only when forecast=true is requested.

month

int64

The month this budget entry applies to, in YYYYMM format.

tag_filters

[object]

The list of tag filters that scope this budget entry to specific resources.

tag_key

string

The tag key to filter on.

tag_value

string

The tag value to filter on.

metrics_query

string

The cost query used to track against the budget.

name

string

The name of the budget.

org_id

int64

The id of the org the budget belongs to.

start_month

int64

The month when the budget starts.

total_amount

double

The sum of all budget entries' amounts.

updated_at

int64

The timestamp when the budget was last updated.

updated_by

string

The id of the user that created the budget.

id

string

The BudgetWithEntriesData id.

type

string

The type of the object, must be budget.

{
  "data": {
    "attributes": {
      "costs": {
        "actual": "number",
        "amount": "number",
        "forecast": "number",
        "ootb_forecast": "number"
      },
      "costs_period_end": "integer",
      "costs_period_start": "integer",
      "costs_unit": {
        "family": "string",
        "id": "string",
        "name": "string",
        "plural": "string",
        "scale_factor": "number",
        "short_name": "string"
      },
      "created_at": 1738258683590,
      "created_by": "00000000-0a0a-0a0a-aaa0-00000000000a",
      "end_month": 202502,
      "entries": [
        {
          "amount": "number",
          "costs": {
            "actual": "number",
            "amount": "number",
            "custom_forecast": "number",
            "forecast": "number",
            "ootb_forecast": "number"
          },
          "month": "integer",
          "tag_filters": [
            {
              "tag_key": "string",
              "tag_value": "string"
            }
          ]
        }
      ],
      "metrics_query": "aws.cost.amortized{service:ec2} by {service}",
      "name": "my budget",
      "org_id": 123,
      "start_month": 202501,
      "total_amount": 1000,
      "updated_at": 1738258683590,
      "updated_by": "00000000-0a0a-0a0a-aaa0-00000000000a"
    },
    "id": "00000000-0a0a-0a0a-aaa0-00000000000a",
    "type": ""
  }
}

Bad Request

API error response.

Expand All

フィールド

種類

説明

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Not Found

API error response.

Expand All

フィールド

種類

説明

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Too many requests

API error response.

Expand All

フィールド

種類

説明

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

コード例

                  # Path parameters
export budget_id="CHANGE_ME"
# Curl command
curl -X GET "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/cost/budget/${budget_id}" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
"""
Get budget returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.cloud_cost_management_api import CloudCostManagementApi

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = CloudCostManagementApi(api_client)
    response = api_instance.get_budget(
        budget_id="budget_id",
    )

    print(response)

Instructions

First install the library and its dependencies and then save the example to example.py and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
# Get budget returns "OK" response

require "datadog_api_client"
api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
p api_instance.get_budget("budget_id")

Instructions

First install the library and its dependencies and then save the example to example.rb and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
// Get budget returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)

func main() {
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewCloudCostManagementApi(apiClient)
	resp, r, err := api.GetBudget(ctx, "budget_id", *datadogV2.NewGetBudgetOptionalParameters())

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `CloudCostManagementApi.GetBudget`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `CloudCostManagementApi.GetBudget`:\n%s\n", responseContent)
}

Instructions

First install the library and its dependencies and then save the example to main.go and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
// Get budget returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.CloudCostManagementApi;
import com.datadog.api.client.v2.model.BudgetWithEntries;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);

    try {
      BudgetWithEntries result = apiInstance.getBudget("budget_id");
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling CloudCostManagementApi#getBudget");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Instructions

First install the library and its dependencies and then save the example to Example.java and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
// Get budget returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_cloud_cost_management::CloudCostManagementAPI;
use datadog_api_client::datadogV2::api_cloud_cost_management::GetBudgetOptionalParams;

#[tokio::main]
async fn main() {
    let configuration = datadog::Configuration::new();
    let api = CloudCostManagementAPI::with_config(configuration);
    let resp = api
        .get_budget("budget_id".to_string(), GetBudgetOptionalParams::default())
        .await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}

Instructions

First install the library and its dependencies and then save the example to src/main.rs and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
 * Get budget returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
const apiInstance = new v2.CloudCostManagementApi(configuration);

const params: v2.CloudCostManagementApiGetBudgetRequest = {
  budgetId: "budget_id",
};

apiInstance
  .getBudget(params)
  .then((data: v2.BudgetWithEntries) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));

Instructions

First install the library and its dependencies and then save the example to example.ts and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"