Get all custom destinations

GET https://api.ap1.datadoghq.com/api/v2/logs/config/custom-destinationshttps://api.ap2.datadoghq.com/api/v2/logs/config/custom-destinationshttps://api.datadoghq.eu/api/v2/logs/config/custom-destinationshttps://api.ddog-gov.com/api/v2/logs/config/custom-destinationshttps://api.us2.ddog-gov.com/api/v2/logs/config/custom-destinationshttps://api.datadoghq.com/api/v2/logs/config/custom-destinationshttps://api.us3.datadoghq.com/api/v2/logs/config/custom-destinationshttps://api.us5.datadoghq.com/api/v2/logs/config/custom-destinations

Overview

Get the list of configured custom destinations in your organization with their definitions. This endpoint requires any of the following permissions:

  • logs_read_config
  • logs_read_data

  • Response

    OK

    The available custom destinations.

    Expand All

    Field

    Type

    Description

    data

    [object]

    A list of custom destinations.

    attributes

    object

    The attributes associated with the custom destination.

    enabled

    boolean

    Whether logs matching this custom destination should be forwarded or not.

    default: true

    forward_tags

    boolean

    Whether tags from the forwarded logs should be forwarded or not.

    default: true

    forward_tags_restriction_list

    [string]

    List of keys of tags to be filtered.

    An empty list represents no restriction is in place and either all or no tags will be forwarded depending on forward_tags_restriction_list_type parameter.

    default:

    forward_tags_restriction_list_type

    enum

    How forward_tags_restriction_list parameter should be interpreted. If ALLOW_LIST, then only tags whose keys on the forwarded logs match the ones on the restriction list are forwarded.

    BLOCK_LIST works the opposite way. It does not forward the tags matching the ones on the list. Allowed enum values: ALLOW_LIST,BLOCK_LIST

    default: ALLOW_LIST

    forwarder_destination

     <oneOf>

    A custom destination's location to forward logs.

    Option 1

    object

    The HTTP destination.

    auth [required]

     <oneOf>

    Authentication method of the HTTP requests.

    Option 1

    object

    Basic access authentication.

    type [required]

    enum

    Type of the basic access authentication. Allowed enum values: basic

    default: basic

    Option 2

    object

    Custom header access authentication.

    header_name [required]

    string

    The header name of the authentication.

    type [required]

    enum

    Type of the custom header access authentication. Allowed enum values: custom_header

    default: custom_header

    endpoint [required]

    string

    The destination for which logs will be forwarded to. Must have HTTPS scheme and forwarding back to Datadog is not allowed.

    type [required]

    enum

    Type of the HTTP destination. Allowed enum values: http

    default: http

    Option 2

    object

    The Splunk HTTP Event Collector (HEC) destination.

    endpoint [required]

    string

    The destination for which logs will be forwarded to. Must have HTTPS scheme and forwarding back to Datadog is not allowed.

    sourcetype

    string

    The Splunk sourcetype for the events sent to this Splunk destination.

    If the field is absent from the request and no sourcetype has been previously set on this destination, the default sourcetype _json is used. On update, if the field is absent from the request but a sourcetype was previously set, the previous value is kept. If set to null, the sourcetype field is omitted from the forwarded event entirely. Otherwise, the provided string value is used as the sourcetype.

    type [required]

    enum

    Type of the Splunk HTTP Event Collector (HEC) destination. Allowed enum values: splunk_hec

    default: splunk_hec

    Option 3

    object

    The Elasticsearch destination.

    auth [required]

    object

    Basic access authentication.

    <any-key>

    Basic access authentication.

    endpoint [required]

    string

    The destination for which logs will be forwarded to. Must have HTTPS scheme and forwarding back to Datadog is not allowed.

    index_name [required]

    string

    Name of the Elasticsearch index (must follow Elasticsearch's criteria).

    index_rotation

    string

    Date pattern with US locale and UTC timezone to be appended to the index name after adding - (that is, ${index_name}-${indexPattern}). You can customize the index rotation naming pattern by choosing one of these options:

    • Hourly: yyyy-MM-dd-HH (as an example, it would render: 2022-10-19-09)
    • Daily: yyyy-MM-dd (as an example, it would render: 2022-10-19)
    • Weekly: yyyy-'W'ww (as an example, it would render: 2022-W42)
    • Monthly: yyyy-MM (as an example, it would render: 2022-10)

    If this field is missing or is blank, it means that the index name will always be the same (that is, no rotation).

    type [required]

    enum

    Type of the Elasticsearch destination. Allowed enum values: elasticsearch

    default: elasticsearch

    Option 4

    object

    The Microsoft Sentinel destination.

    client_id [required]

    string

    Client ID from the Datadog Azure integration.

    data_collection_endpoint [required]

    string

    Azure data collection endpoint.

    data_collection_rule_id [required]

    string

    Azure data collection rule ID.

    stream_name [required]

    string

    Azure stream name.

    tenant_id [required]

    string

    Tenant ID from the Datadog Azure integration.

    type [required]

    enum

    Type of the Microsoft Sentinel destination. Allowed enum values: microsoft_sentinel

    default: microsoft_sentinel

    name

    string

    The custom destination name.

    query

    string

    The custom destination query filter. Logs matching this query are forwarded to the destination.

    id

    string

    The custom destination ID.

    type

    enum

    The type of the resource. The value should always be custom_destination. Allowed enum values: custom_destination

    default: custom_destination

    {
      "data": [
        {
          "attributes": {
            "enabled": true,
            "forward_tags": true,
            "forward_tags_restriction_list": [
              "datacenter",
              "host"
            ],
            "forward_tags_restriction_list_type": "ALLOW_LIST",
            "forwarder_destination": {
              "auth": {
                "type": "basic"
              },
              "endpoint": "https://example.com",
              "type": "http"
            },
            "name": "Nginx logs",
            "query": "source:nginx"
          },
          "id": "be5d7a69-d0c8-4d4d-8ee8-bba292d98139",
          "type": "custom_destination"
        }
      ]
    }

    Forbidden

    API error response.

    Expand All

    Field

    Type

    Description

    errors [required]

    [string]

    A list of errors.

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

    Too many requests

    API error response.

    Expand All

    Field

    Type

    Description

    errors [required]

    [string]

    A list of errors.

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

    Code Example

                      # 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.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/logs/config/custom-destinations" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
    """
    Get all custom destinations returns "OK" response
    """
    
    from datadog_api_client import ApiClient, Configuration
    from datadog_api_client.v2.api.logs_custom_destinations_api import LogsCustomDestinationsApi
    
    configuration = Configuration()
    with ApiClient(configuration) as api_client:
        api_instance = LogsCustomDestinationsApi(api_client)
        response = api_instance.list_logs_custom_destinations()
    
        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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python3 "example.py"
    # Get all custom destinations returns "OK" response
    
    require "datadog_api_client"
    api_instance = DatadogAPIClient::V2::LogsCustomDestinationsAPI.new
    p api_instance.list_logs_custom_destinations()
    

    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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"
    // Get all custom destinations 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.NewLogsCustomDestinationsApi(apiClient)
    	resp, r, err := api.ListLogsCustomDestinations(ctx)
    
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "Error when calling `LogsCustomDestinationsApi.ListLogsCustomDestinations`: %v\n", err)
    		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
    	}
    
    	responseContent, _ := json.MarshalIndent(resp, "", "  ")
    	fmt.Fprintf(os.Stdout, "Response from `LogsCustomDestinationsApi.ListLogsCustomDestinations`:\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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" go run "main.go"
    // Get all custom destinations returns "OK" response
    
    import com.datadog.api.client.ApiClient;
    import com.datadog.api.client.ApiException;
    import com.datadog.api.client.v2.api.LogsCustomDestinationsApi;
    import com.datadog.api.client.v2.model.CustomDestinationsResponse;
    
    public class Example {
      public static void main(String[] args) {
        ApiClient defaultClient = ApiClient.getDefaultApiClient();
        LogsCustomDestinationsApi apiInstance = new LogsCustomDestinationsApi(defaultClient);
    
        try {
          CustomDestinationsResponse result = apiInstance.listLogsCustomDestinations();
          System.out.println(result);
        } catch (ApiException e) {
          System.err.println(
              "Exception when calling LogsCustomDestinationsApi#listLogsCustomDestinations");
          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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" java "Example.java"
    // Get all custom destinations returns "OK" response
    use datadog_api_client::datadog;
    use datadog_api_client::datadogV2::api_logs_custom_destinations::LogsCustomDestinationsAPI;
    
    #[tokio::main]
    async fn main() {
        let configuration = datadog::Configuration::new();
        let api = LogsCustomDestinationsAPI::with_config(configuration);
        let resp = api.list_logs_custom_destinations().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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run
    /**
     * Get all custom destinations returns "OK" response
     */
    
    import { client, v2 } from "@datadog/datadog-api-client";
    
    const configuration = client.createConfiguration();
    const apiInstance = new v2.LogsCustomDestinationsApi(configuration);
    
    apiInstance
      .listLogsCustomDestinations()
      .then((data: v2.CustomDestinationsResponse) => {
        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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" tsc "example.ts"