Retrieve a single tag rule by ID. Optionally include the rule’s current compliance
score via the include=score query parameter. Rules belonging to other organizations
cannot be retrieved.
This endpoint requires
any
of the following permissions:
telemetry_rules_read
metrics_read
Arguments
Path Parameters
Name
Type
Description
rule_id [required]
string
The unique identifier of the tag rule.
Query Strings
Name
Type
Description
include
enum
Comma-separated list of related resources to include alongside the rule. Currently the only supported value is score. Allowed enum values: score
ts_start
integer
Start of the time window used for compliance score computation, as a Unix timestamp in milliseconds.
ts_end
integer
End of the time window used for compliance score computation, as a Unix timestamp in milliseconds. Must be in the past and greater than ts_start.
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"}]}
"""
Get a tag rule returns "OK" response
"""fromdatadog_api_clientimportApiClient,Configurationfromdatadog_api_client.v2.api.tag_rules_apiimportTagRulesApiconfiguration=Configuration()configuration.unstable_operations["get_tag_rule"]=TruewithApiClient(configuration)asapi_client:api_instance=TagRulesApi(api_client)response=api_instance.get_tag_rule(rule_id="rule_id",)print(response)
# Get a tag rule returns "OK" responserequire"datadog_api_client"DatadogAPIClient.configuredo|config|config.unstable_operations["v2.get_tag_rule".to_sym]=trueendapi_instance=DatadogAPIClient::V2::TagRulesAPI.newpapi_instance.get_tag_rule("rule_id")
// Get 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(){ctx:=datadog.NewDefaultContext(context.Background())configuration:=datadog.NewConfiguration()configuration.SetUnstableOperationEnabled("v2.GetTagRule",true)apiClient:=datadog.NewAPIClient(configuration)api:=datadogV2.NewTagRulesApi(apiClient)resp,r,err:=api.GetTagRule(ctx,"rule_id",*datadogV2.NewGetTagRuleOptionalParameters())iferr!=nil{fmt.Fprintf(os.Stderr,"Error when calling `TagRulesApi.GetTagRule`: %v\n",err)fmt.Fprintf(os.Stderr,"Full HTTP response: %v\n",r)}responseContent,_:=json.MarshalIndent(resp,""," ")fmt.Fprintf(os.Stdout,"Response from `TagRulesApi.GetTagRule`:\n%s\n",responseContent)}
// Get a tag rule returns "OK" responseimportcom.datadog.api.client.ApiClient;importcom.datadog.api.client.ApiException;importcom.datadog.api.client.v2.api.TagRulesApi;importcom.datadog.api.client.v2.model.TagRuleResponse;publicclassExample{publicstaticvoidmain(String[]args){ApiClientdefaultClient=ApiClient.getDefaultApiClient();defaultClient.setUnstableOperationEnabled("v2.getTagRule",true);TagRulesApiapiInstance=newTagRulesApi(defaultClient);try{TagRuleResponseresult=apiInstance.getTagRule("123");System.out.println(result);}catch(ApiExceptione){System.err.println("Exception when calling TagRulesApi#getTagRule");System.err.println("Status code: "+e.getCode());System.err.println("Reason: "+e.getResponseBody());System.err.println("Response headers: "+e.getResponseHeaders());e.printStackTrace();}}}
// Get a tag rule returns "OK" response
usedatadog_api_client::datadog;usedatadog_api_client::datadogV2::api_tag_rules::GetTagRuleOptionalParams;usedatadog_api_client::datadogV2::api_tag_rules::TagRulesAPI;#[tokio::main]asyncfnmain(){letmutconfiguration=datadog::Configuration::new();configuration.set_unstable_operation_enabled("v2.GetTagRule",true);letapi=TagRulesAPI::with_config(configuration);letresp=api.get_tag_rule("rule_id".to_string(),GetTagRuleOptionalParams::default()).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
/**
* Get a tag rule returns "OK" response
*/import{client,v2}from"@datadog/datadog-api-client";constconfiguration=client.createConfiguration();configuration.unstableOperations["v2.getTagRule"]=true;constapiInstance=newv2.TagRulesApi(configuration);constparams: v2.TagRulesApiGetTagRuleRequest={ruleId:"rule_id",};apiInstance.getTagRule(params).then((data: v2.TagRuleResponse)=>{console.log("API called successfully. Returned data: "+JSON.stringify(data));}).catch((error: any)=>console.error(error));