redact-secret · Report
API key
fw_-prefixed API key; 22- and 24-character bodies are observed, not documented.
Research record
3 events in the review history: 2 observed, 1 reviewed. Latest: observed on 2026-09-24 by automation, project maintainer. Project-maintained review is not independent validation. The family record at this release.
Format
What it looks like
- Descriptive pattern
^fw_(?:[A-Za-z0-9]{22}|[A-Za-z0-9]{24})$
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-24fw_-prefixed API key: the provider documents only the fw_ prefix (examples are truncated); no body length or alphabet is stated
- docs.fireworks.ai/tools-sdks/python-client/the-tutorialprovider-documentation · last read 2026-09-24 · latest outcome read · supports the provider documents only the fw_ prefix (examples are truncated); no body length or alphabet is stated
Provider documented ·
field-prefix· current · observed 2026-09-24prefix: fw_ (lowercase, underscore)
- docs.fireworks.ai/tools-sdks/python-client/the-tutorialprovider-documentation · last read 2026-09-24 · latest outcome read · supports prefix: fw_ (lowercase, underscore)
- docs.fireworks.ai/llms-full.txtprovider-documentation · last read 2026-09-24 · latest outcome read · supports fw_... in the credential table and 401 guidance
Provider documented ·
field-prefix-validation· current · observed 2026-09-24prefix validation: provider tooling accepts a key only if it starts with fw_ or fpk_ (case-sensitive)
- fw-ai/fireconnect @ main: packages/setup-cli/lib/keys/key-type.mjsprovider-sdk-source · last read 2026-09-24 · latest outcome read · supports prefix validation: provider tooling accepts a key only if it starts with fw_ or fpk_ (case-sensitive)
Unresolved ·
field-body-length· current · observed 2026-09-24body length: 22 or 24 characters (25 or 27 total) (Separate observed hypotheses; not a negative boundary.)
- github.com/redact-secret/redact-secret-benchmarks/issues/227project-research-note · last read 2026-09-24 · latest outcome read · supports aggregate prefix/length/charset counts of 9 public values; no value retained
Unresolved ·
field-body-alphabet· current · observed 2026-09-24body alphabet: [A-Za-z0-9]; observed values avoided 0/O/I/l (base58-consistent) (The base58 reading is an inference; positives stay base58-consistent and no twin mutates the alphabet.)
- github.com/redact-secret/redact-secret-benchmarks/issues/227project-research-note · last read 2026-09-24 · latest outcome read · supports body alphabet: [A-Za-z0-9]; observed values avoided 0/O/I/l (base58-consistent)
Unresolved ·
field-fpk-fire-pass-key· current · observed 2026-09-24fpk_ Fire Pass key: documented second prefix under the same env var; body grammar unknown
- docs.fireworks.ai/firepassprovider-documentation · last read 2026-09-24 · latest outcome read · supports fpk_ Fire Pass key: documented second prefix under the same env var; body grammar unknown
Unresolved ·
field-unprefixed-legacy-key· current · observed 2026-09-24unprefixed legacy key: possible older unprefixed format (GitGuardian "Not prefixed")
- docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/fireworks_ai_api_keyscanner-rule-source · last read 2026-09-24 · latest outcome read · supports unprefixed legacy key: possible older unprefixed format (GitGuardian "Not prefixed")
Unresolved ·
listed-references· current · observed 2026-09-24The legacy contract lists 2 references without stating which property each supports.
- docs.fireworks.ai/firepassprovider-documentation · last read 2026-09-24 · latest outcome read · supports Listed as a reference by the legacy contract
- github.com/fw-ai/fireconnectother · last read 2026-09-24 · latest outcome read · supports Listed as a reference by the legacy contract
Provider documented ·
dossier-research· current · observed 2026-09-24Legacy dossier research (verdict ready, tier T1) cited 3 sources; the dossier does not attribute sources to individual properties.
- docs.fireworks.ai/api-reference/create-api-keyprovider-documentation · last read 2026-09-24 · latest outcome read · supports Cited by the legacy dossier research for this family
- docs.fireworks.ai/tools-sdks/python-client/the-tutorialprovider-documentation · last read 2026-09-24 · latest outcome read · supports Cited by the legacy dossier research for this family
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/726/README.mdproject-research-note · last read 2026-09-27 · latest outcome read · supports Final research evidence recorded by the legacy dossier
Provider documented ·
taxonomy-sources· current · observed 2026-09-24The legacy taxonomy lists 1 source for this family. The taxonomy records no date; the dossier researchedAt is used as the observed-at date.
- docs.fireworks.ai/tools-sdks/python-client/the-tutorialprovider-documentation · last read 2026-09-24 · latest outcome read · supports Listed as a source for this family in the legacy taxonomy
Open questions
No open question is recorded for this revision.
Benchmark dossier notes
- Shape
- prefix
fw_followed by 22 or 24 letters and digits (25 or 27 in total). Provider docs write the key asfw_...and never state a length or alphabet. Of nine distinct public non-placeholder values, six had 22-character and three 24-character bodies; none contained0,O,Iorl, which is consistent with base58 but not documented. Community rules that require 30 or more characters would miss all nine. - Basis
- T1 for the prefix (provider docs and provider code). Widths and alphabet: maintainer observation report only. No TruffleHog, gitleaks, GitHub, betterleaks or Kingfisher rule exists for this prefix.
- Issuance
- not attempted. Console or
firectl, with a short expiry; several keys would show whether the length varies (checklist in benchmarks#227). - Contract in core
- detector-families.md (frozen in the #726 record: the two widths are positive hypotheses, so no other width is a negative rule beyond the exact match).
In this benchmark
- Fixtures
- 32
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
32 fixtures: 11 expect a redaction, 21 must stay quiet. See every row
| Evidence level | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| T1Provider-documented | 11 | 0 | 0 | 0 |
| T2Tool-corroborated | 12 | 0 | 0 | 0 |
| T3Project policy | 9 | 0 | 0 | 0 |
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.
| Scanner | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| flare-redactRuntime library · 1.6.1 · Published npm package · secrets-only (pii, generic_assignment disabled) · JavaScript engineNo rule maps to it | 32 | 10 | 1 | 0 |
| gitleaksRepository scanner · 8.30.1 · Directory scan · default rulesNo rule maps to it | 32 | 4 | 0 | 1 |
| redact-secretProduct measured here · 0.1.0-beta.14 · Published npm package · default detectors1 detector mapped | 32 | 0 | 0 | 0 |
| trufflehogRepository scanner · 3.97.4 · Filesystem scan · verification disabledNo rule maps to it | 32 | 11 | 0 | 0 |
Benchmark dossier questions
- Open caveat
- T1 on the fw_ prefix only; the 22 and 24 character widths and the alphabet come from a nine-sample maintainer observation and are provisional positive hypotheses (checklist in benchmarks#227).
Looks like it, but isn't
- Collisions
fpk_Fire Pass keys shareFIREWORKS_API_KEYand are a separate live prefix; unprefixed older keys may exist (GitGuardian says "not prefixed"). Non-secret:keyId, theprefixdisplay value, account ids, model paths (accounts/fireworks/models/...), service-account emails, andfw_id,fw_version,fw_specstyle identifiers. A keychain reference written byfireconnectis not a key.
Scanner rules for this family
No peer rule maps to this family
None of the reviewed peer scanners has a rule that can match a credential of this family.
None mapped
Fixtures in this family
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
fireworks-ai-api-key-bearer-curlfireworks-ai · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
fireworks-ai-api-key-dotenvfireworks-ai · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
fireworks-ai-api-key-firectl-flagfireworks-ai · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
fireworks-ai-api-key-key-shape-barefireworks-ai · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
fireworks-ai-api-key-key-shape-quotedfireworks-ai · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
fireworks-ai-api-key-key-shape-unicode-crlffireworks-ai · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
fireworks-ai-api-key-letter-prefix-twinfireworks-ai · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
fireworks-ai-api-key-litellm-exportfireworks-ai · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
fireworks-ai-api-key-litellm-yamlfireworks-ai · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
fireworks-ai-api-key-python-clientfireworks-ai · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
fireworks-ai-api-key-vercel-ai-sdkfireworks-ai · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
fireworks-ai-api-key-x-fireworks-headerfireworks-ai · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
fireworks-ai-api-key-account-and-model-public-idfireworks-ai · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
fireworks-ai-api-key-base64-account-encoded-valuefireworks-ai · benign-encoded-value | Must not flagT2 · Tool-corroborated | Quiet |
fireworks-ai-api-key-console-prefix-placeholderfireworks-ai · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
fireworks-ai-api-key-docs-placeholder-placeholderfireworks-ai · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
fireworks-ai-api-key-ellipsis-placeholderfireworks-ai · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
fireworks-ai-api-key-firmware-version-near-missfireworks-ai · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
fireworks-ai-api-key-hyphen-delimiter-twinfireworks-ai · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
fireworks-ai-api-key-key-guidance-prosefireworks-ai · prose-mention | Must not flagT3 · Project policy | Quiet |
fireworks-ai-api-key-keychain-reference-referencefireworks-ai · templated-reference | Must not flagT3 · Project policy | Quiet |
fireworks-ai-api-key-label-prosefireworks-ai · benign-lookalike | Must not flagT3 · Project policy | Quiet |
fireworks-ai-api-key-maskfireworks-ai · benign-lookalike | Must not flagT3 · Project policy | Quiet |
fireworks-ai-api-key-missing-delimiter-twinfireworks-ai · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
fireworks-ai-api-key-prefix-onlyfireworks-ai · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
fireworks-ai-api-key-referencefireworks-ai · benign-lookalike | Must not flagT3 · Project policy | Quiet |
fireworks-ai-api-key-sdk-environ-referencefireworks-ai · templated-reference | Must not flagT3 · Project policy | Quiet |
fireworks-ai-api-key-service-account-public-idfireworks-ai · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
fireworks-ai-api-key-short-bodyfireworks-ai · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
fireworks-ai-api-key-transposed-prefix-twinfireworks-ai · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
fireworks-ai-api-key-uppercase-prefix-twinfireworks-ai · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
fireworks-ai-api-key-workflow-ids-near-missfireworks-ai · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
Sources
Documentation and code
- docs.fireworks.ai/tools-sdks/python-client/the-tutorial
- docs.fireworks.ai/api-reference/create-api-key
Research log
- redact-secret/redact-secret-benchmarks#227Research issue
- redact-secret/redact-secret#726Research issue
- redact-secret/redact-secret#730Research issue
- Final evidence, pinned to a commit/redact-secret/redact-secret/blob/8b6a5fde52ecb4dfce13f09c7a947062d21483c7/docs/audits/evidence/726/README.md