Skip to content
Benchmarks

redact-secret · Report

API key

SG. prefixed API key (full-access and restricted-access permission scopes share this format).

  • Twilio SendGrid
  • Detectors: sendgrid-token
  • Run 2026-10-07
  • Mode published · redact-secret 0.1.0-beta.14
  • Dossier verdictReady
  • Dossier evidence levelT1 · Provider-documented
  • Dossier researched2026-09-20

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-20

1 event in the review history: 1 reviewed. Latest: reviewed on 2026-09-20 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
^SG\.[A-Za-z0-9_-]{22}\.[A-Za-z0-9_-]{43}$

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

Format facts

  • Provider documented · provider-source · current · observed 2026-09-20

    fixed 69-character key length: the total key is documented as always 69 characters and never shorter; the SG. prefix, the dot-separated id/secret segments, the 22/43 character split between them and the alphabet are tool-corroborated, not this citation

  • Tool corroborated · tool-corroboration · current · observed 2026-09-20

    Pinned scanner rules are consistent with the contract grammar (2 artifacts: gitleaks 8.30.1; trufflehog 3.97.4).

  • Provider documented · dossier-research · current · observed 2026-09-20

    Legacy dossier research (verdict ready, tier T1) cited 1 source; the dossier does not attribute sources to individual properties.

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
SG. prefixed API key (full-access and restricted-access permission scopes share this format).
Basis
ready, T1 per the shipped sendgrid-token contract in the benchmarks assessment. Its provider source is a SendGrid support article stating a fixed total key length of 69 characters (added 2026-09-20 by benchmarks PR #34, closing #33). The SG. prefix, the dot-separated 22 and 43 character segments and the alphabet are tool-corroborated, not stated by that page.
Contract in core
detector-families.md.

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
167
Left readable
30
Redacted too much
0
False alarms
0

167 fixtures: 58 expect a redaction, 40 must stay quiet, 69 record project policy. See every row

redact-secret fixture counts by evidence level
Evidence levelFixturesLeft readableToo muchFalse alarms
T1Provider-documented47100
T2Tool-corroborated36900
T3Project policy752000
T0Pending review9000

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 it16742116
gitleaksRepository scanner · 8.30.1 · Directory scan · default rules1 rule targets it1673200
redact-secretProduct measured here · 0.1.0-beta.14 · Published npm package · default detectors1 detector mapped1673000
trufflehogRepository scanner · 3.97.4 · Filesystem scan · verification disabled1 rule targets it167100016

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.1sendgrid_keySG. + 16-32 + . + 16-64 characters
gitleaks · rules 8.30.1sendgrid-api-tokenSG. + 66 characters
openredaction · rules 1.1.5SENDGRID_API_KEYSG. + 22 + . + 43 characters
trufflehog · rules 3.97.4sendgridSG. + 20-24 + . + 39-50 characters
167 of 167 rows

Fixtures in this family

167 rows, redact-secret's outcome on each. Rows that need a look come first (30), then the rest in corpus order. Choose "Every scanner" to see each scanner's outcome for the same rows.
Fixtures in API key
FixtureKind and evidenceredact-secret
sendgrid-key-base64-standard-padded-in-envbase64-hex-representation-projections · credential-in-base64-or-hex-formProject policyT3 · Project policyLeft readable
sendgrid-key-base64-standard-padded-in-jsonbase64-hex-representation-projections · credential-in-base64-or-hex-formProject policyT3 · Project policyLeft readable
sendgrid-key-base64-standard-padded-in-urlbase64-hex-representation-projections · credential-in-base64-or-hex-formProject policyT3 · Project policyLeft readable
sendgrid-key-base64-standard-padded-three-layers-in-envbase64-hex-representation-projections · credential-in-nested-encoding-layersProject policyT3 · Project policyLeft readable
sendgrid-key-base64-url-safe-unpadded-of-base64-standard-padded-in-envbase64-hex-representation-projections · credential-in-nested-encoding-layersProject policyT3 · Project policyLeft readable
sendgrid-key-base64-url-safe-unpadded-of-hex-upper-of-base64-standard-padded-in-jsonbase64-hex-representation-projections · credential-in-nested-encoding-layersProject policyT3 · Project policyLeft readable
sendgrid-key-hex-lower-in-envbase64-hex-representation-projections · credential-in-base64-or-hex-formProject policyT3 · Project policyLeft readable
sendgrid-key-hex-lower-in-urlbase64-hex-representation-projections · credential-in-base64-or-hex-formProject policyT3 · Project policyLeft readable
sendgrid-key-hex-lower-of-base64-standard-padded-in-envbase64-hex-representation-projections · credential-in-nested-encoding-layersProject policyT3 · Project policyLeft readable
sendgrid-key-hex-lower-of-hex-lower-in-envbase64-hex-representation-projections · credential-in-nested-encoding-layersProject policyT3 · Project policyLeft readable
sendgrid-key-hex-mixed-in-envbase64-hex-representation-projections · credential-in-base64-or-hex-formProject policyT3 · Project policyLeft readable
sendgrid-key-hex-upper-in-envbase64-hex-representation-projections · credential-in-base64-or-hex-formProject policyT3 · Project policyLeft readable
sendgrid-key-hex-upper-in-jsonbase64-hex-representation-projections · credential-in-base64-or-hex-formProject policyT3 · Project policyLeft readable
get-url-variables-valuegraphql-requests-and-responses-authored · graphql-variables-map-value-and-literal-beside-variable-referencesMust redactT1 · Provider-documentedLeft readable
key-split-across-javascript-added-literalsline-break-and-fragment-authored · credential-split-across-concatenated-string-literalsMust redactT2 · Tool-corroboratedLeft readable
key-split-across-python-adjacent-literalsline-break-and-fragment-authored · credential-split-across-concatenated-string-literalsMust redactT2 · Tool-corroboratedLeft readable
key-split-after-prefix-by-shell-continuationline-break-and-fragment-authored · credential-split-by-shell-backslash-newlineMust redactT2 · Tool-corroboratedLeft readable
key-split-before-last-character-by-shell-continuationline-break-and-fragment-authored · credential-split-by-shell-backslash-newlineMust redactT2 · Tool-corroboratedLeft readable
key-split-by-backslash-crlf-continuationline-break-and-fragment-authored · credential-split-by-backslash-crlf-continuationProject policyT3 · Project policyLeft readable
key-split-by-backslash-newline-in-single-quotesline-break-and-fragment-authored · credential-split-by-backslash-newline-inside-single-quotesProject policyT3 · Project policyLeft readable
key-split-by-double-quoted-shell-continuationline-break-and-fragment-authored · credential-split-by-shell-backslash-newlineMust redactT2 · Tool-corroboratedLeft readable
key-split-by-javascript-literal-continuationline-break-and-fragment-authored · credential-split-by-string-literal-line-continuationMust redactT2 · Tool-corroboratedLeft readable
key-split-by-literal-crlfline-break-and-fragment-authored · credential-split-by-literal-line-break-in-plain-textProject policyT3 · Project policyLeft readable
key-split-by-literal-line-feedline-break-and-fragment-authored · credential-split-by-literal-line-break-in-plain-textProject policyT3 · Project policyLeft readable
key-split-by-python-literal-continuationline-break-and-fragment-authored · credential-split-by-string-literal-line-continuationMust redactT2 · Tool-corroboratedLeft readable
key-split-by-unquoted-shell-continuationline-break-and-fragment-authored · credential-split-by-shell-backslash-newlineMust redactT2 · Tool-corroboratedLeft readable
key-split-in-three-javascript-added-literalsline-break-and-fragment-authored · credential-split-across-concatenated-string-literalsMust redactT2 · Tool-corroboratedLeft readable
key-with-literal-backslash-n-in-log-lineline-break-and-fragment-authored · credential-with-escaped-line-break-textProject policyT3 · Project policyLeft readable
key-wrapped-in-markdown-code-spanline-break-and-fragment-authored · credential-split-by-markdown-paragraph-line-endingProject policyT3 · Project policyLeft readable
key-wrapped-in-markdown-paragraphline-break-and-fragment-authored · credential-split-by-markdown-paragraph-line-endingProject policyT3 · Project policyLeft readable
sendgrid-key-basebase64-hex-representation-bases · sendgrid-key-in-provider-named-fieldsMust redactT1 · Provider-documentedRedacted
sendgrid-api-key-base-acontext-and-large-input-bases-authored · environment-assignmentProject policyT3 · Project policyRedacted
sendgrid-api-key-base-bcontext-and-large-input-bases-authored · environment-assignmentProject policyT3 · Project policyRedacted
sendgrid-api-key-bare-valuecontext-carrier-projections-generated · value-at-input-edgesProject policyT3 · Project policyRedacted
sendgrid-api-key-bearer-headercontext-carrier-projections-generated · partial-span-leakageProject policyT3 · Project policyRedacted
sendgrid-api-key-bom-prefixcontext-carrier-projections-generated · multibyte-text-offsetsProject policyT3 · Project policyRedacted
sendgrid-api-key-crlf-linescontext-carrier-projections-generated · crlf-line-endingsProject policyT3 · Project policyRedacted
sendgrid-api-key-emoji-prefixcontext-carrier-projections-generated · multibyte-text-offsetsProject policyT3 · Project policyRedacted
sendgrid-api-key-json-fieldcontext-carrier-projections-generated · structured-text-valueProject policyT3 · Project policyRedacted
sendgrid-api-key-korean-text-prefixcontext-carrier-projections-generated · multibyte-text-offsetsProject policyT3 · Project policyRedacted
sendgrid-api-key-log-linecontext-carrier-projections-generated · environment-assignmentProject policyT3 · Project policyRedacted
sendgrid-api-key-markdown-code-spancontext-carrier-projections-generated · markdown-and-comment-valueProject policyT3 · Project policyRedacted
sendgrid-api-key-nbsp-before-valuecontext-carrier-projections-generated · multibyte-text-offsetsProject policyT3 · Project policyRedacted
sendgrid-api-key-shell-export-quotedcontext-carrier-projections-generated · quoted-value-extentProject policyT3 · Project policyRedacted
sendgrid-api-key-url-querycontext-carrier-projections-generated · partial-span-leakageProject policyT3 · Project policyRedacted
sendgrid-api-key-xml-elementcontext-carrier-projections-generated · structured-text-valueProject policyT3 · Project policyRedacted
sendgrid-api-key-yaml-scalarcontext-carrier-projections-generated · structured-text-valueProject policyT3 · Project policyRedacted
post-body-inline-literalgraphql-requests-and-responses-authored · graphql-variables-map-value-and-literal-beside-variable-referencesMust redactT1 · Provider-documentedRedacted
post-body-variables-valuegraphql-requests-and-responses-authored · graphql-variables-map-value-and-literal-beside-variable-referencesMust redactT1 · Provider-documentedRedacted
request-then-full-echo-in-error-messagegraphql-requests-and-responses-authored · graphql-error-response-echo-of-supplied-secretMust redactT1 · Provider-documentedRedacted

Sources

Researched 2026-09-20.

Documentation and code

  • support.sendgrid.com/hc/en-us/articles/44146758703387-Can-I-Use-a-Reduced-Shorter-API-Key-Size-in-SendGrid