Update one or more attributes of an existing tag rule. Only the fields supplied in the
request body are modified; omitted fields retain their current values. The rule’s
source cannot be changed after creation.
This endpoint requires the telemetry_rules_create permission.
Mutable attributes of a tag rule. Each field is optional; omitting a field leaves its
current value unchanged. The source of a rule cannot be changed.
enabled
boolean
Whether the rule is currently enforced.
name
string
Human-readable name for the tag rule.
negated
boolean
When true, the rule matches tag values that do NOT match any of the supplied patterns.
required
boolean
When true, telemetry without this tag is treated as a violation.
rule_type
enum
How the rule is enforced. blocking rejects telemetry that violates the rule.
surfacing only highlights non-compliant telemetry without blocking it.
Allowed enum values: blocking,surfacing
scope
string
The scope the rule applies within.
tag_key
string
The tag key that the rule governs.
tag_value_patterns
[string]
One or more patterns that valid values for the tag key must match.
id [required]
string
The unique identifier of the tag rule being updated.
type [required]
enum
JSON:API resource type for a tag rule.
Allowed enum values: tag_rule
The RFC 3339 timestamp at which the rule was created.
created_by [required]
string
The identifier of the user who created the rule.
deleted_at
date-time
The RFC 3339 timestamp at which the rule was soft-deleted. null if the rule has not been deleted. Only present when include_deleted=true is requested.
deleted_by
string
The identifier of the user who soft-deleted the rule. null if the rule has not been deleted.
enabled [required]
boolean
Whether the rule is currently enforced.
modified_at [required]
date-time
The RFC 3339 timestamp at which the rule was last modified.
modified_by [required]
string
The identifier of the user who last modified the rule.
name [required]
string
Human-readable name for the tag rule.
negated [required]
boolean
When true, the rule matches tag values that do NOT match any of the supplied patterns.
required [required]
boolean
When true, telemetry without this tag is treated as a violation.
rule_type [required]
enum
How the rule is enforced. blocking rejects telemetry that violates the rule.
surfacing only highlights non-compliant telemetry without blocking it.
Allowed enum values: blocking,surfacing
scope [required]
string
The scope the rule applies within.
source [required]
enum
The telemetry source that a tag rule applies to.
Allowed enum values: logs,spans,metrics,rum,feed
tag_key [required]
string
The tag key that the rule governs.
tag_value_patterns [required]
[string]
The patterns that valid values for the tag key must match.
version [required]
int64
A monotonically increasing version counter that is incremented on each update.
id [required]
string
The unique identifier of the tag rule.
relationships
object
Related resources for a tag rule. Only present when the corresponding include query parameter is supplied.
score
object
A relationship to the compliance score resource for this rule.
data [required]
object
Identifier of the related compliance score resource.
id [required]
string
The unique identifier of the related compliance score resource.
type [required]
enum
JSON:API resource type for a tag rule compliance score.
Allowed enum values: tag_rule_score
type [required]
enum
JSON:API resource type for a tag rule.
Allowed enum values: tag_rule
included
[object]
Related resources fetched alongside the primary tag rules. Populated when an include query parameter is supplied.
attributes [required]
object
Attributes of a tag rule compliance score.
score [required]
double
The compliance score for the rule over the requested time window, as a percentage
between 0 and 100. null indicates that no relevant telemetry was found.
ts_end [required]
int64
End of the time window the score was computed over, as a Unix timestamp in milliseconds.
ts_start [required]
int64
Start of the time window the score was computed over, as a Unix timestamp in milliseconds.
version [required]
int64
The version of the tag rule that the score was computed against.
id [required]
string
The unique identifier of the compliance score resource.
type [required]
enum
JSON:API resource type for a tag rule compliance score.
Allowed enum values: tag_rule_score
{"data":{"attributes":{"created_at":"2026-05-21T22:11:06.108696Z","created_by":"test-user","deleted_at":"2019-09-19T10:00:00.000Z","deleted_by":"string","enabled":true,"modified_at":"2026-05-21T22:11:06.108696Z","modified_by":"test-user","name":"Service tag must be one of api or web","negated":false,"required":true,"rule_type":"surfacing","scope":"env","source":"logs","tag_key":"service","tag_value_patterns":["api","web"],"version":1},"id":"123","relationships":{"score":{"data":{"id":"123-v1-1779315066097-1779401466097","type":"tag_rule_score"}}},"type":"tag_rule"},"included":[{"attributes":{"score":80,"ts_end":1779401466097,"ts_start":1779315066097,"version":1},"id":"123-v1-1779315066097-1779401466097","type":"tag_rule_score"}]}
## default
#
# Path parameters exportrule_id="123" # Curl command curl-XPATCH"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/governance/tag_rules/${rule_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": {
"enabled": true,
"name": "Service tag must be one of api, web, or worker"
},
"id": "123",
"type": "tag_rule"
}
}EOF
"""
Update a tag rule returns "OK" response
"""fromdatadog_api_clientimportApiClient,Configurationfromdatadog_api_client.v2.api.tag_rules_apiimportTagRulesApifromdatadog_api_client.v2.model.tag_rule_resource_typeimportTagRuleResourceTypefromdatadog_api_client.v2.model.tag_rule_typeimportTagRuleTypefromdatadog_api_client.v2.model.tag_rule_update_attributesimportTagRuleUpdateAttributesfromdatadog_api_client.v2.model.tag_rule_update_dataimportTagRuleUpdateDatafromdatadog_api_client.v2.model.tag_rule_update_requestimportTagRuleUpdateRequestbody=TagRuleUpdateRequest(data=TagRuleUpdateData(attributes=TagRuleUpdateAttributes(rule_type=TagRuleType.SURFACING,tag_value_patterns=[],),id="123",type=TagRuleResourceType.TAG_RULE,),)configuration=Configuration()configuration.unstable_operations["update_tag_rule"]=TruewithApiClient(configuration)asapi_client:api_instance=TagRulesApi(api_client)response=api_instance.update_tag_rule(rule_id="rule_id",body=body)print(response)
# Update a tag rule returns "OK" responserequire"datadog_api_client"DatadogAPIClient.configuredo|config|config.unstable_operations["v2.update_tag_rule".to_sym]=trueendapi_instance=DatadogAPIClient::V2::TagRulesAPI.newbody=DatadogAPIClient::V2::TagRuleUpdateRequest.new({data:DatadogAPIClient::V2::TagRuleUpdateData.new({attributes:DatadogAPIClient::V2::TagRuleUpdateAttributes.new({rule_type:DatadogAPIClient::V2::TagRuleType::SURFACING,tag_value_patterns:[],}),id:"123",type:DatadogAPIClient::V2::TagRuleResourceType::TAG_RULE,}),})papi_instance.update_tag_rule("rule_id",body)
// Update a tag rule returns "OK" responsepackagemainimport("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")funcmain(){body:=datadogV2.TagRuleUpdateRequest{Data:datadogV2.TagRuleUpdateData{Attributes:&datadogV2.TagRuleUpdateAttributes{RuleType:datadogV2.TAGRULETYPE_SURFACING.Ptr(),TagValuePatterns:[]string{},},Id:"123",Type:datadogV2.TAGRULERESOURCETYPE_TAG_RULE,},}ctx:=datadog.NewDefaultContext(context.Background())configuration:=datadog.NewConfiguration()configuration.SetUnstableOperationEnabled("v2.UpdateTagRule",true)apiClient:=datadog.NewAPIClient(configuration)api:=datadogV2.NewTagRulesApi(apiClient)resp,r,err:=api.UpdateTagRule(ctx,"rule_id",body)iferr!=nil{fmt.Fprintf(os.Stderr,"Error when calling `TagRulesApi.UpdateTagRule`: %v\n",err)fmt.Fprintf(os.Stderr,"Full HTTP response: %v\n",r)}responseContent,_:=json.MarshalIndent(resp,""," ")fmt.Fprintf(os.Stdout,"Response from `TagRulesApi.UpdateTagRule`:\n%s\n",responseContent)}
// Update a tag rule returns "OK" response
usedatadog_api_client::datadog;usedatadog_api_client::datadogV2::api_tag_rules::TagRulesAPI;usedatadog_api_client::datadogV2::model::TagRuleResourceType;usedatadog_api_client::datadogV2::model::TagRuleType;usedatadog_api_client::datadogV2::model::TagRuleUpdateAttributes;usedatadog_api_client::datadogV2::model::TagRuleUpdateData;usedatadog_api_client::datadogV2::model::TagRuleUpdateRequest;#[tokio::main]asyncfnmain(){letbody=TagRuleUpdateRequest::new(TagRuleUpdateData::new("123".to_string(),TagRuleResourceType::TAG_RULE).attributes(TagRuleUpdateAttributes::new().rule_type(TagRuleType::SURFACING).tag_value_patterns(vec![]),),);letmutconfiguration=datadog::Configuration::new();configuration.set_unstable_operation_enabled("v2.UpdateTagRule",true);letapi=TagRulesAPI::with_config(configuration);letresp=api.update_tag_rule("rule_id".to_string(),body).await;ifletOk(value)=resp{println!("{:#?}",value);}else{println!("{:#?}",resp.unwrap_err());}}
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com"DD_API_KEY="<DD_API_KEY>"DD_APP_KEY="<DD_APP_KEY>"cargo run
/**
* Update a tag rule returns "OK" response
*/import{client,v2}from"@datadog/datadog-api-client";constconfiguration=client.createConfiguration();configuration.unstableOperations["v2.updateTagRule"]=true;constapiInstance=newv2.TagRulesApi(configuration);constparams: v2.TagRulesApiUpdateTagRuleRequest={body:{data:{attributes:{ruleType:"surfacing",tagValuePatterns:[],},id:"123",type:"tag_rule",},},ruleId:"rule_id",};apiInstance.updateTagRule(params).then((data: v2.TagRuleResponse)=>{console.log("API called successfully. Returned data: "+JSON.stringify(data));}).catch((error: any)=>console.error(error));