Get a personal access token

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

Overview

Get a specific personal access token by its ID. This endpoint requires any of the following permissions:

  • user_app_keys
  • org_app_keys_read

  • Arguments

    Path Parameters

    Name

    Type

    Description

    token_id [required]

    string

    The ID of the access token.

    Response

    OK

    Response for retrieving an access token.

    Expand All

    Field

    Type

    Description

    data

    object

    Datadog access token.

    attributes

    object

    Attributes of an access token.

    created_at

    date-time

    Creation date of the access token.

    expires_at

    date-time

    Expiration date of the access token.

    last_used_at

    date-time

    Date the access token was last used.

    modified_at

    date-time

    Date of last modification of the access token.

    name

    string

    Name of the access token.

    public_portion

    string

    The public portion of the access token.

    scopes

    [string]

    Array of scopes granted to the access token.

    id

    string

    ID of the access token.

    relationships

    object

    Resources related to the access token.

    owned_by

    object

    Relationship to user.

    data [required]

    object

    Relationship to user object.

    id [required]

    string

    A unique identifier that represents the user.

    type [required]

    enum

    Users resource type. Allowed enum values: users

    default: users

    type

    enum

    Personal access tokens resource type. Allowed enum values: personal_access_tokens

    default: personal_access_tokens

    {
      "data": {
        "attributes": {
          "created_at": "2024-01-01T00:00:00+00:00",
          "expires_at": "2025-12-31T23:59:59+00:00",
          "last_used_at": "2025-06-15T12:30:00+00:00",
          "modified_at": "2024-06-01T00:00:00+00:00",
          "name": "My Access Token",
          "public_portion": "ddpat_abc123",
          "scopes": [
            "dashboards_read",
            "dashboards_write"
          ]
        },
        "id": "string",
        "relationships": {
          "owned_by": {
            "data": {
              "id": "00000000-0000-0000-2345-000000000000",
              "type": "users"
            }
          }
        },
        "type": "personal_access_tokens"
      }
    }

    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 token_id="00000000-0000-1234-0000-000000000000"
    # 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/personal_access_tokens/${token_id}" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
    """
    Get a personal access token returns "OK" response
    """
    
    from os import environ
    from datadog_api_client import ApiClient, Configuration
    from datadog_api_client.v2.api.key_management_api import KeyManagementApi
    
    # there is a valid "personal_access_token" in the system
    PERSONAL_ACCESS_TOKEN_DATA_ID = environ["PERSONAL_ACCESS_TOKEN_DATA_ID"]
    
    configuration = Configuration()
    with ApiClient(configuration) as api_client:
        api_instance = KeyManagementApi(api_client)
        response = api_instance.get_personal_access_token(
            pat_id=PERSONAL_ACCESS_TOKEN_DATA_ID,
        )
    
        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 a personal access token returns "OK" response
    
    require "datadog_api_client"
    api_instance = DatadogAPIClient::V2::KeyManagementAPI.new
    
    # there is a valid "personal_access_token" in the system
    PERSONAL_ACCESS_TOKEN_DATA_ID = ENV["PERSONAL_ACCESS_TOKEN_DATA_ID"]
    p api_instance.get_personal_access_token(PERSONAL_ACCESS_TOKEN_DATA_ID)
    

    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 a personal access token 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() {
    	// there is a valid "personal_access_token" in the system
    	PersonalAccessTokenDataID := os.Getenv("PERSONAL_ACCESS_TOKEN_DATA_ID")
    
    	ctx := datadog.NewDefaultContext(context.Background())
    	configuration := datadog.NewConfiguration()
    	apiClient := datadog.NewAPIClient(configuration)
    	api := datadogV2.NewKeyManagementApi(apiClient)
    	resp, r, err := api.GetPersonalAccessToken(ctx, PersonalAccessTokenDataID)
    
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "Error when calling `KeyManagementApi.GetPersonalAccessToken`: %v\n", err)
    		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
    	}
    
    	responseContent, _ := json.MarshalIndent(resp, "", "  ")
    	fmt.Fprintf(os.Stdout, "Response from `KeyManagementApi.GetPersonalAccessToken`:\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 a personal access token returns "OK" response
    
    import com.datadog.api.client.ApiClient;
    import com.datadog.api.client.ApiException;
    import com.datadog.api.client.v2.api.KeyManagementApi;
    import com.datadog.api.client.v2.model.PersonalAccessTokenResponse;
    
    public class Example {
      public static void main(String[] args) {
        ApiClient defaultClient = ApiClient.getDefaultApiClient();
        KeyManagementApi apiInstance = new KeyManagementApi(defaultClient);
    
        // there is a valid "personal_access_token" in the system
        String PERSONAL_ACCESS_TOKEN_DATA_ID = System.getenv("PERSONAL_ACCESS_TOKEN_DATA_ID");
    
        try {
          PersonalAccessTokenResponse result =
              apiInstance.getPersonalAccessToken(PERSONAL_ACCESS_TOKEN_DATA_ID);
          System.out.println(result);
        } catch (ApiException e) {
          System.err.println("Exception when calling KeyManagementApi#getPersonalAccessToken");
          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 a personal access token returns "OK" response
    use datadog_api_client::datadog;
    use datadog_api_client::datadogV2::api_key_management::KeyManagementAPI;
    
    #[tokio::main]
    async fn main() {
        // there is a valid "personal_access_token" in the system
        let personal_access_token_data_id = std::env::var("PERSONAL_ACCESS_TOKEN_DATA_ID").unwrap();
        let configuration = datadog::Configuration::new();
        let api = KeyManagementAPI::with_config(configuration);
        let resp = api
            .get_personal_access_token(personal_access_token_data_id.clone())
            .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 a personal access token returns "OK" response
     */
    
    import { client, v2 } from "@datadog/datadog-api-client";
    
    const configuration = client.createConfiguration();
    const apiInstance = new v2.KeyManagementApi(configuration);
    
    // there is a valid "personal_access_token" in the system
    const PERSONAL_ACCESS_TOKEN_DATA_ID = process.env
      .PERSONAL_ACCESS_TOKEN_DATA_ID as string;
    
    const params: v2.KeyManagementApiGetPersonalAccessTokenRequest = {
      patId: PERSONAL_ACCESS_TOKEN_DATA_ID,
    };
    
    apiInstance
      .getPersonalAccessToken(params)
      .then((data: v2.PersonalAccessTokenResponse) => {
        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"