Skip to content
Benchmarks

redact-secret · Report

Private API key and HTTP webhook signing key

key- followed by 32 lowercase alphanumeric bytes; Mailgun's current API reference shows the same shape for the account HTTP signing key. Recognized only beside a same-line mailgun keyword.

  • Mailgun
  • Detectors: mailgun-api-key
  • Run 2026-10-07
  • Mode published · redact-secret 0.1.0-beta.14
  • Dossier verdictReady
  • Dossier evidence levelT2 · Tool-corroborated
  • Dossier researched2026-09-25
redact-secret#314 (product PR #680) landed on the product main after 0.1.0-beta.6; the pinned published package predates it. One detector covers both credentials because the provider's current interface gives them one shape.

Research record

From credential-evidence snapshot-2026.10.06.4 · records at 77ce761 · schema 1.8.0. It describes the research on the format, not what any scanner or the product does, and not a support status.
  • Review stateDraft, not reviewed
  • Format revision1 · current
  • ResearchResearched
  • Researched2026-09-25

3 events in the review history: 2 observed, 1 reviewed. Latest: observed on 2026-09-25 by automation, project maintainer. Project-maintained review is not independent validation. The family record at this release.

Format

Provider format research from credential-evidence snapshot-2026.10.06.4 · records at 77ce761 · schema 1.8.0.

What it looks like

Descriptive pattern
^key-[a-z0-9]{32}$

Parts are shown as recorded. Evidence classes belong to the facts below; no class is assigned to a part.

Format facts

Open questions

No open question is recorded for this revision.

Benchmark dossier notes

From the provider dossier, as written. The evidence level above says how well the format is backed; a fact the dossier does not record is not shown.
Shape
key- followed by 32 characters from [a-z0-9]. Mailgun's own PHP SDK test uses a signing key with letters past f, so the body is not hex-only. Case is outside the benchmark claim since 2026-09-24.
Basis
T2. trufflehog (key- + 32 [a-z0-9], no keyword), gitleaks (key- + 32 hex behind a mailgun keyword) and Nosey Parker agree. The one provider example is for the webhook signing key, so one detector covers both roles because the interface gives them one shape.
Issuance
Mailgun help articles returned 403 in the #582 pass and were not read. Not attempted.
Contract in core
detector-families.md (mailgun_api_key, confidence-gated on a mailgun keyword).

In this benchmark

Fixture rows on the current run. Counts are for redact-secret in published · redact-secret 0.1.0-beta.14 mode.
Fixtures
43
Left readable
0
Redacted too much
0
False alarms
0

43 fixtures: 16 expect a redaction, 27 must stay quiet. See every row

redact-secret fixture counts by evidence level
Evidence levelFixturesLeft readableToo muchFalse alarms
T2Tool-corroborated32000
T3Project policy8000
T0Pending review3000

Every scanner on the same fixtures

In run order. Counts are what each scanner recorded on this family's fixtures, whichever rules it has; a scanner with no rule for the family has nothing to report on it.

Counts per scanner on this family's fixtures
ScannerFixturesLeft readableToo muchFalse alarms
flare-redactRuntime library · 1.6.1 · Published npm package · secrets-only (pii, generic_assignment disabled) · JavaScript engine1 rule targets it431600
gitleaksRepository scanner · 8.30.1 · Directory scan · default rules1 rule targets it43011
redact-secretProduct measured here · 0.1.0-beta.14 · Published npm package · default detectors1 detector mapped43000
trufflehogRepository scanner · 3.97.4 · Filesystem scan · verification disabled1 rule targets it43000

Benchmark dossier questions

Things the sources do not settle. They are listed so nobody reads them as settled.
Open caveat
The key- + 32 shape is provider-shown only for the HTTP signing key. Three sources say the current private API key is a prefix-less 32-8-8 hex triplet, so key- may be the older shape. Needs one issued key.

Looks like it, but isn't

Values the dossier records as resembling this credential without being one.
Collisions
the public validation key (pubkey-) and the 8-8 hex key id shape shown in the docs. A 32-8-8 triplet (below) may be the current private key.

Scanner rules for this family

Mapped by hand (reviewed 2026-09-30) from each scanner's pinned rule file, never from what a scanner found on the fixtures.
Peer scanner rules that target this family
ScannerRuleWhat the rule matches
flare-redact · rules 1.6.1mailgun_keykey- + 32 hex
gitleaks · rules 8.30.1mailgun-private-api-tokenmailgun keyword + key- + 32 hex
openredaction · rules 1.1.5MAILGUN_API_KEYkey- + 32 characters
trufflehog · rules 3.97.4mailgunkey- + 32 characters, or a 32-8-8 hex triplet
43 of 43 rows

Fixtures in this family

43 rows, redact-secret's outcome on each. Rows that need a look come first (0), then the rest in corpus order. Choose "Every scanner" to see each scanner's outcome for the same rows.
Fixtures in Private API key and HTTP webhook signing key
FixtureKind and evidenceredact-secret
mailgun-api-key-actions-envmailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-anymail-settingsmailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-compose-envmailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-curl-usermailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-debug-logmailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-docs-template-placeholdermailgun · documentation-placeholderMust not flagT3 · Project policyQuiet
mailgun-api-key-envmailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-heroku-configmailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-http-signing-key-baremailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-http-signing-key-quotedmailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-http-signing-key-unicode-crlfmailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-node-clientmailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-private-api-key-baremailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-private-api-key-quotedmailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-private-api-key-unicode-crlfmailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-settings-jsonmailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-shell-exportmailgun · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
mailgun-api-key-actions-secret-referencemailgun · templated-referenceMust not flagT3 · Project policyQuiet
mailgun-api-key-compose-delimiter-twinmailgun · boundary-violationMust not flagT2 · Tool-corroborated · twinQuiet
mailgun-api-key-compose-long-twinmailgun · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
mailgun-api-key-django-env-referencemailgun · templated-referenceMust not flagT3 · Project policyQuiet
mailgun-api-key-domain-and-message-id-public-idmailgun · public-identifierMust not flagT2 · Tool-corroboratedQuiet
mailgun-api-key-key-types-note-prosemailgun · prose-mentionMust not flagT3 · Project policyQuiet
mailgun-api-key-label-prosemailgun · benign-lookalikeMust not flagT3 · Project policyQuiet
mailgun-api-key-maskmailgun · benign-lookalikeMust not flagT3 · Project policyQuiet
mailgun-api-key-masked-dashboard-placeholdermailgun · documentation-placeholderMust not flagT3 · Project policyQuiet
mailgun-api-key-package-checksum-encoded-valuemailgun · benign-encoded-valueMust not flagT2 · Tool-corroboratedQuiet
mailgun-api-key-prefix-onlymailgun · benign-lookalikeMust not flagT2 · Tool-corroboratedQuiet
mailgun-api-key-private-api-key-alphabet-bare-twinmailgun · unsettled-evidence-inputPending reviewT0 · Pending · twinUnscored
mailgun-api-key-private-api-key-alphabet-quoted-twinmailgun · unsettled-evidence-inputPending reviewT0 · Pending · twinUnscored
mailgun-api-key-private-api-key-alphabet-unicode-crlf-twinmailgun · unsettled-evidence-inputPending reviewT0 · Pending · twinUnscored
mailgun-api-key-private-api-key-bare-twinmailgun · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
mailgun-api-key-private-api-key-prefix-bare-twinmailgun · prefix-near-missMust not flagT2 · Tool-corroborated · twinQuiet
mailgun-api-key-private-api-key-prefix-quoted-twinmailgun · prefix-near-missMust not flagT2 · Tool-corroborated · twinQuiet
mailgun-api-key-private-api-key-prefix-unicode-crlf-twinmailgun · prefix-near-missMust not flagT2 · Tool-corroborated · twinQuiet
mailgun-api-key-private-api-key-quoted-twinmailgun · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
mailgun-api-key-private-api-key-unicode-crlf-twinmailgun · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
mailgun-api-key-public-idmailgun · benign-lookalikeMust not flagT2 · Tool-corroboratedQuiet
mailgun-api-key-public-validation-key-public-idmailgun · public-identifierMust not flagT2 · Tool-corroboratedQuiet
mailgun-api-key-referencemailgun · benign-lookalikeMust not flagT3 · Project policyQuiet
mailgun-api-key-setting-name-near-missmailgun · format-near-missMust not flagT2 · Tool-corroboratedQuiet
mailgun-api-key-short-body-in-log-near-missmailgun · format-near-missMust not flagT2 · Tool-corroboratedQuiet
mailgun-api-key-short-body-in-prose-near-missmailgun · format-near-missMust not flagT2 · Tool-corroboratedQuiet

Sources

Researched 2026-09-25.

Documentation and code

Research log

Other Mailgun families