Get a widget

GET https://api.ap1.datadoghq.com/api/v2/widgets/{experience_type}/{uuid}https://api.ap2.datadoghq.com/api/v2/widgets/{experience_type}/{uuid}https://api.datadoghq.eu/api/v2/widgets/{experience_type}/{uuid}https://api.ddog-gov.com/api/v2/widgets/{experience_type}/{uuid}https://api.us2.ddog-gov.com/api/v2/widgets/{experience_type}/{uuid}https://api.datadoghq.com/api/v2/widgets/{experience_type}/{uuid}https://api.us3.datadoghq.com/api/v2/widgets/{experience_type}/{uuid}https://api.us5.datadoghq.com/api/v2/widgets/{experience_type}/{uuid}

Overview

Retrieve a widget by its UUID for a given experience type. This endpoint requires any of the following permissions:

  • cloud_cost_management_read
  • generate_log_reports
  • manage_log_reports
  • product_analytics_saved_widgets_read

  • Arguments

    Path Parameters

    Name

    Type

    Description

    experience_type [required]

    string

    The experience type for the widget.

    uuid [required]

    string

    The UUID of the widget.

    Response

    OK

    Response containing a single widget.

    Expand All

    Field

    Type

    Description

    data [required]

    object

    A widget resource object.

    attributes [required]

    object

    Attributes of a widget resource.

    created_at [required]

    string

    ISO 8601 timestamp of when the widget was created.

    definition [required]

    object

    The definition of a widget, including its type and configuration.

    title [required]

    string

    The display title of the widget.

    type [required]

    enum

    Widget types that are allowed to be stored as individual records. This is not a complete list of dashboard and notebook widget types. Allowed enum values: bar_chart,change,cloud_cost_summary,cohort,funnel,geomap,list_stream,query_table,query_value,retention_curve

    Show 5 more,sankey,sunburst,timeseries,toplist,treemap

    is_favorited [required]

    boolean

    Whether the current user has favorited this widget. Populated on get, batch_get, update, and search responses; create responses always return false because a widget can only be favorited after it exists. Favoriting itself is performed through the shared favorites API, not this service.

    modified_at [required]

    string

    ISO 8601 timestamp of when the widget was last modified.

    tags [required]

    [string]

    User-defined tags for organizing widgets.

    id [required]

    string

    The unique identifier of the widget.

    relationships

    object

    Relationships of the widget resource.

    created_by

    object

    The user who created the widget.

    data

    object

    Relationship data referencing a user resource.

    id [required]

    string

    The unique identifier of the user.

    type [required]

    string

    Users resource type.

    modified_by

    object

    The user who last modified the widget.

    data

    object

    Relationship data referencing a user resource.

    id [required]

    string

    The unique identifier of the user.

    type [required]

    string

    Users resource type.

    type [required]

    string

    Widgets resource type.

    included

    [object]

    Array of user resources related to the widget.

    attributes

    object

    Attributes of an included user resource.

    handle

    string

    The email handle of the user.

    name

    string

    The display name of the user.

    id [required]

    string

    The unique identifier of the user.

    type [required]

    string

    Users resource type.

    {
      "data": {
        "attributes": {
          "created_at": "2024-01-15T00:00:00.000Z",
          "definition": {
            "title": "My Widget",
            "type": "bar_chart"
          },
          "is_favorited": false,
          "modified_at": "2024-01-15T00:00:00.000Z",
          "tags": [
            "team:my-team"
          ]
        },
        "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "relationships": {
          "created_by": {
            "data": {
              "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
              "type": "users"
            }
          },
          "modified_by": {
            "data": {
              "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
              "type": "users"
            }
          }
        },
        "type": "widgets"
      },
      "included": [
        {
          "attributes": {
            "handle": "john.doe@example.com",
            "name": "John Doe"
          },
          "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "type": "users"
        }
      ]
    }

    Bad Request

    API error response.

    Expand All

    Field

    Type

    Description

    errors [required]

    [string]

    A list of errors.

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

    Forbidden

    API error response.

    Expand All

    Field

    Type

    Description

    errors [required]

    [string]

    A list of errors.

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

    Not Found

    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

                      # Path parameters
    export experience_type="ccm_reports"
    export uuid="CHANGE_ME"
    # 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/widgets/${experience_type}/${uuid}" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
    """
    Get a widget returns "OK" response
    """
    
    from datadog_api_client import ApiClient, Configuration
    from datadog_api_client.v2.api.widgets_api import WidgetsApi
    from datadog_api_client.v2.model.widget_experience_type import WidgetExperienceType
    from uuid import UUID
    
    configuration = Configuration()
    with ApiClient(configuration) as api_client:
        api_instance = WidgetsApi(api_client)
        response = api_instance.get_widget(
            experience_type=WidgetExperienceType.CCM_REPORTS,
            uuid=UUID("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"),
        )
    
        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="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
    # Get a widget returns "OK" response
    
    require "datadog_api_client"
    api_instance = DatadogAPIClient::V2::WidgetsAPI.new
    p api_instance.get_widget(WidgetExperienceType::CCM_REPORTS, "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d")
    

    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="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
    // Get a widget 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"
    	"github.com/google/uuid"
    )
    
    func main() {
    	ctx := datadog.NewDefaultContext(context.Background())
    	configuration := datadog.NewConfiguration()
    	apiClient := datadog.NewAPIClient(configuration)
    	api := datadogV2.NewWidgetsApi(apiClient)
    	resp, r, err := api.GetWidget(ctx, datadogV2.WIDGETEXPERIENCETYPE_CCM_REPORTS, uuid.MustParse("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"))
    
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "Error when calling `WidgetsApi.GetWidget`: %v\n", err)
    		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
    	}
    
    	responseContent, _ := json.MarshalIndent(resp, "", "  ")
    	fmt.Fprintf(os.Stdout, "Response from `WidgetsApi.GetWidget`:\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="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
    // Get a widget returns "OK" response
    
    import com.datadog.api.client.ApiClient;
    import com.datadog.api.client.ApiException;
    import com.datadog.api.client.v2.api.WidgetsApi;
    import com.datadog.api.client.v2.model.WidgetExperienceType;
    import com.datadog.api.client.v2.model.WidgetResponse;
    import java.util.UUID;
    
    public class Example {
      public static void main(String[] args) {
        ApiClient defaultClient = ApiClient.getDefaultApiClient();
        WidgetsApi apiInstance = new WidgetsApi(defaultClient);
    
        try {
          WidgetResponse result =
              apiInstance.getWidget(
                  WidgetExperienceType.CCM_REPORTS,
                  UUID.fromString("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"));
          System.out.println(result);
        } catch (ApiException e) {
          System.err.println("Exception when calling WidgetsApi#getWidget");
          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="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
    // Get a widget returns "OK" response
    use datadog_api_client::datadog;
    use datadog_api_client::datadogV2::api_widgets::WidgetsAPI;
    use datadog_api_client::datadogV2::model::WidgetExperienceType;
    use uuid::Uuid;
    
    #[tokio::main]
    async fn main() {
        let configuration = datadog::Configuration::new();
        let api = WidgetsAPI::with_config(configuration);
        let resp = api
            .get_widget(
                WidgetExperienceType::CCM_REPORTS,
                Uuid::parse_str("00000000-0000-0000-0000-000000000000").expect("invalid UUID"),
            )
            .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="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
    /**
     * Get a widget returns "OK" response
     */
    
    import { client, v2 } from "@datadog/datadog-api-client";
    
    const configuration = client.createConfiguration();
    const apiInstance = new v2.WidgetsApi(configuration);
    
    const params: v2.WidgetsApiGetWidgetRequest = {
      experienceType: "ccm_reports",
      uuid: "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
    };
    
    apiInstance
      .getWidget(params)
      .then((data: v2.WidgetResponse) => {
        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="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"