Execute optimized cost query for dashboards
1 min
POST
https://app.amberflo.io/business-unit/usage-cost/query/sparse
Body Parameters
- bodybusiness_unit.usage_cost.BusinessUnitUsageCostQuery.in
- aggregationfocus.analytics.AggregationType.inrequiredDescription
- timeGroupingIntervalfocus.analytics.AggregationInterval.inDescription
- timeRangefocus.analytics.TimeRange.inrequiredDescription
- startTimeInSecondsinteger<int64>Description
- endTimeInSecondsinteger<int64>Description
- filtermap<string, string[]>
- groupBystring[]
- pagefocus.analytics.PageSpec.inDescription
- numberinteger<int32>requiredDescription
- sizeinteger<int32>requiredDescription
- limitinteger<int32>
- sortfocus.analytics.SortSpec.inDescription
- isAscendingbooleanDescription
- sortBystring[]requiredDescription
- usageItemsstring[]requiredDescription
- summaryOnlybooleanDescription
- forecastfocus.analytics.ForecastOptions.inDescription
- startTimeInSecondsinteger<int64>Description
- endTimeInSecondsinteger<int64>requiredDescription
- subTotalBystring
Responses
200
- business_unit.usage_cost.BusinessUnitUsageCostQueryResult.out
- pageMetadatafocus.analytics.PageMetadata.outDescription
- pageNumberinteger<int32>Description
- pageSizeinteger<int32>Description
- totalPagesinteger<int32>Description
- totalRecordsinteger<int32>Description
- usageItemsstring[]
- analyticsfocus.analytics.AnalyticsTimeSeries.out[]Description
- groupfocus.analytics.AnalyticsGroupKey.outDescription
- amberfloDimensionsmap<string, string>Description
- dimensionsmap<string, string>Description
- groupValuesnumber[]Description
- valuesfocus.analytics.AnalyticsValues.out[]Description
- timeInSecondsinteger<int64>Description
- valuesnumber[]Description
- forecastValuesfocus.analytics.AnalyticsValues.out[]Description
- timeInSecondsinteger<int64>Description
- valuesnumber[]Description
- querybusiness_unit.usage_cost.BusinessUnitUsageCostQuery.out
- aggregationfocus.analytics.AggregationType.outrequiredDescription
- timeGroupingIntervalfocus.analytics.AggregationInterval.outDescription
- timeRangefocus.analytics.TimeRange.outrequiredDescription
- startTimeInSecondsinteger<int64>Description
- endTimeInSecondsinteger<int64>Description
- filtermap<string, string[]>
- groupBystring[]
- pagefocus.analytics.PageSpec.outDescription
- numberinteger<int32>requiredDescription
- sizeinteger<int32>requiredDescription
- limitinteger<int32>
- sortfocus.analytics.SortSpec.outDescription
- isAscendingbooleanDescription
- sortBystring[]requiredDescription
- usageItemsstring[]requiredDescription
- summaryOnlybooleanDescription
- forecastfocus.analytics.ForecastOptions.outDescription
- startTimeInSecondsinteger<int64>Description
- endTimeInSecondsinteger<int64>requiredDescription
- subTotalBystring
- totalsnumber[]
- subTotalsmap<string, number[]>
curl
curl --request POST \
--url https://app.amberflo.io/business-unit/usage-cost/query/sparse \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"aggregation": "",
"timeRange": {},
"page": {
"number": 0,
"size": 0
},
"sort": {
"sortBy": []
},
"usageItems": [],
"forecast": {
"endTimeInSeconds": 0
}
}'javascript
var myHeaders = new Headers();
myHeaders.append("accept", "application/json");
myHeaders.append("content-type", "application/json");
var raw = JSON.stringify({
"aggregation": "",
"timeRange": {},
"page": {
"number": 0,
"size": 0
},
"sort": {
"sortBy": []
},
"usageItems": [],
"forecast": {
"endTimeInSeconds": 0
}
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://app.amberflo.io/business-unit/usage-cost/query/sparse", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));ruby
require "uri"
require "json"
require "net/http"
url = URI("https://app.amberflo.io/business-unit/usage-cost/query/sparse")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["accept"] = "application/json"
request["content-type"] = "application/json"
request.body = JSON.dump({
"aggregation": "",
"timeRange": {},
"page": {
"number": 0,
"size": 0
},
"sort": {
"sortBy": []
},
"usageItems": [],
"forecast": {
"endTimeInSeconds": 0
}
})
response = https.request(request)
puts response.read_body
python
import requests
import json
url = "https://app.amberflo.io/business-unit/usage-cost/query/sparse"
payload = json.dumps({
"aggregation": "",
"timeRange": {},
"page": {
"number": 0,
"size": 0
},
"sort": {
"sortBy": []
},
"usageItems": [],
"forecast": {
"endTimeInSeconds": 0
}
})
headers = {
'accept': 'application/json',
'content-type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
200
// Successful request
{
"pageMetadata": {
"pageNumber": "",
"pageSize": "",
"totalPages": "",
"totalRecords": ""
},
"usageItems": [
""
],
"analytics": [
{
"group": {
"amberfloDimensions": "",
"dimensions": ""
},
"groupValues": [
0
],
"values": [
{
"timeInSeconds": "",
"values": [
0
]
}
],
"forecastValues": [
{
"timeInSeconds": "",
"values": [
0
]
}
]
}
],
"query": {
"aggregation": "",
"timeGroupingInterval": "",
"timeRange": {
"startTimeInSeconds": "",
"endTimeInSeconds": ""
},
"filter": "",
"groupBy": [
""
],
"page": {
"number": "",
"size": ""
},
"limit": "",
"sort": {
"isAscending": false,
"sortBy": [
""
]
},
"usageItems": [
""
],
"summaryOnly": false,
"forecast": {
"startTimeInSeconds": "",
"endTimeInSeconds": ""
},
"subTotalBy": ""
},
"totals": [
0
],
"subTotals": ""
}