redact-secret · Report
API key (fc-)
fc- + 32 lowercase hex, a dashless random UUIDv4 (version 4, variant 8/9/a/b); legacy dashed-UUID keys are not attributable.
Research record
3 events in the review history: 2 observed, 1 reviewed. Latest: observed on 2026-09-28 by automation, project maintainer. Project-maintained review is not independent validation. The family record at this release.
Format
What it looks like
- Descriptive pattern
^fc-[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$
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-28parseApi.ts strips fc- and re-inserts the 8-4-4-4-12 dashes (last changed 2026-05-15, re-checked 2026-09-28); api_keys.key is uuid().defaultRandom(): the docs and SDK document the fc- prefix; provider server code (ruling R1) makes the body a dashless lowercase random UUIDv4 (32 hex, version nibble 4, variant 8/9/a/b), 35 in all
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0: apps/api/src/lib/parseApi.tsprovider-documentation · last read 2026-09-28 · latest outcome read · supports the docs and SDK document the fc- prefix; provider server code (ruling R1) makes the body a dashless lowercase random UUIDv4 (32 hex, version nibble 4, variant 8/9/a/b), 35 in all
Provider documented ·
field-prefix· current · observed 2026-09-28prefix: fc-
- docs.firecrawl.dev/api-reference/v2-introductionprovider-documentation · last read 2026-09-28 · latest outcome read · supports prefix: fc-
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0: apps/js-sdk/firecrawl/src/v2/client.tsprovider-documentation · last read 2026-09-28 · latest outcome read · supports startsWith('fc-') · #L154
Provider documented ·
field-body· current · observed 2026-09-28body: exactly 32 lowercase hex: a dashless UUID
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0: apps/api/src/db/schema/public.tsprovider-sdk-source · last read 2026-09-28 · latest outcome read · supports uuid("key").defaultRandom() · #L68-L72
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0: apps/api/src/lib/parseApi.tsprovider-documentation · last read 2026-09-28 · latest outcome read · supports body: exactly 32 lowercase hex: a dashless UUID
- github.com/redact-secret/redact-secret/issues/860issue-or-discussion · last read 2026-09-29 · latest outcome read · supports R1 · #issuecomment-5852413851
Provider documented ·
field-uuid-v4-nibbles· current · observed 2026-09-28uuid-v4-nibbles: body byte 12 is 4 and body byte 16 is one of 8 9 a b (The validator would accept versions 1–8; issued keys are v4, so other nibbles back twins.)
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0: apps/api/src/controllers/auth.tsprovider-sdk-source · last read 2026-09-28 · latest outcome read · supports UUID_RE · #L757-L795
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0: apps/api/src/db/schema/public.tsprovider-sdk-source · last read 2026-09-28 · latest outcome read · supports a Postgres random UUIDv4 · #L68-L72
Provider documented ·
field-separators· current · observed 2026-09-28separators: none after the prefix; no checksum
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0: apps/api/src/lib/parseApi.tsprovider-documentation · last read 2026-09-28 · latest outcome read · supports separators: none after the prefix; no checksum
Unresolved ·
field-boundary· current · observed 2026-09-28boundary: a key glued to an identifier on either side ([A-Za-z0-9_-]) is not claimed; CSS and calendar classes such as fc-daygrid-day are glued or fail the body
- redact-secret/redact-secret @ 270faf84dc12f6a4a4cf61fe3ffab7aadc4f7262: docs/audits/evidence/860/firecrawl.mdprovider-sdk-source · last read 2026-09-28 · latest outcome read · supports implementation notes
Provider documented ·
field-legacy-keys· current · observed 2026-09-28legacy-keys: bare dashed UUID keys from before 2024-04-16 are still accepted by parseApi (Not attributable to Firecrawl: excluded, and never a benign control either (a dashed UUID is authored only as a request id).)
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0: apps/api/src/lib/parseApi.tsprovider-documentation · last read 2026-09-28 · latest outcome read · supports legacy passthrough
Unresolved ·
field-other-credentials· current · observed 2026-09-28other-credentials: fco_ OAuth access tokens and fcmcp_ MCP delegated credentials have no documented fixed grammar (Not authored either way.)
- redact-secret/redact-secret @ 270faf84dc12f6a4a4cf61fe3ffab7aadc4f7262: docs/audits/evidence/860/firecrawl.mdprovider-sdk-source · last read 2026-09-28 · latest outcome read · supports excluded shapes
Tool corroborated ·
field-peer-lag· current · observed 2026-09-28peer-lag: no rule in trufflehog 3.97.4 or gitleaks 8.30.1
- gitleaks/gitleaks @ v8.30.1: config/gitleaks.tomlscanner-rule-source · last read 2026-10-04 · latest outcome read · supports no firecrawl rule
- trufflesecurity/trufflehog @ v3.97.4: pkg/detectorsscanner-rule-source · last read 2026-09-29 · latest outcome read · supports no firecrawl detector directory
Unresolved ·
listed-references· current · observed 2026-09-28The legacy contract lists 12 references without stating which property each supports.
- docs.firecrawl.dev/api-reference/v2-introductionprovider-documentation · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0: apps/api/src/controllers/auth.tsprovider-sdk-source · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract · #L757-L795
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0other · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0: apps/js-sdk/firecrawl/src/v2/client.tsprovider-documentation · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract · #L154
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0: apps/api/src/db/schema/public.tsprovider-sdk-source · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract · #L68-L72
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0: apps/api/src/lib/parseApi.tsprovider-documentation · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
- github.com/redact-secret/redact-secret/issues/908issue-or-discussion · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
- redact-secret/redact-secret @ 270faf84dc12f6a4a4cf61fe3ffab7aadc4f7262: docs/audits/evidence/860/firecrawl.mdprovider-sdk-source · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
- redact-secret/redact-secret @ 270faf84dc12f6a4a4cf61fe3ffab7aadc4f7262: docs/audits/evidence/860/README.mdproject-research-note · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
- github.com/redact-secret/redact-secret/issues/860issue-or-discussion · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #issuecomment-5852413851
- github.com/redact-secret/redact-secret/issues/860issue-or-discussion · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- github.com/redact-secret/redact-secret-benchmarks/issues/434issue-or-discussion · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
Provider documented ·
dossier-research· current · observed 2026-09-28Legacy dossier research (verdict ready, tier T1) cited 2 sources; the dossier does not attribute sources to individual properties.
- firecrawl/firecrawl @ f75a8d40b103129f56f947418bfa06a04a9ad5b0other · last read 2026-09-28 · latest outcome read · supports Cited by the legacy dossier research for this family
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/firecrawl.mdproject-research-note · last read 2026-09-28 · latest outcome read · supports Final research evidence recorded by the legacy dossier
Provider documented ·
taxonomy-sources· current · observed 2026-09-28The legacy taxonomy lists 2 sources for this family. The taxonomy records no date; the dossier researchedAt is used as the observed-at date.
- docs.firecrawl.dev/api-reference/v2-introductionprovider-documentation · last read 2026-09-28 · latest outcome read · supports Listed as a source for this family in the legacy taxonomy
- redact-secret/redact-secret @ 270faf84dc12f6a4a4cf61fe3ffab7aadc4f7262: docs/audits/evidence/860/firecrawl.mdprovider-sdk-source · last read 2026-09-28 · 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
fc-, then exactly 32 lowercase hex characters (35 in total): a dashless UUIDv4, so hex character 13 is4and character 17 is one of8 9 a b. No separators after the prefix, no checksum. - Basis
- prefix T1 from provider docs and SDK/MCP code (
startsWith('fc-')). Body T1 under R1 from provider server code: the key normalizer stripsfc-and re-inserts dashes "based on the uuidv4 format", theapi_keys.keycolumn is a Postgres random UUID default, and the auth controller rejects anything failing a UUID check. Re-checked 2026-09-28. - Issuance
- not attempted; optional check of one dashboard key.
- Contract in core
- detector-families.md.
In this benchmark
- Fixtures
- 48
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
48 fixtures: 19 expect a redaction, 29 must stay quiet. See every row
| Evidence level | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| T1Provider-documented | 19 | 0 | 0 | 0 |
| T2Tool-corroborated | 20 | 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 | 48 | 16 | 3 | 0 |
| gitleaksRepository scanner · 8.30.1 · Directory scan · default rulesNo rule maps to it | 48 | 9 | 0 | 2 |
| redact-secretProduct measured here · 0.1.0-beta.14 · Published npm package · default detectors1 detector mapped | 48 | 0 | 0 | 0 |
| trufflehogRepository scanner · 3.97.4 · Filesystem scan · verification disabledNo rule maps to it | 48 | 19 | 0 | 0 |
Looks like it, but isn't
- Collisions
fc-is short and appears in CSS and calendar class names (fc-daygrid-day), which fail the body. A bare dashed UUID is not attributable and stays out.
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 |
|---|---|---|
firecrawl-api-key-actions-envfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-bare-prosefirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-bearer-headerfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-chat-pastefirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-compose-envfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-curl-bearerfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-digest-encoded-valuefirecrawl · benign-encoded-value | Must not flagT2 · Tool-corroborated | Quiet |
firecrawl-api-key-dotenvfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-exportfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-go-httpfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-js-clientfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-json-api-keyfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-json-tokenfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-key-shape-barefirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-key-shape-quotedfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-key-shape-unicode-crlffirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-mcp-envfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-python-appfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-sdk-kwargfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-uppercase-prefix-twinfirecrawl · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-x-api-key-headerfirecrawl · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
firecrawl-api-key-actions-secret-referencefirecrawl · templated-reference | Must not flagT3 · Project policy | Quiet |
firecrawl-api-key-body-31-twinfirecrawl · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-body-33-twinfirecrawl · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-css-classes-near-missfirecrawl · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
firecrawl-api-key-dashed-uuid-twinfirecrawl · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-docs-ctor-placeholderfirecrawl · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
firecrawl-api-key-env-reference-referencefirecrawl · templated-reference | Must not flagT3 · Project policy | Quiet |
firecrawl-api-key-g-in-body-twinfirecrawl · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-key-guidance-prosefirecrawl · prose-mention | Must not flagT3 · Project policy | Quiet |
firecrawl-api-key-label-prosefirecrawl · benign-lookalike | Must not flagT3 · Project policy | Quiet |
firecrawl-api-key-leading-glue-twinfirecrawl · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-maskfirecrawl · benign-lookalike | Must not flagT3 · Project policy | Quiet |
firecrawl-api-key-md5-cache-key-near-missfirecrawl · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
firecrawl-api-key-prefix-onlyfirecrawl · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
firecrawl-api-key-referencefirecrawl · benign-lookalike | Must not flagT3 · Project policy | Quiet |
firecrawl-api-key-request-uuid-public-idfirecrawl · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
firecrawl-api-key-short-bodyfirecrawl · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
firecrawl-api-key-short-samples-placeholderfirecrawl · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
firecrawl-api-key-trailing-glue-twinfirecrawl · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-underscore-prefix-twinfirecrawl · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-uppercase-hex-twinfirecrawl · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-variant-7-twinfirecrawl · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-variant-c-twinfirecrawl · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-version-0-twinfirecrawl · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-version-1-twinfirecrawl · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-version-7-twinfirecrawl · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
firecrawl-api-key-your-api-key-placeholderfirecrawl · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
Sources
Documentation and code
- docs.firecrawl.dev/api-reference/v2-introduction
- github.com/redact-secret/redact-secret/blob/270faf84dc12f6a4a4cf61fe3ffab7aadc4f7262/docs/audits/evidence/860/firecrawl.md
- github.com/firecrawl/firecrawl/tree/f75a8d40b103129f56f947418bfa06a04a9ad5b0
Research log
- redact-secret/redact-secret#860Research issue
- redact-secret/redact-secret#908Research issue
- redact-secret/redact-secret-benchmarks#434Research issue
- Final evidence, pinned to a commit/redact-secret/redact-secret/blob/8b6a5fde52ecb4dfce13f09c7a947062d21483c7/docs/audits/evidence/860/firecrawl.md