Skip to main content

findings

Creates, updates, deletes, gets or lists a findings resource.

Overview

Namefindings
TypeResource
Iddatadog.security.findings

Fields

The following fields are returned by SELECT queries:

NameDatatypeDescription
idstringThe unique ID for this finding. (example: ZGVmLTAwcC1pZXJ-aS0wZjhjNjMyZDNmMzRlZTgzNw==)
attributesobjectThe JSON:API attributes of the detailed finding.
typestringThe JSON:API type for findings that have the message and resource configuration. (default: detailed_finding, example: detailed_finding)

Methods

The following methods are available for this resource:

NameAccessible byRequired ParamsOptional ParamsDescription
get_findingselectfinding_id, regionsnapshot_timestampReturns a single finding with message and resource configuration.
list_findingsselectregionpage[limit], snapshot_timestamp, page[cursor], filter[tags], filter[evaluation_changed_at], filter[muted], filter[rule_id], filter[rule_name], filter[resource_type], filter[@resource_id], filter[discovery_timestamp], filter[evaluation], filter[status], filter[vulnerability_type], detailed_findingsGet a list of findings. These include both misconfigurations and identity risks.

Note: To filter and return only identity risks, add the following query parameter: ?filter[tags]=dd_rule_type:ciem

### Filtering

Filters can be applied by appending query parameters to the URL.

- Using a single filter: ?filter[attribute_key]=attribute_value
- Chaining filters: ?filter[attribute_key]=attribute_value&filter[attribute_key]=attribute_value...
- Filtering on tags: ?filter[tags]=tag_key:tag_value&filter[tags]=tag_key_2:tag_value_2

Here, attribute_key can be any of the filter keys described further below.

Query parameters of type integer support comparison operators (>, >=, <, <=). This is particularly useful when filtering by evaluation_changed_at or resource_discovery_timestamp. For example: ?filter[evaluation_changed_at]=>20123123121.

You can also use the negation operator on strings. For example, use filter[resource_type]=-aws* to filter for any non-AWS resources.

The operator must come after the equal sign. For example, to filter with the >= operator, add the operator after the equal sign: filter[evaluation_changed_at]=>=1678809373257.

Query parameters must be only among the documented ones and with values of correct types. Duplicated query parameters (e.g. filter[status]=low&filter[status]=info) are not allowed.

### Additional extension fields

Additional extension fields are available for some findings.

The data is available when you include the query parameter ?detailed_findings=true in the request.

The following fields are available for findings:
- external_id: The resource external ID related to the finding.
- description: The description and remediation steps for the finding.
- datadog_link: The Datadog relative link for the finding.
- ip_addresses: The list of private IP addresses for the resource related to the finding.

### Response

The response includes an array of finding objects, pagination metadata, and a count of items that match the query.

Each finding object contains the following:

- The finding ID that can be used in a GetFinding request to retrieve the full finding details.
- Core attributes, including status, evaluation, high-level resource details, muted state, and rule details.
- evaluation_changed_at and resource_discovery_date time stamps.
- An array of associated tags.
mute_findingsexecregion, dataMute or unmute findings.

Parameters

Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.

NameDatatypeDescription
finding_idstringThe ID of the finding.
regionstring(default: datadoghq.com)
detailed_findingsbooleanReturn additional fields for some findings. (example: [true])
filter[@resource_id]stringReturn only findings for the specified resource id.
filter[discovery_timestamp]stringReturn findings that were found on a specified date (Unix ms) or date range (using comparison operators). (example: >=1678721573794)
filter[evaluation]stringReturn only pass or fail findings.
filter[evaluation_changed_at]stringReturn findings that have changed from pass to fail or vice versa on a specified date (Unix ms) or date range (using comparison operators). (example: >=1678721573794)
filter[muted]booleanSet to true to return findings that are muted. Set to false to return unmuted findings.
filter[resource_type]stringReturn only findings for the specified resource type.
filter[rule_id]stringReturn findings for the specified rule ID.
filter[rule_name]stringReturn findings for the specified rule.
filter[status]stringReturn only findings with the specified status.
filter[tags]stringReturn findings that have these associated tags (repeatable). (example: filter[tags]=cloud_provider:aws&filter[tags]=aws_account:999999999999)
filter[vulnerability_type]arrayReturn findings that match the selected vulnerability types (repeatable). (example: [misconfiguration])
page[cursor]stringReturn the next page of findings pointed to by the cursor. (example: eyJhZnRlciI6IkFRQUFBWWJiaEJXQS1OY1dqUUFBQUFCQldXSmlhRUpYUVVGQlJFSktkbTlDTUdaWFRVbDNRVUUiLCJ2YWx1ZXMiOlsiY3JpdGljYWwiXX0=)
page[limit]integer (int64)Limit the number of findings returned. Must be <= 1000. (example: 50)
snapshot_timestampinteger (int64)Return findings for a given snapshot of time (Unix ms). (example: 1678721573794)

SELECT examples

Returns a single finding with message and resource configuration.

SELECT
id,
attributes,
type
FROM datadog.security.findings
WHERE finding_id = '{{ finding_id }}' -- required
AND region = '{{ region }}' -- required
AND snapshot_timestamp = '{{ snapshot_timestamp }}'
;

Lifecycle Methods

Mute or unmute findings.

EXEC datadog.security.findings.mute_findings 
@region='{{ region }}' --required
@@json=
'{
"data": "{{ data }}"
}'
;