Skip to content
Benchmarks

redact-secret · Report · Detector

Datadog API keys

  • 36 fixtures
  • Format evidence: T1 · Provider-documented
  • Run 2026-10-07
  • Mode published · redact-secret 0.1.0-beta.14

Format evidence

  • Provider documentation OpenAPI v1 ApiKey.key minLength/maxLength 32 and apiKeyAuth scheme · observed 2026-09-23 · Datadog's own API reference spec (docs.datadoghq.com /resources/json/full_spec_v1.json, v1 ApiKey schema, generated from DataDog/documentation hugo/data/api/v1/full_spec.yaml) fixes the API key value at exactly 32 characters (minLength 32, maxLength 32) and names the DD-API-KEY header and DD_API_KEY environment variable. The constraint is stated on the v1 key model; the v2 schema states no length. The lowercase-hex alphabet is not provider-stated: the spec's example fits it, and it is corroborated by Datadog-owned code and tools only
  • trufflehog 3.97.4
  • Reference 1

Re-tiered 2026-09-23 (#112, provider evidence redact-secret#644): the key has no prefix, so the provider-stated exact length plus the DD-API-KEY/DD_API_KEY marker is the whole identifying element, and the family stays context-gated (CONTEXT_GATED): a bare 32-character value with no same-line datadog/dd marker has no grammar of its own. Retained limitations: the 32/32 constraint sits on the v1 key model only (v2's FullAPIKeyAttributes.key states no length, though nothing suggests v1 and v2 issue different shapes); the provider states no character class, and Datadog-owned validators (Agent scrubber, privateactionrunner keys.go, dd-trace-java) accept uppercase A-F while datadog-ci's masking regex and every observed value are lowercase, so a hand-uppercased key would be outside the lowercase-hex shape the tools corroborate. The bare 32-character shape, gated on a same-line datadog/dd marker, is corroborated by TruffleHog's datadogapikey detector; the pinned gitleaks datadog-access-token rule instead matches a 40-character body (the application-key length), not this one. The provider-documented marker is a method-level twin limitation: a context twin is reserved for policy-tier contracts, so only the length dimension carries a twin.

What the run recorded, by group

Detector views overlap, so their groups are never summed across detectors. Other scanners are reference values on the same inputs, in run order.
Groups of Datadog API keys fixtures
GroupFixturesLeaked or false alarmsNear-twinsOutcomesOther scanners, same cell
Must not flag · Tool-corroborated15False alarmsat most 20.4%0 of 15 controls flagged15 quiet · 0 flagged
  • flare-redact at most 20.4%
  • gitleaks at most 29.8%
  • trufflehog at most 20.4%
Must not flag · Project policy4False alarmsinsufficient-evidence0 of 4 controls flagged4 quiet · 0 flagged
  • flare-redact insufficient-evidence
  • gitleaks insufficient-evidence
  • trufflehog insufficient-evidence
Project policy · Project policy17Secret spans left readableat most 18.4%0 of 17 spansNear-twins told apartat least 74.1%11 of 11 pairs17 redacted · 0 too much · 0 partly exposed · 0 missed
  • flare-redact at most 100.0%
  • gitleaks at most 27.0%
  • trufflehog at most 82.7%
36 of 36 rows
Fixtures
36
Left readable
0
Redacted too much
0
False alarms
0

Fixtures for this detector

36 fixtures. Choose "Every scanner" to see each scanner's outcome for the same rows.
Fixtures in Datadog API keys
FixtureKind and evidenceredact-secret
datadog-api-key-actions-envdatadog · documented-format-literalProject policyT3 · Project policyRedacted
datadog-api-key-api-key-listing-public-iddatadog · public-identifierMust not flagT2 · Tool-corroboratedQuiet
datadog-api-key-bomdatadog · multibyte-text-offsetsProject policyT3 · Project policyRedacted
datadog-api-key-datadog-ci-inlinedatadog · documented-format-literalProject policyT3 · Project policyRedacted
datadog-api-key-dd-api-key-headerdatadog · documented-format-literalProject policyT3 · Project policyRedacted
datadog-api-key-docker-run-agentdatadog · documented-format-literalProject policyT3 · Project policyRedacted
datadog-api-key-env-marker-baredatadog · documented-format-literalProject policyT3 · Project policyRedacted
datadog-api-key-env-marker-quoteddatadog · documented-format-literalProject policyT3 · Project policyRedacted
datadog-api-key-env-marker-unicode-crlfdatadog · documented-format-literalProject policyT3 · Project policyRedacted
datadog-api-key-export-dd-api-keydatadog · documented-format-literalProject policyT3 · Project policyRedacted
datadog-api-key-jsondatadog · structured-text-valueProject policyT3 · Project policyRedacted
datadog-api-key-markdowndatadog · markdown-and-comment-valueProject policyT3 · Project policyRedacted
datadog-api-key-no-final-newlinedatadog · value-at-input-edgesProject policyT3 · Project policyRedacted
datadog-api-key-pythondatadog · source-code-string-literalProject policyT3 · Project policyRedacted
datadog-api-key-python-environ-defaultdatadog · documented-format-literalProject policyT3 · Project policyRedacted
datadog-api-key-single-quotesdatadog · quoted-value-extentProject policyT3 · Project policyRedacted
datadog-api-key-tomldatadog · structured-text-valueProject policyT3 · Project policyRedacted
datadog-api-key-yamldatadog · structured-text-valueProject policyT3 · Project policyRedacted
datadog-api-key-agent-note-prosedatadog · prose-mentionMust not flagT3 · Project policyQuiet
datadog-api-key-audit-fingerprint-encoded-valuedatadog · benign-encoded-valueMust not flagT2 · Tool-corroboratedQuiet
datadog-api-key-bom-twindatadog · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
datadog-api-key-env-marker-bare-twindatadog · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
datadog-api-key-env-marker-quoted-twindatadog · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
datadog-api-key-env-marker-unicode-crlf-twindatadog · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
datadog-api-key-json-twindatadog · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
datadog-api-key-label-prosedatadog · benign-lookalikeMust not flagT3 · Project policyQuiet
datadog-api-key-markdown-twindatadog · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
datadog-api-key-maskdatadog · benign-lookalikeMust not flagT3 · Project policyQuiet
datadog-api-key-missing-markerdatadog · benign-lookalikeMust not flagT2 · Tool-corroboratedQuiet
datadog-api-key-no-final-newline-twindatadog · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
datadog-api-key-python-twindatadog · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
datadog-api-key-referencedatadog · benign-lookalikeMust not flagT3 · Project policyQuiet
datadog-api-key-single-quotes-twindatadog · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
datadog-api-key-toml-twindatadog · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
datadog-api-key-truncated-in-prose-near-missdatadog · format-near-missMust not flagT2 · Tool-corroboratedQuiet
datadog-api-key-yaml-twindatadog · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet