Note : This endpoint is in preview and is subject to change.
If you have any feedback, contact Datadog support .
POST https://api.ap1.datadoghq.com/api/v2/cases/aggregate https://api.ap2.datadoghq.com/api/v2/cases/aggregate https://api.datadoghq.eu/api/v2/cases/aggregate https://api.ddog-gov.com/api/v2/cases/aggregate https://api.us2.ddog-gov.com/api/v2/cases/aggregate https://api.uk1.datadoghq.com/api/v2/cases/aggregate https://api.datadoghq.com/api/v2/cases/aggregate https://api.us3.datadoghq.com/api/v2/cases/aggregate https://api.us5.datadoghq.com/api/v2/cases/aggregate
Overview Performs an aggregation query over cases, grouping results by specified fields and returning counts per group along with a total. Useful for dashboards and analytics.
OAuth apps require the cases_read authorization scope to access this endpoint.
Request Body Data (required) Case aggregate request payload.
Expand All
Data object wrapping the aggregation query type and attributes.
Attributes for the aggregation request, including the search query and grouping configuration.
Configuration for grouping aggregated results by one or more case fields.
Maximum number of groups to return.
A search query to filter which cases are included in the aggregation. Uses the same syntax as the Case Management search bar.
JSON:API resource type for case aggregation requests.
Allowed enum values: aggregate
{
"data" : {
"attributes" : {
"group_by" : {
"groups" : [
"status"
],
"limit" : 14
},
"query_filter" : "service:case-api"
},
"type" : "aggregate"
}
} Response OK
Response containing aggregated case counts grouped by the requested fields.
Expand All
Data object containing the aggregation results, including total count and per-group breakdowns.
Attributes of the aggregation result, including the total count across all groups and the per-group breakdowns.
The value of the field being grouped on (for example, OPEN when grouping by status).
The count of cases in this group.
Total count of aggregated cases.
Aggregate response identifier.
{
"data" : {
"attributes" : {
"groups" : [
{
"group" : "OPEN" ,
"value" : [
42
]
}
],
"total" : 100
},
"id" : "agg-result-001" ,
"type" : "aggregate"
}
} Bad Request
{
"errors" : [
"Bad Request"
]
} Unauthorized
{
"errors" : [
"Bad Request"
]
} Forbidden
{
"errors" : [
"Bad Request"
]
} Not Found
{
"errors" : [
"Bad Request"
]
} Too many requests
{
"errors" : [
"Bad Request"
]
} Code Example Copy
## default
#
# Curl command curl -X POST "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/cases/aggregate " \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY} " \
-H "DD-APPLICATION-KEY: ${DD_APP_KEY} " \
-d @- << EOF
{
"data": {
"attributes": {
"group_by": {
"groups": [
"status"
],
"limit": 14
},
"query_filter": "service:case-api"
},
"type": "aggregate"
}
}
EOF
"""
Aggregate cases returns "OK" response
"""
from datadog_api_client import ApiClient , Configuration
from datadog_api_client.v2.api.case_management_api import CaseManagementApi
from datadog_api_client.v2.model.case_aggregate_group_by import CaseAggregateGroupBy
from datadog_api_client.v2.model.case_aggregate_request import CaseAggregateRequest
from datadog_api_client.v2.model.case_aggregate_request_attributes import CaseAggregateRequestAttributes
from datadog_api_client.v2.model.case_aggregate_request_data import CaseAggregateRequestData
from datadog_api_client.v2.model.case_aggregate_resource_type import CaseAggregateResourceType
body = CaseAggregateRequest (
data = CaseAggregateRequestData (
attributes = CaseAggregateRequestAttributes (
group_by = CaseAggregateGroupBy (
groups = [
"status" ,
],
limit = 14 ,
),
query_filter = "service:case-api" ,
),
type = CaseAggregateResourceType . AGGREGATE ,
),
)
configuration = Configuration ()
configuration . unstable_operations [ "aggregate_cases" ] = True
with ApiClient ( configuration ) as api_client :
api_instance = CaseManagementApi ( api_client )
response = api_instance . aggregate_cases ( body = body )
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.com us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com uk1.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<DD_API_KEY>" DD_APP_KEY = "<DD_APP_KEY>" python3 "example.py"
# Aggregate cases returns "OK" response
require "datadog_api_client"
DatadogAPIClient . configure do | config |
config . unstable_operations [ "v2.aggregate_cases" . to_sym ] = true
end
api_instance = DatadogAPIClient :: V2 :: CaseManagementAPI . new
body = DatadogAPIClient :: V2 :: CaseAggregateRequest . new ({
data : DatadogAPIClient :: V2 :: CaseAggregateRequestData . new ({
attributes : DatadogAPIClient :: V2 :: CaseAggregateRequestAttributes . new ({
group_by : DatadogAPIClient :: V2 :: CaseAggregateGroupBy . new ({
groups : [
"status" ,
] ,
limit : 14 ,
}),
query_filter : "service:case-api" ,
}),
type : DatadogAPIClient :: V2 :: CaseAggregateResourceType :: AGGREGATE ,
}),
})
p api_instance . aggregate_cases ( body )
Instructions First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE = "datadoghq.com us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com uk1.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<DD_API_KEY>" DD_APP_KEY = "<DD_APP_KEY>" rb "example.rb"
// Aggregate cases 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 () {
body := datadogV2 . CaseAggregateRequest {
Data : datadogV2 . CaseAggregateRequestData {
Attributes : datadogV2 . CaseAggregateRequestAttributes {
GroupBy : datadogV2 . CaseAggregateGroupBy {
Groups : [] string {
"status" ,
},
Limit : 14 ,
},
QueryFilter : "service:case-api" ,
},
Type : datadogV2 . CASEAGGREGATERESOURCETYPE_AGGREGATE ,
},
}
ctx := datadog . NewDefaultContext ( context . Background ())
configuration := datadog . NewConfiguration ()
configuration . SetUnstableOperationEnabled ( "v2.AggregateCases" , true )
apiClient := datadog . NewAPIClient ( configuration )
api := datadogV2 . NewCaseManagementApi ( apiClient )
resp , r , err := api . AggregateCases ( ctx , body )
if err != nil {
fmt . Fprintf ( os . Stderr , "Error when calling `CaseManagementApi.AggregateCases`: %v\n" , err )
fmt . Fprintf ( os . Stderr , "Full HTTP response: %v\n" , r )
}
responseContent , _ := json . MarshalIndent ( resp , "" , " " )
fmt . Fprintf ( os . Stdout , "Response from `CaseManagementApi.AggregateCases`:\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.com us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com uk1.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<DD_API_KEY>" DD_APP_KEY = "<DD_APP_KEY>" go run "main.go"
// Aggregate cases returns "OK" response
import com.datadog.api.client.ApiClient ;
import com.datadog.api.client.ApiException ;
import com.datadog.api.client.v2.api.CaseManagementApi ;
import com.datadog.api.client.v2.model.CaseAggregateGroupBy ;
import com.datadog.api.client.v2.model.CaseAggregateRequest ;
import com.datadog.api.client.v2.model.CaseAggregateRequestAttributes ;
import com.datadog.api.client.v2.model.CaseAggregateRequestData ;
import com.datadog.api.client.v2.model.CaseAggregateResourceType ;
import com.datadog.api.client.v2.model.CaseAggregateResponse ;
import java.util.Collections ;
public class Example {
public static void main ( String [] args ) {
ApiClient defaultClient = ApiClient . getDefaultApiClient ();
defaultClient . setUnstableOperationEnabled ( "v2.aggregateCases" , true );
CaseManagementApi apiInstance = new CaseManagementApi ( defaultClient );
CaseAggregateRequest body =
new CaseAggregateRequest ()
. data (
new CaseAggregateRequestData ()
. attributes (
new CaseAggregateRequestAttributes ()
. groupBy (
new CaseAggregateGroupBy ()
. groups ( Collections . singletonList ( "status" ))
. limit ( 14 ))
. queryFilter ( "service:case-api" ))
. type ( CaseAggregateResourceType . AGGREGATE ));
try {
CaseAggregateResponse result = apiInstance . aggregateCases ( body );
System . out . println ( result );
} catch ( ApiException e ) {
System . err . println ( "Exception when calling CaseManagementApi#aggregateCases" );
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.com us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com uk1.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<DD_API_KEY>" DD_APP_KEY = "<DD_APP_KEY>" java "Example.java"
// Aggregate cases returns "OK" response
use datadog_api_client ::datadog ;
use datadog_api_client ::datadogV2 ::api_case_management ::CaseManagementAPI ;
use datadog_api_client ::datadogV2 ::model ::CaseAggregateGroupBy ;
use datadog_api_client ::datadogV2 ::model ::CaseAggregateRequest ;
use datadog_api_client ::datadogV2 ::model ::CaseAggregateRequestAttributes ;
use datadog_api_client ::datadogV2 ::model ::CaseAggregateRequestData ;
use datadog_api_client ::datadogV2 ::model ::CaseAggregateResourceType ;
#[tokio::main]
async fn main () {
let body = CaseAggregateRequest ::new ( CaseAggregateRequestData ::new (
CaseAggregateRequestAttributes ::new (
CaseAggregateGroupBy ::new ( vec! [ "status" . to_string ()], 14 ),
"service:case-api" . to_string (),
),
CaseAggregateResourceType ::AGGREGATE ,
));
let mut configuration = datadog ::Configuration ::new ();
configuration . set_unstable_operation_enabled ( "v2.AggregateCases" , true );
let api = CaseManagementAPI ::with_config ( configuration );
let resp = api . aggregate_cases ( body ). 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.com us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com uk1.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<DD_API_KEY>" DD_APP_KEY = "<DD_APP_KEY>" cargo run
/**
* Aggregate cases returns "OK" response
*/
import { client , v2 } from "@datadog/datadog-api-client" ;
const configuration = client . createConfiguration ();
configuration . unstableOperations [ "v2.aggregateCases" ] = true ;
const apiInstance = new v2 . CaseManagementApi ( configuration );
const params : v2.CaseManagementApiAggregateCasesRequest = {
body : {
data : {
attributes : {
groupBy : {
groups : [ "status" ],
limit : 14 ,
},
queryFilter : "service:case-api" ,
},
type : "aggregate" ,
},
},
};
apiInstance
. aggregateCases ( params )
. then (( data : v2.CaseAggregateResponse ) => {
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.com us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com uk1.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<DD_API_KEY>" DD_APP_KEY = "<DD_APP_KEY>" tsc "example.ts"