For AI agents: A markdown version of this page is available at https://docs.datadoghq.com/api/latest/rum-retention-filters/create-a-rum-retention-filter.md. A documentation index is available at /llms.txt.

Create a RUM retention filter

POST https://api.ap1.datadoghq.com/api/v2/rum/applications/{app_id}/retention_filtershttps://api.ap2.datadoghq.com/api/v2/rum/applications/{app_id}/retention_filtershttps://api.datadoghq.eu/api/v2/rum/applications/{app_id}/retention_filtershttps://api.ddog-gov.com/api/v2/rum/applications/{app_id}/retention_filtershttps://api.us2.ddog-gov.com/api/v2/rum/applications/{app_id}/retention_filtershttps://api.uk1.datadoghq.com/api/v2/rum/applications/{app_id}/retention_filtershttps://api.datadoghq.com/api/v2/rum/applications/{app_id}/retention_filtershttps://api.us3.datadoghq.com/api/v2/rum/applications/{app_id}/retention_filtershttps://api.us5.datadoghq.com/api/v2/rum/applications/{app_id}/retention_filters

Overview

Create a RUM retention filter for a RUM application. Returns RUM retention filter objects from the request body when the request is successful.

Arguments

Path Parameters

Name

Type

Description

app_id [required]

string

RUM application ID.

Request

Body Data (required)

The definition of the new RUM retention filter.

Expand All

Field

Type

Description

data [required]

object

The new RUM retention filter properties to create.

attributes [required]

object

The object describing attributes of a RUM retention filter to create.

cross_product_sampling

object

The configuration for cross-product retention filters.

trace_enabled

boolean

Whether the cross-product retention filter for APM traces is enabled.

trace_sample_rate [required]

double

The sample rate for the APM cross-product retention filter, between 0 and 100.

enabled

boolean

Whether the retention filter is enabled.

event_type [required]

enum

The type of RUM events to filter on. Allowed enum values: session,view,action,error,resource,long_task,vital

name [required]

string

The name of a RUM retention filter.

query

string

The query string for a RUM retention filter.

sample_rate [required]

double

The sample rate for a RUM retention filter, between 0.1 and 100. Values are truncated to one decimal place.

type [required]

enum

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

default: retention_filters

{
  "data": {
    "type": "retention_filters",
    "attributes": {
      "name": "Test creating retention filter",
      "event_type": "session",
      "query": "custom_query",
      "sample_rate": 50,
      "enabled": true
    }
  }
}

Response

Created

The RUM retention filter object.

Expand All

Field

Type

Description

data

object

The RUM retention filter.

attributes

object

The object describing attributes of a RUM retention filter.

cross_product_sampling

object

The configuration for cross-product retention filters.

trace_enabled

boolean

Whether the cross-product retention filter for APM traces is enabled.

trace_sample_rate

double

The sample rate for the APM cross-product retention filter, between 0 and 100. Values returned by the API are rounded to two decimal places.

enabled

boolean

Whether the retention filter is enabled.

event_type

enum

The type of RUM events to filter on. Allowed enum values: session,view,action,error,resource,long_task,vital

name

string

The name of a RUM retention filter.

query

string

The query string for a RUM retention filter.

sample_rate

double

The sample rate for a RUM retention filter, between 0.1 and 100. Values are truncated to one decimal place.

id

string

ID of retention filter in UUID.

type

enum

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

default: retention_filters

{
  "data": {
    "attributes": {
      "cross_product_sampling": {
        "trace_enabled": true,
        "trace_sample_rate": 25
      },
      "enabled": true,
      "event_type": "session",
      "name": "Retention filter for session",
      "query": "@session.has_replay:true",
      "sample_rate": 50.5
    },
    "id": "051601eb-54a0-abc0-03f9-cc02efa18892",
    "type": "retention_filters"
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

Not Authorized

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
# 

# Path parameters
export app_id="CHANGE_ME"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

# 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/rum/applications/${app_id}/retention_filters" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${DD_BEARER_TOKEN}" \ -d @- << EOF { "data": { "attributes": { "cross_product_sampling": { "trace_enabled": true, "trace_sample_rate": 25 }, "enabled": true, "event_type": "session", "name": "Retention filter for session", "query": "@session.has_replay:true", "sample_rate": 50.5 }, "type": "retention_filters" } } EOF
// Create a RUM retention filter returns "Created" 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.RumRetentionFilterCreateRequest{
		Data: datadogV2.RumRetentionFilterCreateData{
			Type: datadogV2.RUMRETENTIONFILTERTYPE_RETENTION_FILTERS,
			Attributes: datadogV2.RumRetentionFilterCreateAttributes{
				Name:       "Test creating retention filter",
				EventType:  datadogV2.RUMRETENTIONFILTEREVENTTYPE_SESSION,
				Query:      datadog.PtrString("custom_query"),
				SampleRate: 50,
				Enabled:    datadog.PtrBool(true),
			},
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewRumRetentionFiltersApi(apiClient)
	resp, r, err := api.CreateRetentionFilter(ctx, "a33671aa-24fd-4dcd-ba4b-5bbdbafe7690", body)

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

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `RumRetentionFiltersApi.CreateRetentionFilter`:\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.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
// Create a RUM retention filter returns "Created" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.RumRetentionFiltersApi;
import com.datadog.api.client.v2.model.RumRetentionFilterCreateAttributes;
import com.datadog.api.client.v2.model.RumRetentionFilterCreateData;
import com.datadog.api.client.v2.model.RumRetentionFilterCreateRequest;
import com.datadog.api.client.v2.model.RumRetentionFilterEventType;
import com.datadog.api.client.v2.model.RumRetentionFilterResponse;
import com.datadog.api.client.v2.model.RumRetentionFilterType;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    RumRetentionFiltersApi apiInstance = new RumRetentionFiltersApi(defaultClient);

    RumRetentionFilterCreateRequest body =
        new RumRetentionFilterCreateRequest()
            .data(
                new RumRetentionFilterCreateData()
                    .type(RumRetentionFilterType.RETENTION_FILTERS)
                    .attributes(
                        new RumRetentionFilterCreateAttributes()
                            .name("Test creating retention filter")
                            .eventType(RumRetentionFilterEventType.SESSION)
                            .query("custom_query")
                            .sampleRate(50.0)
                            .enabled(true)));

    try {
      RumRetentionFilterResponse result =
          apiInstance.createRetentionFilter("a33671aa-24fd-4dcd-ba4b-5bbdbafe7690", body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling RumRetentionFiltersApi#createRetentionFilter");
      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.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
"""
Create a RUM retention filter returns "Created" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.rum_retention_filters_api import RumRetentionFiltersApi
from datadog_api_client.v2.model.rum_retention_filter_create_attributes import RumRetentionFilterCreateAttributes
from datadog_api_client.v2.model.rum_retention_filter_create_data import RumRetentionFilterCreateData
from datadog_api_client.v2.model.rum_retention_filter_create_request import RumRetentionFilterCreateRequest
from datadog_api_client.v2.model.rum_retention_filter_event_type import RumRetentionFilterEventType
from datadog_api_client.v2.model.rum_retention_filter_type import RumRetentionFilterType

body = RumRetentionFilterCreateRequest(
    data=RumRetentionFilterCreateData(
        type=RumRetentionFilterType.RETENTION_FILTERS,
        attributes=RumRetentionFilterCreateAttributes(
            name="Test creating retention filter",
            event_type=RumRetentionFilterEventType.SESSION,
            query="custom_query",
            sample_rate=50.0,
            enabled=True,
        ),
    ),
)

configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
    api_instance = RumRetentionFiltersApi(api_client)
    response = api_instance.create_retention_filter(app_id="a33671aa-24fd-4dcd-ba4b-5bbdbafe7690", 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.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
# Create a RUM retention filter returns "Created" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::RumRetentionFiltersAPI.new

body = DatadogAPIClient::V2::RumRetentionFilterCreateRequest.new({
  data: DatadogAPIClient::V2::RumRetentionFilterCreateData.new({
    type: DatadogAPIClient::V2::RumRetentionFilterType::RETENTION_FILTERS,
    attributes: DatadogAPIClient::V2::RumRetentionFilterCreateAttributes.new({
      name: "Test creating retention filter",
      event_type: DatadogAPIClient::V2::RumRetentionFilterEventType::SESSION,
      query: "custom_query",
      sample_rate: 50,
      enabled: true,
    }),
  }),
})
p api_instance.create_retention_filter("a33671aa-24fd-4dcd-ba4b-5bbdbafe7690", 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.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"
// Create a RUM retention filter returns "Created" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_rum_retention_filters::RumRetentionFiltersAPI;
use datadog_api_client::datadogV2::model::RumRetentionFilterCreateAttributes;
use datadog_api_client::datadogV2::model::RumRetentionFilterCreateData;
use datadog_api_client::datadogV2::model::RumRetentionFilterCreateRequest;
use datadog_api_client::datadogV2::model::RumRetentionFilterEventType;
use datadog_api_client::datadogV2::model::RumRetentionFilterType;

#[tokio::main]
async fn main() {
    let body = RumRetentionFilterCreateRequest::new(RumRetentionFilterCreateData::new(
        RumRetentionFilterCreateAttributes::new(
            RumRetentionFilterEventType::SESSION,
            "Test creating retention filter".to_string(),
            50.0,
        )
        .enabled(true)
        .query("custom_query".to_string()),
        RumRetentionFilterType::RETENTION_FILTERS,
    ));
    let configuration = datadog::Configuration::new();
    let api = RumRetentionFiltersAPI::with_config(configuration);
    let resp = api
        .create_retention_filter("a33671aa-24fd-4dcd-ba4b-5bbdbafe7690".to_string(), 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.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run
/**
 * Create a RUM retention filter returns "Created" response
 */

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

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
const apiInstance = new v2.RumRetentionFiltersApi(configuration);

const params: v2.RumRetentionFiltersApiCreateRetentionFilterRequest = {
  body: {
    data: {
      type: "retention_filters",
      attributes: {
        name: "Test creating retention filter",
        eventType: "session",
        query: "custom_query",
        sampleRate: 50,
        enabled: true,
      },
    },
  },
  appId: "a33671aa-24fd-4dcd-ba4b-5bbdbafe7690",
};

apiInstance
  .createRetentionFilter(params)
  .then((data: v2.RumRetentionFilterResponse) => {
    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.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"