Crear o actualizar una configuración de cuota de retención de RUM

PUT https://api.ap1.datadoghq.com/api/v2/rum/config/retention-quota/{scope_type}/{scope_id}https://api.ap2.datadoghq.com/api/v2/rum/config/retention-quota/{scope_type}/{scope_id}https://api.datadoghq.eu/api/v2/rum/config/retention-quota/{scope_type}/{scope_id}https://api.ddog-gov.com/api/v2/rum/config/retention-quota/{scope_type}/{scope_id}https://api.us2.ddog-gov.com/api/v2/rum/config/retention-quota/{scope_type}/{scope_id}https://api.uk1.datadoghq.com/api/v2/rum/config/retention-quota/{scope_type}/{scope_id}https://api.datadoghq.com/api/v2/rum/config/retention-quota/{scope_type}/{scope_id}https://api.us3.datadoghq.com/api/v2/rum/config/retention-quota/{scope_type}/{scope_id}https://api.us5.datadoghq.com/api/v2/rum/config/retention-quota/{scope_type}/{scope_id}

Descripción general

Create or update the RUM retention quota configuration for a given scope. Returns the retention quota configuration object when the request is successful. This endpoint requires the rum_retention_filters_write permission.

Argumentos

Parámetros de ruta

Nombre

Type

Descripción

scope_type [required]

string

The type of scope the retention quota configuration applies to. application is the only supported scope type.

scope_id [required]

string

The identifier of the scope the retention quota configuration applies to. For the application scope, this is the RUM application ID.

Solicitud

Body Data (required)

The definition of the RUM retention quota configuration to create or update.

Expand All

Campo

Type

Descripción

data [required]

object

The RUM retention quota configuration to create or update.

attributes [required]

object

The RUM retention quota configuration properties to create or update.

custom

object

The configuration used when mode is custom.

daily_reset_time [required]

string

The time of day when the daily quota resets, in HH:MM 24-hour format.

daily_reset_timezone [required]

string

The timezone offset used for the daily reset time, in ±HH:MM format.

quota_reached_action [required]

enum

The action to take when the session quota is reached. Allowed enum values: stop,slowdown

session_limit [required]

int64

The maximum number of sessions allowed within the window. Must be at least 1000.

window_type [required]

enum

The window type over which the session limit is enforced. Allowed enum values: daily

mode [required]

enum

The retention quota mode. custom enforces a fixed session limit. custom is the only supported mode. Allowed enum values: custom

id [required]

string

The identifier of the scope the retention quota configuration applies to. Must match scope_id in the path.

type [required]

enum

The type of the resource, always rum_quota_config. Allowed enum values: rum_quota_config

default: rum_quota_config

{
  "data": {
    "attributes": {
      "custom": {
        "daily_reset_time": "08:00",
        "daily_reset_timezone": "+09:00",
        "quota_reached_action": "stop",
        "session_limit": 1000000,
        "window_type": "daily"
      },
      "mode": "custom"
    },
    "id": "cd73a516-a481-4af5-8352-9b577465c77b",
    "type": "rum_quota_config"
  }
}

Respuesta

OK

The RUM retention quota configuration response.

Expand All

Campo

Type

Descripción

data [required]

object

The RUM retention quota configuration object.

attributes [required]

object

The RUM retention quota configuration properties.

custom

object

The configuration used when mode is custom.

daily_reset_time [required]

string

The time of day when the daily quota resets, in HH:MM 24-hour format.

daily_reset_timezone [required]

string

The timezone offset used for the daily reset time, in ±HH:MM format.

quota_reached_action [required]

enum

The action to take when the session quota is reached. Allowed enum values: stop,slowdown

session_limit [required]

int64

The maximum number of sessions allowed within the window. Must be at least 1000.

window_type [required]

enum

The window type over which the session limit is enforced. Allowed enum values: daily

mode [required]

enum

The retention quota mode. custom enforces a fixed session limit. custom is the only supported mode. Allowed enum values: custom

org_id [required]

int64

The ID of the organization the retention quota configuration belongs to.

updated_at

date-time

The date the retention quota configuration was last updated.

updated_by

string

The handle of the user who last updated the retention quota configuration.

id [required]

string

The identifier of the scope the retention quota configuration applies to.

type [required]

enum

The type of the resource, always rum_quota_config. Allowed enum values: rum_quota_config

default: rum_quota_config

{
  "data": {
    "attributes": {
      "custom": {
        "daily_reset_time": "08:00",
        "daily_reset_timezone": "+09:00",
        "quota_reached_action": "stop",
        "session_limit": 1000000,
        "window_type": "daily"
      },
      "mode": "custom",
      "org_id": 2,
      "updated_at": "2026-03-04T15:37:54.951447Z",
      "updated_by": "test@example.com"
    },
    "id": "cd73a516-a481-4af5-8352-9b577465c77b",
    "type": "rum_quota_config"
  }
}

Bad Request

API error response.

Expand All

Campo

Type

Descripción

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Unauthorized

API error response.

Expand All

Campo

Type

Descripción

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Forbidden

API error response.

Expand All

Campo

Type

Descripción

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Not Found

API error response.

Expand All

Campo

Type

Descripción

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Too many requests

API error response.

Expand All

Campo

Type

Descripción

errors [required]

[string]

A list of errors.

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

Ejemplo de código

                  ## default
# 

# Path parameters
export scope_type="application"
export scope_id="cd73a516-a481-4af5-8352-9b577465c77b"
# 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.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/rum/config/retention-quota/${scope_type}/${scope_id}" \ -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": { "custom": { "daily_reset_time": "08:00", "daily_reset_timezone": "+09:00", "quota_reached_action": "stop", "session_limit": 1000000, "window_type": "daily" }, "mode": "custom" }, "id": "cd73a516-a481-4af5-8352-9b577465c77b", "type": "rum_quota_config" } } EOF
"""
Create or update a RUM retention quota config returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.rum_retention_quotas_api import RUMRetentionQuotasApi
from datadog_api_client.v2.model.rum_retention_quota_config_type import RumRetentionQuotaConfigType
from datadog_api_client.v2.model.rum_retention_quota_config_update_attributes import (
    RumRetentionQuotaConfigUpdateAttributes,
)
from datadog_api_client.v2.model.rum_retention_quota_config_update_data import RumRetentionQuotaConfigUpdateData
from datadog_api_client.v2.model.rum_retention_quota_config_update_request import RumRetentionQuotaConfigUpdateRequest
from datadog_api_client.v2.model.rum_retention_quota_custom_config import RumRetentionQuotaCustomConfig
from datadog_api_client.v2.model.rum_retention_quota_mode import RumRetentionQuotaMode
from datadog_api_client.v2.model.rum_retention_quota_reached_action import RumRetentionQuotaReachedAction
from datadog_api_client.v2.model.rum_retention_quota_scope_type import RumRetentionQuotaScopeType
from datadog_api_client.v2.model.rum_retention_quota_window_type import RumRetentionQuotaWindowType

body = RumRetentionQuotaConfigUpdateRequest(
    data=RumRetentionQuotaConfigUpdateData(
        attributes=RumRetentionQuotaConfigUpdateAttributes(
            custom=RumRetentionQuotaCustomConfig(
                daily_reset_time="08:00",
                daily_reset_timezone="+09:00",
                quota_reached_action=RumRetentionQuotaReachedAction.STOP,
                session_limit=1000000,
                window_type=RumRetentionQuotaWindowType.DAILY,
            ),
            mode=RumRetentionQuotaMode.CUSTOM,
        ),
        id="cd73a516-a481-4af5-8352-9b577465c77b",
        type=RumRetentionQuotaConfigType.RUM_QUOTA_CONFIG,
    ),
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = RUMRetentionQuotasApi(api_client)
    response = api_instance.upsert_rum_quota_config(
        scope_type=RumRetentionQuotaScopeType.APPLICATION, scope_id="cd73a516-a481-4af5-8352-9b577465c77b", 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_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python3 "example.py"
# Create or update a RUM retention quota config returns "OK" response

require "datadog_api_client"
api_instance = DatadogAPIClient::V2::RUMRetentionQuotasAPI.new

body = DatadogAPIClient::V2::RumRetentionQuotaConfigUpdateRequest.new({
  data: DatadogAPIClient::V2::RumRetentionQuotaConfigUpdateData.new({
    attributes: DatadogAPIClient::V2::RumRetentionQuotaConfigUpdateAttributes.new({
      custom: DatadogAPIClient::V2::RumRetentionQuotaCustomConfig.new({
        daily_reset_time: "08:00",
        daily_reset_timezone: "+09:00",
        quota_reached_action: DatadogAPIClient::V2::RumRetentionQuotaReachedAction::STOP,
        session_limit: 1000000,
        window_type: DatadogAPIClient::V2::RumRetentionQuotaWindowType::DAILY,
      }),
      mode: DatadogAPIClient::V2::RumRetentionQuotaMode::CUSTOM,
    }),
    id: "cd73a516-a481-4af5-8352-9b577465c77b",
    type: DatadogAPIClient::V2::RumRetentionQuotaConfigType::RUM_QUOTA_CONFIG,
  }),
})
p api_instance.upsert_rum_quota_config(RumRetentionQuotaScopeType::APPLICATION, "cd73a516-a481-4af5-8352-9b577465c77b", 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_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"
// Create or update a RUM retention quota config 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.RumRetentionQuotaConfigUpdateRequest{
		Data: datadogV2.RumRetentionQuotaConfigUpdateData{
			Attributes: datadogV2.RumRetentionQuotaConfigUpdateAttributes{
				Custom: &datadogV2.RumRetentionQuotaCustomConfig{
					DailyResetTime:     "08:00",
					DailyResetTimezone: "+09:00",
					QuotaReachedAction: datadogV2.RUMRETENTIONQUOTAREACHEDACTION_STOP,
					SessionLimit:       1000000,
					WindowType:         datadogV2.RUMRETENTIONQUOTAWINDOWTYPE_DAILY,
				},
				Mode: datadogV2.RUMRETENTIONQUOTAMODE_CUSTOM,
			},
			Id:   "cd73a516-a481-4af5-8352-9b577465c77b",
			Type: datadogV2.RUMRETENTIONQUOTACONFIGTYPE_RUM_QUOTA_CONFIG,
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewRUMRetentionQuotasApi(apiClient)
	resp, r, err := api.UpsertRumQuotaConfig(ctx, datadogV2.RUMRETENTIONQUOTASCOPETYPE_APPLICATION, "cd73a516-a481-4af5-8352-9b577465c77b", body)

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

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `RUMRetentionQuotasApi.UpsertRumQuotaConfig`:\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_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" go run "main.go"
// Create or update a RUM retention quota config returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.RumRetentionQuotasApi;
import com.datadog.api.client.v2.model.RumRetentionQuotaConfigResponse;
import com.datadog.api.client.v2.model.RumRetentionQuotaConfigType;
import com.datadog.api.client.v2.model.RumRetentionQuotaConfigUpdateAttributes;
import com.datadog.api.client.v2.model.RumRetentionQuotaConfigUpdateData;
import com.datadog.api.client.v2.model.RumRetentionQuotaConfigUpdateRequest;
import com.datadog.api.client.v2.model.RumRetentionQuotaCustomConfig;
import com.datadog.api.client.v2.model.RumRetentionQuotaMode;
import com.datadog.api.client.v2.model.RumRetentionQuotaReachedAction;
import com.datadog.api.client.v2.model.RumRetentionQuotaScopeType;
import com.datadog.api.client.v2.model.RumRetentionQuotaWindowType;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    RumRetentionQuotasApi apiInstance = new RumRetentionQuotasApi(defaultClient);

    RumRetentionQuotaConfigUpdateRequest body =
        new RumRetentionQuotaConfigUpdateRequest()
            .data(
                new RumRetentionQuotaConfigUpdateData()
                    .attributes(
                        new RumRetentionQuotaConfigUpdateAttributes()
                            .custom(
                                new RumRetentionQuotaCustomConfig()
                                    .dailyResetTime("08:00")
                                    .dailyResetTimezone("+09:00")
                                    .quotaReachedAction(RumRetentionQuotaReachedAction.STOP)
                                    .sessionLimit(1000000L)
                                    .windowType(RumRetentionQuotaWindowType.DAILY))
                            .mode(RumRetentionQuotaMode.CUSTOM))
                    .id("cd73a516-a481-4af5-8352-9b577465c77b")
                    .type(RumRetentionQuotaConfigType.RUM_QUOTA_CONFIG));

    try {
      RumRetentionQuotaConfigResponse result =
          apiInstance.upsertRumQuotaConfig(
              RumRetentionQuotaScopeType.APPLICATION, "cd73a516-a481-4af5-8352-9b577465c77b", body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling RumRetentionQuotasApi#upsertRumQuotaConfig");
      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_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" java "Example.java"
// Create or update a RUM retention quota config returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_rum_retention_quotas::RUMRetentionQuotasAPI;
use datadog_api_client::datadogV2::model::RumRetentionQuotaConfigType;
use datadog_api_client::datadogV2::model::RumRetentionQuotaConfigUpdateAttributes;
use datadog_api_client::datadogV2::model::RumRetentionQuotaConfigUpdateData;
use datadog_api_client::datadogV2::model::RumRetentionQuotaConfigUpdateRequest;
use datadog_api_client::datadogV2::model::RumRetentionQuotaCustomConfig;
use datadog_api_client::datadogV2::model::RumRetentionQuotaMode;
use datadog_api_client::datadogV2::model::RumRetentionQuotaReachedAction;
use datadog_api_client::datadogV2::model::RumRetentionQuotaScopeType;
use datadog_api_client::datadogV2::model::RumRetentionQuotaWindowType;

#[tokio::main]
async fn main() {
    let body = RumRetentionQuotaConfigUpdateRequest::new(RumRetentionQuotaConfigUpdateData::new(
        RumRetentionQuotaConfigUpdateAttributes::new(RumRetentionQuotaMode::CUSTOM).custom(
            RumRetentionQuotaCustomConfig::new(
                "08:00".to_string(),
                "+09:00".to_string(),
                RumRetentionQuotaReachedAction::STOP,
                1000000,
                RumRetentionQuotaWindowType::DAILY,
            ),
        ),
        "cd73a516-a481-4af5-8352-9b577465c77b".to_string(),
        RumRetentionQuotaConfigType::RUM_QUOTA_CONFIG,
    ));
    let configuration = datadog::Configuration::new();
    let api = RUMRetentionQuotasAPI::with_config(configuration);
    let resp = api
        .upsert_rum_quota_config(
            RumRetentionQuotaScopeType::APPLICATION,
            "cd73a516-a481-4af5-8352-9b577465c77b".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 or update a RUM retention quota config returns "OK" response
 */

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

const configuration = client.createConfiguration();
const apiInstance = new v2.RUMRetentionQuotasApi(configuration);

const params: v2.RUMRetentionQuotasApiUpsertRumQuotaConfigRequest = {
  body: {
    data: {
      attributes: {
        custom: {
          dailyResetTime: "08:00",
          dailyResetTimezone: "+09:00",
          quotaReachedAction: "stop",
          sessionLimit: 1000000,
          windowType: "daily",
        },
        mode: "custom",
      },
      id: "cd73a516-a481-4af5-8352-9b577465c77b",
      type: "rum_quota_config",
    },
  },
  scopeType: "application",
  scopeId: "cd73a516-a481-4af5-8352-9b577465c77b",
};

apiInstance
  .upsertRumQuotaConfig(params)
  .then((data: v2.RumRetentionQuotaConfigResponse) => {
    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_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" tsc "example.ts"