redact-secret · Report · Detector
Mailgun API and HTTP signing keys
Format evidence
Mailgun's own "Create a key" API reference (documentation.mailgun.com/docs/mailgun/api-reference/send/mailgun/keys/post-v1-keys, observed 2026-09-23) shows the created secret only as the placeholder "api-key-be-careful" and states no prefix, length or alphabet. Both pinned tools agree on a literal key- and a 32-byte body: gitleaks 8.30.1's mailgun-private-api-token rule (keyword- and assignment-gated) pins key-[a-f0-9]{32}, trufflehog 3.97.4's mailgun "Key-MailGun Token" pattern `\b(key-[a-z0-9]{32})\b` the wider lowercase-alphanumeric body with no keyword. This contract adopts trufflehog's wider alphabet, the reading the product froze from an independently observed real key whose body carries non-hex letters (redact-secret#314, PR #680), so a hex-only-alphabet twin is not constructible and gitleaks is an expected false negative on any body byte in g–z. The product's module doc cites Mailgun's account-management reference (GET/POST /v5/accounts/http_signing_key) as showing the identical key- + 32-byte shape for the HTTP webhook signing key; that page could not be re-fetched from this environment (its rendered reference returns 404 to a plain fetch), so the signing-key positive here rests on the product's citation plus the same tool corroboration, and no providerSource or twinSource is claimed. The superseded 32-8-8 hex triplet both tools still call a Mailgun signing key (gitleaks mailgun-signing-key; trufflehog "Hex MailGun Token") and trufflehog's 72-byte "Original MailGun Token" are known unsupported legacy variants with no contract. pubkey- (the public validation key gitleaks's mailgun-pub-key rule targets) is documented public and is the family's public-identifier control. Every positive carries the same-line mailgun keyword the product's Medium-confidence gate and gitleaks's rule require; a keyword-less key is an accepted product false negative not fixtured here, per the mailchimp-api-key precedent. Since 2026-09-24 (docs/decisions/2026-09-24-stop-asserting-provider-undecided-format-properties.md) whether a key- body may carry an uppercase letter is outside the claim: gitleaks and Nosey Parker are case-insensitive, trufflehog is not, no Mailgun source decides it, and no scored fixture asserts it either way.
What the run recorded, by group
| Group | Fixtures | Leaked or false alarms | Near-twins | Outcomes | Other scanners, same cell |
|---|---|---|---|---|---|
| Must not flag · Tool-corroborated | 16 | False alarmsat most 19.4%0 of 16 controls flagged | 16 quiet · 0 flagged |
| |
| Must not flag · Project policy | 8 | False alarmsat most 32.4%0 of 8 controls flagged | 8 quiet · 0 flagged |
| |
| Must redact · Tool-corroborated | 16 | Secret spans left readableat most 19.4%0 of 16 spans | Near-twins told apartat least 67.6%8 of 8 pairs | 16 redacted · 0 too much · 0 partly exposed · 0 missed |
|
| Pending review | 3 | UnscoredNot scoredInspect only: never scored until evidence exists | Not scored |
- Fixtures
- 43
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
Fixtures for this detector
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
mailgun-api-key-actions-envmailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-anymail-settingsmailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-compose-envmailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-curl-usermailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-debug-logmailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-docs-template-placeholdermailgun · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
mailgun-api-key-envmailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-heroku-configmailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-http-signing-key-baremailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-http-signing-key-quotedmailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-http-signing-key-unicode-crlfmailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-node-clientmailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-private-api-key-baremailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-private-api-key-quotedmailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-private-api-key-unicode-crlfmailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-settings-jsonmailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-shell-exportmailgun · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
mailgun-api-key-actions-secret-referencemailgun · templated-reference | Must not flagT3 · Project policy | Quiet |
mailgun-api-key-compose-delimiter-twinmailgun · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
mailgun-api-key-compose-long-twinmailgun · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
mailgun-api-key-django-env-referencemailgun · templated-reference | Must not flagT3 · Project policy | Quiet |
mailgun-api-key-domain-and-message-id-public-idmailgun · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
mailgun-api-key-key-types-note-prosemailgun · prose-mention | Must not flagT3 · Project policy | Quiet |
mailgun-api-key-label-prosemailgun · benign-lookalike | Must not flagT3 · Project policy | Quiet |
mailgun-api-key-maskmailgun · benign-lookalike | Must not flagT3 · Project policy | Quiet |
mailgun-api-key-masked-dashboard-placeholdermailgun · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
mailgun-api-key-package-checksum-encoded-valuemailgun · benign-encoded-value | Must not flagT2 · Tool-corroborated | Quiet |
mailgun-api-key-prefix-onlymailgun · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
mailgun-api-key-private-api-key-alphabet-bare-twinmailgun · unsettled-evidence-input | Pending reviewT0 · Pending · twin | Unscored |
mailgun-api-key-private-api-key-alphabet-quoted-twinmailgun · unsettled-evidence-input | Pending reviewT0 · Pending · twin | Unscored |
mailgun-api-key-private-api-key-alphabet-unicode-crlf-twinmailgun · unsettled-evidence-input | Pending reviewT0 · Pending · twin | Unscored |
mailgun-api-key-private-api-key-bare-twinmailgun · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
mailgun-api-key-private-api-key-prefix-bare-twinmailgun · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
mailgun-api-key-private-api-key-prefix-quoted-twinmailgun · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
mailgun-api-key-private-api-key-prefix-unicode-crlf-twinmailgun · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
mailgun-api-key-private-api-key-quoted-twinmailgun · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
mailgun-api-key-private-api-key-unicode-crlf-twinmailgun · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
mailgun-api-key-public-idmailgun · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
mailgun-api-key-public-validation-key-public-idmailgun · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
mailgun-api-key-referencemailgun · benign-lookalike | Must not flagT3 · Project policy | Quiet |
mailgun-api-key-setting-name-near-missmailgun · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
mailgun-api-key-short-body-in-log-near-missmailgun · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
mailgun-api-key-short-body-in-prose-near-missmailgun · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |