redact-secret · Report · Detector
LangSmith API keys
Format evidence
- trufflehog 3.97.4
- titus (kingfisher.langchain.1/.2)
- poltergeist
- Reference 1
- Reference 2
- Reference 3
- Reference 4
Graduated arrival contract (#210, registry detector since redact-secret#728; research #219 observed 2026-09-24). LangSmith's own documentation establishes two API-key roles — Personal Access Tokens and workspace/org service keys — their issuance under Settings → API Keys, one-time display and the LANGSMITH_API_KEY / X-API-Key contexts, but states no prefix, length or alphabet. The docs render only masked lsv2_pt_…/lsv2_sk_… forms. The segment grammar lsv2_(pt|sk)_<32 lowercase hex>_<10 lowercase hex> is tool-corroborated: trufflehog 3.97.4's langsmith detector matches exactly that (lowercase only), while Titus/Kingfisher and Poltergeist match the same widths case-insensitively. The provider's own SDK redactor (provider code) is looser — [A-Za-z0-9]{32,} plus any number of _ tails — and is a redaction heuristic, not a format spec. Uppercase hex is therefore neither claimed nor twinned. The legacy ls__ form, LangSmith license keys, SCIM bearer tokens, OAuth access/refresh tokens, the internal X-Service-Key JWT and the uncorroborated deployment keys (sk-*/dep-srv-*) are separate credentials this contract does not claim; none is used as a benign control. gitleaks 8.30.1 has no LangSmith rule, so a gitleaks miss is the expected peer result.
What the run recorded, by group
| Group | Fixtures | Leaked or false alarms | Near-twins | Outcomes | Other scanners, same cell |
|---|---|---|---|---|---|
| Must not flag · Tool-corroborated | 15 | False alarmsat most 20.4%0 of 15 controls flagged | 15 quiet · 0 flagged |
| |
| Must not flag · Project policy | 9 | False alarmsat most 29.9%0 of 9 controls flagged | 9 quiet · 0 flagged |
| |
| Must redact · Tool-corroborated | 18 | Secret spans left readableat most 17.6%0 of 18 spans | Near-twins told apartinsufficient-coverage8 of 8 pairs | 18 redacted · 0 too much · 0 partly exposed · 0 missed |
|
- Fixtures
- 42
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
Fixtures for this detector
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
langsmith-api-key-export-patlangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-langgraph-clilangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-op-readlangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-pat-dotenvlangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-pat-nested-run-metadatalangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-pat-otlp-header-listlangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-pat-profile-jsonlangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-pat-shape-barelangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-pat-shape-quotedlangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-pat-shape-unicode-crlflangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-runbooklangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-service-key-legacy-exportlangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-service-key-python-clientlangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-service-key-workflow-envlangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-service-key-x-api-keylangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-short-tail-twinlangsmith · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
langsmith-api-key-twin-base-cilangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-twin-base-dotenvlangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-twin-base-jsonlangsmith · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langsmith-api-key-env-example-placeholderlangsmith · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
langsmith-api-key-key-roles-doc-proselangsmith · prose-mention | Must not flagT3 · Project policy | Quiet |
langsmith-api-key-label-proselangsmith · benign-lookalike | Must not flagT3 · Project policy | Quiet |
langsmith-api-key-legacy-readme-placeholderlangsmith · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
langsmith-api-key-long-tail-twinlangsmith · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
langsmith-api-key-masklangsmith · benign-lookalike | Must not flagT3 · Project policy | Quiet |
langsmith-api-key-masked-short-key-placeholderlangsmith · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
langsmith-api-key-merged-segments-twinlangsmith · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
langsmith-api-key-missing-tail-near-misslangsmith · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
langsmith-api-key-non-hex-body-twinlangsmith · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
langsmith-api-key-non-hex-tail-twinlangsmith · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
langsmith-api-key-prefix-onlylangsmith · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
langsmith-api-key-prefix-only-grep-near-misslangsmith · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
langsmith-api-key-python-env-lookup-referencelangsmith · templated-reference | Must not flagT3 · Project policy | Quiet |
langsmith-api-key-referencelangsmith · benign-lookalike | Must not flagT3 · Project policy | Quiet |
langsmith-api-key-requirements-hash-encoded-valuelangsmith · benign-encoded-value | Must not flagT2 · Tool-corroborated | Quiet |
langsmith-api-key-role-code-twinlangsmith · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
langsmith-api-key-short-bodylangsmith · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
langsmith-api-key-short-first-segment-twinlangsmith · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
langsmith-api-key-trace-share-link-public-idlangsmith · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
langsmith-api-key-unknown-role-code-twinlangsmith · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
langsmith-api-key-workflow-secret-ref-referencelangsmith · templated-reference | Must not flagT3 · Project policy | Quiet |
langsmith-api-key-workspace-ids-env-public-idlangsmith · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |