External Costs API

External Costs can only be queried after you have configured at least one external service with Kubecost. You can learn how to integrate Datadog through this method in our External Costs doc.

External Costs API summary query

GET http://<your-kubecost-address>/model/customCost/timeseries

Samples costs of connected third party services

Path Parameters

NameTypeDescription

window*

String

Duration of time over which to query. Accepts multiple different formats of time (see this Using the window parameter section for more info).

aggregate

String

Field by which to aggregate the results. Accepts: zone, accountName, chargeCategory, description, resourceName, resourceType, providerId, usageUnit, domain, and costSource. Supports multi-aggregation using comma-separated lists. Example: aggregate=zone,description

accumulate

boolean

When set to false, this endpoint returns daily time series data vs cumulative data. Default value is false.

filter

String

Filter your results by any category which you can aggregate by, can support multiple filterable items in the same category in a comma-separated list. For example, to filter results by charge categories usage and billing, use filter=chargeCategory:usage,billing See our Filter Parameters doc for a complete explanation of how to use filters and what categories are supported.

{
    "code": 200,
    "data": {
        "window": {
            "start": "2024-04-07T00:00:00Z",
            "end": "2024-04-09T00:00:00Z"
        },
        "timeseries": [
            {
                "window": {
                    "start": "2024-04-07T00:00:00Z",
                    "end": "2024-04-07T01:00:00Z"
                },
                "totalBilledCost": 0,
                "totalListCost": 0,
                "customCosts": [
                    {
                        "id": "",
                        "zone": "",
                        "account_name": "",
                        "charge_category": "",
                        "description": "",
                        "resource_name": "",
                        "resource_type": "",
                        "provider_id": "",
                        "billedCost": 0,
                        "listCost": 0,
                        "list_unit_price": 0,
                        "usage_quantity": 0,
                        "usage_unit": "",
                        "domain": "datadog",
                        "cost_source": "observability",
                        "aggregate": "__unallocated__/__unallocated__/__unallocated__/__unallocated__/__unallocated__/__unallocated__/__unallocated__/__unallocated__/datadog/observability"
                    }
                ]
            },
        ],
    }

External Costs API total query

GET http://<your-kubecost-address>/model/customCost/total

Samples costs of connected third party services, but summarizes subwindows into singular window of total cost. Can be compared to /topline endpoint of other APIs.

Path Parameters

NameTypeDescription

window*

String

Duration of time over which to query. Accepts multiple different formats of time (see this Using the window parameter section for more info).

aggregate

String

Field by which to aggregate the results. Accepts: zone, accountName, chargeCategory, description, resourceName, resourceType, providerId, usageUnit, domain, and costSource. Supports multi-aggregation using comma-separated lists. Example: aggregate=zone,description

accumulate

boolean

When set to false, this endpoint returns daily time series data vs cumulative data. Default value is false.

filter

String

Filter your results by any category which you can aggregate by, can support multiple filterable items in the same category in a comma-separated list. For example, to filter results by charge categories usage and billing, use filter=chargeCategory:usage,billing See our Filter Parameters doc for a complete explanation of how to use filters and what categories are supported.

{
    "code": 200,
    "data": {
        "window": {
            "start": "2024-04-07T00:00:00Z",
            "end": "2024-04-09T00:00:00Z"
        },
        "totalBilledCost": 0,
        "totalListCost": 0,
        "customCosts": [
            {
                "id": "",
                "zone": "",
                "account_name": "",
                "charge_category": "",
                "description": "",
                "resource_name": "",
                "resource_type": "",
                "provider_id": "",
                "billedCost": 0,
                "listCost": 0,
                "list_unit_price": 0,
                "usage_quantity": 0,
                "usage_unit": "",
                "domain": "datadog",
                "cost_source": "observability",
                "aggregate": "__unallocated__/__unallocated__/__unallocated__/__unallocated__/__unallocated__/__unallocated__/__unallocated__/__unallocated__/datadog/observability"
            }
        ]
    }
}

Last updated