---
title: 월별 Cost Attribution 확인하기
description: 멀티 조직 및 단일 루트 조직 계정 전반에 걸쳐 태그별 월간 Cost Attribution을 가져옵니다. 지정된 월의 Cost Attribution 데이터는 다음 달 19일까지 사용할 수 있습니다. 이 API 엔드포인트는 페이지 지정을 지원합니다. 모든 레코드를 수신하도록…
breadcrumbs: 문서 > API > 월별 Cost Attribution 확인하기
---

> For the complete documentation index, see [llms.txt](https://dnd37xeb23o8n.cloudfront.net/stefon.simmons/docs-astro-web-10435/llms.txt).

# 월별 Cost Attribution 확인하기

## v2 (latest)

| Datadog site      | API endpoint                                                                  |
| ----------------- | ----------------------------------------------------------------------------- |
| app.datadoghq.com | GET https://api.datadoghq.com/api/v2/cost_by_tag/monthly_cost_attribution     |
| us3.datadoghq.com | GET https://api.us3.datadoghq.com/api/v2/cost_by_tag/monthly_cost_attribution |
| us5.datadoghq.com | GET https://api.us5.datadoghq.com/api/v2/cost_by_tag/monthly_cost_attribution |
| app.datadoghq.eu  | GET https://api.datadoghq.eu/api/v2/cost_by_tag/monthly_cost_attribution      |
| ap1.datadoghq.com | GET https://api.ap1.datadoghq.com/api/v2/cost_by_tag/monthly_cost_attribution |
| ap2.datadoghq.com | GET https://api.ap2.datadoghq.com/api/v2/cost_by_tag/monthly_cost_attribution |
| uk1.datadoghq.com | GET https://api.uk1.datadoghq.com/api/v2/cost_by_tag/monthly_cost_attribution |
| app.ddog-gov.com  | GET https://api.ddog-gov.com/api/v2/cost_by_tag/monthly_cost_attribution      |
| us2.ddog-gov.com  | GET https://api.us2.ddog-gov.com/api/v2/cost_by_tag/monthly_cost_attribution  |

### Overview

멀티 조직 및 단일 루트 조직 계정 전반에 걸쳐 태그별 월간 Cost Attribution을 가져옵니다.
지정된 월의 Cost Attribution 데이터는 다음 달 19일까지 사용할 수 있습니다.
이 API 엔드포인트는 페이지 지정을 지원합니다. 모든 레코드를 수신하도록 `next_record_id` 값이
응답에 설정되어 있는지 검사하세요. 해당 값이 설정되어 있다면 다른 요청을 수행하고 `next_record_id`를 파라미터로 전달하세요.
의사 코드 예시:

```
response := GetMonthlyCostAttribution(start_month, end_month)
cursor := response.metadata.pagination.next_record_id
WHILE cursor != null BEGIN
  sleep(5 seconds)  # 속도 제한에 걸리지 않도록 방지
  response := GetMonthlyCostAttribution(start_month, end_month, next_record_id=cursor)
  cursor := response.metadata.pagination.next_record_id
END
```

이 엔드포인트는 [상위 수준 조직](https://docs.datadoghq.com/account_management/multi_organization.md)에서만 액세스할 수 있습니다. 이 엔드포인트는 Government(US1-FED) 사이트에서는 사용할 수 없습니다.

This endpoint requires all of the following permissions:

- `usage_read`
- `billing_read`

OAuth apps require the `usage_read`, `billing_read` authorization [scope](https://dnd37xeb23o8n.cloudfront.net/stefon.simmons/docs-astro-web-10435/ko/api/latest/scopes.md#usage-metering) to access this endpoint.

### Arguments

#### Query Strings

| Field                    | Type    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| ------------------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| start_month [*required*] | string  | Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning in this month.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| end_month                | string  | Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| fields [*required*]      | string  | Comma-separated list specifying cost types (e.g., `<billing_dimension>_on_demand_cost`, `<billing_dimension>_committed_cost`, `<billing_dimension>_total_cost`) and the proportions (`<billing_dimension>_percentage_in_org`, `<billing_dimension>_percentage_in_account`). Use `*` to retrieve all fields. Example: `infra_host_on_demand_cost,infra_host_percentage_in_account` To obtain the complete list of active billing dimensions that can be used to replace `<billing_dimension>` in the field names, make a request to the [Get active billing dimensions API](https://docs.datadoghq.com/api/latest/usage-metering.md#get-active-billing-dimensions-for-cost-attribution). |
| sort_direction           | enum    | The direction to sort by: `[desc, asc]`. Allowed enum values: `desc`, `asc`. Default: `desc`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| sort_name                | string  | The billing dimension to sort by. Always sorted by total cost. Example: `infra_host`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| tag_breakdown_keys       | string  | Comma separated list of tag keys used to group cost. If no value is provided the cost will not be broken down by tags. To see which tags are available, look for the value of `tag_config_source` in the API response.                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| next_record_id           | string  | List following results with a next_record_id provided in the previous query.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| include_descendants      | boolean | Include child org cost in the response. Defaults to `true`. Default: `true`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |

### Response

{% tabs %}
{% tab label="200" %}
OK

{% tabs %}
{% tab label="Model" %}
Response containing the monthly cost attribution by tag(s).

| Parent field         | Field             | Type      | Description                                                                                                                                                                                                                                                                                                                                    |
| -------------------- | ----------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                      | data              | [object]  | Response containing cost attribution.                                                                                                                                                                                                                                                                                                          |
| data                 | attributes        | object    | Cost Attribution by Tag for a given organization.                                                                                                                                                                                                                                                                                              |
| attributes           | month             | date-time | Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]`.                                                                                                                                                                                                                                                                          |
| attributes           | org_name          | string    | The name of the organization.                                                                                                                                                                                                                                                                                                                  |
| attributes           | public_id         | string    | The organization public ID.                                                                                                                                                                                                                                                                                                                    |
| attributes           | tag_config_source | string    | The source of the cost attribution tag configuration and the selected tags in the format `<source_org_name>:::<selected tag 1>///<selected tag 2>///<selected tag 3>`.                                                                                                                                                                         |
| attributes           | tags              | object    | Tag keys and values. A `null` value here means that the requested tag breakdown cannot be applied because it does not match the [tags configured for usage attribution](https://docs.datadoghq.com/account_management/billing/usage_attribution.md#getting-started). In this scenario the API returns the total cost, not broken down by tags. |
| additionalProperties | <any-key>         | [string]  | A list of values that are associated with each tag key. - An empty list means the resource use wasn't tagged with the respective tag. - Multiple values means the respective tag was applied multiple times on the resource. - An `<empty>` value means the resource was tagged with the respective tag but did not have a value.              |
| attributes           | updated_at        | string    | Shows the most recent hour in the current months for all organizations for which all costs were calculated.                                                                                                                                                                                                                                    |
| attributes           | values            | object    | Fields in Cost Attribution by tag(s). Example: `infra_host_on_demand_cost`, `infra_host_committed_cost`, `infra_host_total_cost`, `infra_host_percentage_in_org`, `infra_host_percentage_in_account`.                                                                                                                                          |
| data                 | id                | string    | Unique ID of the response.                                                                                                                                                                                                                                                                                                                     |
| data                 | type              | enum      | Type of cost attribution data. Allowed enum values: `cost_by_tag`. Default: `cost_by_tag`.                                                                                                                                                                                                                                                     |
|                      | meta              | object    | The object containing document metadata.                                                                                                                                                                                                                                                                                                       |
| meta                 | aggregates        | [object]  | An array of available aggregates.                                                                                                                                                                                                                                                                                                              |
| aggregates           | agg_type          | string    | The aggregate type.                                                                                                                                                                                                                                                                                                                            |
| aggregates           | field             | string    | The field.                                                                                                                                                                                                                                                                                                                                     |
| aggregates           | value             | double    | The value for a given field.                                                                                                                                                                                                                                                                                                                   |
| meta                 | pagination        | object    | The metadata for the current pagination.                                                                                                                                                                                                                                                                                                       |
| pagination           | next_record_id    | string    | The cursor to use to get the next results, if any. To make the next request, use the same parameters with the addition of the `next_record_id`.                                                                                                                                                                                                |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": [
    {
      "attributes": {
        "month": "2019-09-19T10:00:00.000Z",
        "org_name": "string",
        "public_id": "string",
        "tag_config_source": "string",
        "tags": {
          "<any-key>": [
            "datadog-integrations-lab"
          ]
        },
        "updated_at": "string",
        "values": {}
      },
      "id": "string",
      "type": "cost_by_tag"
    }
  ],
  "meta": {
    "aggregates": [
      {
        "agg_type": "sum",
        "field": "infra_host_committed_cost",
        "value": "number"
      }
    ],
    "pagination": {
      "next_record_id": "string"
    }
  }
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="400" %}
Bad Request

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="403" %}
Forbidden - User is not authorized

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="429" %}
Too many requests

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}
{% /tabs %}

### Code Example

{% tabs %}
{% tab label="Curl" %}
```bash
# Required query arguments
export start_month="CHANGE_ME"
export fields="CHANGE_ME"

# Set your Datadog site and credentials
export DD_SITE="datadoghq.com" # Or us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ap1.datadoghq.com, ap2.datadoghq.com, uk1.datadoghq.com, ddog-gov.com, us2.ddog-gov.com
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

curl -X GET "https://api.${DD_SITE}/api/v2/cost_by_tag/monthly_cost_attribution?start_month=${start_month}&fields=${fields}" \
-H "Accept: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}"
```
{% /tab %}

{% tab label="Go" %}
```go
// Get Monthly Cost Attribution returns "OK" response

package main

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

	"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())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewUsageMeteringApi(apiClient)
	resp, r, err := api.GetMonthlyCostAttribution(ctx, time.Now().AddDate(0, 0, -5), "infra_host_total_cost", *datadogV2.NewGetMonthlyCostAttributionOptionalParameters().WithEndMonth(time.Now().AddDate(0, 0, -3)))

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

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

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=go) and then save the example to `main.go` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
```
{% /tab %}

{% tab label="Java" %}
```java
// Get Monthly Cost Attribution returns "OK" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.UsageMeteringApi;
import com.datadog.api.client.v2.api.UsageMeteringApi.GetMonthlyCostAttributionOptionalParameters;
import com.datadog.api.client.v2.model.MonthlyCostAttributionResponse;
import java.time.OffsetDateTime;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    UsageMeteringApi apiInstance = new UsageMeteringApi(defaultClient);

    try {
      MonthlyCostAttributionResponse result =
          apiInstance.getMonthlyCostAttribution(
              OffsetDateTime.now().plusDays(-5),
              "infra_host_total_cost",
              new GetMonthlyCostAttributionOptionalParameters()
                  .endMonth(OffsetDateTime.now().plusDays(-3)));
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling UsageMeteringApi#getMonthlyCostAttribution");
      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](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=java) and then save the example to `Example.java` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
```
{% /tab %}

{% tab label="Python" %}
```python
"""
Get Monthly Cost Attribution returns "OK" response
"""

from datetime import datetime
from dateutil.relativedelta import relativedelta
from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.usage_metering_api import UsageMeteringApi

configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
    api_instance = UsageMeteringApi(api_client)
    response = api_instance.get_monthly_cost_attribution(
        start_month=(datetime.now() + relativedelta(days=-5)),
        end_month=(datetime.now() + relativedelta(days=-3)),
        fields="infra_host_total_cost",
    )

    print(response)
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=python) and then save the example to `example.py` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
```
{% /tab %}

{% tab label="Ruby" %}
```ruby
# Get Monthly Cost Attribution returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::UsageMeteringAPI.new
opts = {
  end_month: (Time.now + -3 * 86400),
}
p api_instance.get_monthly_cost_attribution((Time.now + -5 * 86400), "infra_host_total_cost", opts)
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=ruby) and then save the example to `example.rb` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"
```
{% /tab %}

{% tab label="Rust" %}
```rust
// Get Monthly Cost Attribution returns "OK" response
use chrono::{DateTime, Utc};
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_usage_metering::GetMonthlyCostAttributionOptionalParams;
use datadog_api_client::datadogV2::api_usage_metering::UsageMeteringAPI;

#[tokio::main]
async fn main() {
    let configuration = datadog::Configuration::new();
    let api = UsageMeteringAPI::with_config(configuration);
    let resp = api
        .get_monthly_cost_attribution(
            DateTime::parse_from_rfc3339("2021-11-06T11:11:11+00:00")
                .expect("Failed to parse datetime")
                .with_timezone(&Utc),
            "infra_host_total_cost".to_string(),
            GetMonthlyCostAttributionOptionalParams::default().end_month(
                DateTime::parse_from_rfc3339("2021-11-08T11:11:11+00:00")
                    .expect("Failed to parse datetime")
                    .with_timezone(&Utc),
            ),
        )
        .await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=rust) and then save the example to `src/main.rs` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
```
{% /tab %}

{% tab label="TypeScript" %}
```typescript
/**
 * Get Monthly Cost Attribution returns "OK" response
 */

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

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
const apiInstance = new v2.UsageMeteringApi(configuration);

const params: v2.UsageMeteringApiGetMonthlyCostAttributionRequest = {
  startMonth: new Date(new Date().getTime() + -5 * 86400 * 1000),
  endMonth: new Date(new Date().getTime() + -3 * 86400 * 1000),
  fields: "infra_host_total_cost",
};

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

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=typescript) and then save the example to `example.ts` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"
```
{% /tab %}
{% /tabs %}
