Anonymize users

Note: This endpoint is in Preview and may be subject to changes.

PUT https://api.ap1.datadoghq.com/api/v2/anonymize_usershttps://api.ap2.datadoghq.com/api/v2/anonymize_usershttps://api.datadoghq.eu/api/v2/anonymize_usershttps://api.ddog-gov.com/api/v2/anonymize_usershttps://api.us2.ddog-gov.com/api/v2/anonymize_usershttps://api.datadoghq.com/api/v2/anonymize_usershttps://api.us3.datadoghq.com/api/v2/anonymize_usershttps://api.us5.datadoghq.com/api/v2/anonymize_users

Overview

Anonymize a list of users, removing their personal data. This operation is irreversible. Requires the user_access_manage permission. This endpoint requires the user_access_manage permission.

OAuth apps require the user_access_manage authorization scope to access this endpoint.

Request

Body Data (required)

Expand All

Field

Type

Description

data [required]

object

Object to anonymize a list of users.

attributes [required]

object

Attributes of an anonymize users request.

user_ids [required]

[string]

List of user IDs (UUIDs) to anonymize.

id

string

Unique identifier for the request. Not used server-side.

type [required]

enum

Type of the anonymize users request. Allowed enum values: anonymize_users_request

default: anonymize_users_request

{
  "data": {
    "attributes": {
      "user_ids": [
        "00000000-0000-0000-0000-000000000000"
      ]
    },
    "id": "00000000-0000-0000-0000-000000000000",
    "type": "anonymize_users_request"
  }
}

Response

OK

Response containing the result of an anonymize users request.

Expand All

Field

Type

Description

data

object

Response data for anonymizing users.

attributes

object

Attributes of an anonymize users response.

anonymize_errors [required]

[object]

List of errors encountered during anonymization, one entry per failed user.

error [required]

string

Error message describing why anonymization failed.

user_id [required]

string

UUID of the user that failed to be anonymized.

anonymized_user_ids [required]

[string]

List of user IDs (UUIDs) that were successfully anonymized.

id

string

Unique identifier of the response.

type

enum

Type of the anonymize users response. Allowed enum values: anonymize_users_response

default: anonymize_users_response

{
  "data": {
    "attributes": {
      "anonymize_errors": [
        {
          "error": "",
          "user_id": "00000000-0000-0000-0000-000000000000"
        }
      ],
      "anonymized_user_ids": [
        "00000000-0000-0000-0000-000000000000"
      ]
    },
    "id": "00000000-0000-0000-0000-000000000000",
    "type": "anonymize_users_response"
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

Authentication error

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

                  ## default
# 

# Curl command
curl -X PUT "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/anonymize_users" \ -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": { "user_ids": [ "00000000-0000-0000-0000-000000000000" ] }, "type": "anonymize_users_request" } } EOF
"""
Anonymize users returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.users_api import UsersApi
from datadog_api_client.v2.model.anonymize_users_request import AnonymizeUsersRequest
from datadog_api_client.v2.model.anonymize_users_request_attributes import AnonymizeUsersRequestAttributes
from datadog_api_client.v2.model.anonymize_users_request_data import AnonymizeUsersRequestData
from datadog_api_client.v2.model.anonymize_users_request_type import AnonymizeUsersRequestType

body = AnonymizeUsersRequest(
    data=AnonymizeUsersRequestData(
        attributes=AnonymizeUsersRequestAttributes(
            user_ids=[
                "00000000-0000-0000-0000-000000000000",
            ],
        ),
        id="00000000-0000-0000-0000-000000000000",
        type=AnonymizeUsersRequestType.ANONYMIZE_USERS_REQUEST,
    ),
)

configuration = Configuration()
configuration.unstable_operations["anonymize_users"] = True
with ApiClient(configuration) as api_client:
    api_instance = UsersApi(api_client)
    response = api_instance.anonymize_users(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.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"
# Anonymize users returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.unstable_operations["v2.anonymize_users".to_sym] = true
end
api_instance = DatadogAPIClient::V2::UsersAPI.new

body = DatadogAPIClient::V2::AnonymizeUsersRequest.new({
  data: DatadogAPIClient::V2::AnonymizeUsersRequestData.new({
    attributes: DatadogAPIClient::V2::AnonymizeUsersRequestAttributes.new({
      user_ids: [
        "00000000-0000-0000-0000-000000000000",
      ],
    }),
    id: "00000000-0000-0000-0000-000000000000",
    type: DatadogAPIClient::V2::AnonymizeUsersRequestType::ANONYMIZE_USERS_REQUEST,
  }),
})
p api_instance.anonymize_users(body)

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"
// Anonymize users 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.AnonymizeUsersRequest{
		Data: datadogV2.AnonymizeUsersRequestData{
			Attributes: datadogV2.AnonymizeUsersRequestAttributes{
				UserIds: []string{
					"00000000-0000-0000-0000-000000000000",
				},
			},
			Id:   datadog.PtrString("00000000-0000-0000-0000-000000000000"),
			Type: datadogV2.ANONYMIZEUSERSREQUESTTYPE_ANONYMIZE_USERS_REQUEST,
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	configuration.SetUnstableOperationEnabled("v2.AnonymizeUsers", true)
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewUsersApi(apiClient)
	resp, r, err := api.AnonymizeUsers(ctx, body)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `UsersApi.AnonymizeUsers`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `UsersApi.AnonymizeUsers`:\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"
// Anonymize users returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.UsersApi;
import com.datadog.api.client.v2.model.AnonymizeUsersRequest;
import com.datadog.api.client.v2.model.AnonymizeUsersRequestAttributes;
import com.datadog.api.client.v2.model.AnonymizeUsersRequestData;
import com.datadog.api.client.v2.model.AnonymizeUsersRequestType;
import com.datadog.api.client.v2.model.AnonymizeUsersResponse;
import java.util.Collections;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setUnstableOperationEnabled("v2.anonymizeUsers", true);
    UsersApi apiInstance = new UsersApi(defaultClient);

    AnonymizeUsersRequest body =
        new AnonymizeUsersRequest()
            .data(
                new AnonymizeUsersRequestData()
                    .attributes(
                        new AnonymizeUsersRequestAttributes()
                            .userIds(
                                Collections.singletonList("00000000-0000-0000-0000-000000000000")))
                    .id("00000000-0000-0000-0000-000000000000")
                    .type(AnonymizeUsersRequestType.ANONYMIZE_USERS_REQUEST));

    try {
      AnonymizeUsersResponse result = apiInstance.anonymizeUsers(body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling UsersApi#anonymizeUsers");
      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"
// Anonymize users returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_users::UsersAPI;
use datadog_api_client::datadogV2::model::AnonymizeUsersRequest;
use datadog_api_client::datadogV2::model::AnonymizeUsersRequestAttributes;
use datadog_api_client::datadogV2::model::AnonymizeUsersRequestData;
use datadog_api_client::datadogV2::model::AnonymizeUsersRequestType;

#[tokio::main]
async fn main() {
    let body = AnonymizeUsersRequest::new(
        AnonymizeUsersRequestData::new(
            AnonymizeUsersRequestAttributes::new(vec![
                "00000000-0000-0000-0000-000000000000".to_string()
            ]),
            AnonymizeUsersRequestType::ANONYMIZE_USERS_REQUEST,
        )
        .id("00000000-0000-0000-0000-000000000000".to_string()),
    );
    let mut configuration = datadog::Configuration::new();
    configuration.set_unstable_operation_enabled("v2.AnonymizeUsers", true);
    let api = UsersAPI::with_config(configuration);
    let resp = api.anonymize_users(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.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
/**
 * Anonymize users returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
configuration.unstableOperations["v2.anonymizeUsers"] = true;
const apiInstance = new v2.UsersApi(configuration);

const params: v2.UsersApiAnonymizeUsersRequest = {
  body: {
    data: {
      attributes: {
        userIds: ["00000000-0000-0000-0000-000000000000"],
      },
      id: "00000000-0000-0000-0000-000000000000",
      type: "anonymize_users_request",
    },
  },
};

apiInstance
  .anonymizeUsers(params)
  .then((data: v2.AnonymizeUsersResponse) => {
    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"