Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Apply Firecrawl security best practices for API key management and webhook verification. Use when securing API keys, implementing webhook signature validation, or auditing Firecrawl security configuration. Trigger with phrases like "firecrawl security", "firecrawl secrets", "secure firecrawl", "firecrawl API key security", "firecrawl webhook signature".
.claude/skills/jeremylongshore-firecrawl-security-basics/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 64% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 229% | 0% |
| case-01 | ✓→✓ | = Same ✓ | -31% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 32% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 30% | 0% |
Protect both directions of the integration: credentials and requests sent to Firecrawl, and hostile or sensitive content returned from target sites.
Cloud uses Bearer API keys; enterprise controls can restrict key endpoints/formats and source IPs and can add threat protection and SIEM evidence. Webhooks use X-Firecrawl-Signature with sha256=hex over the raw body. Cache, ZDR, lockdown, headers/actions, profiles, screenshots, and self-hosting have distinct data and threat boundaries.
For authenticated Cloud operations, inject FIRECRAWL_API_KEY from an approved secret manager. REST requests use Authorization: Bearer with the key. Never print, commit, transmit, or place a key in a URL. Keyless access is suitable only where the current documentation explicitly allows it and the workload accepts its limits; production workflows should make identity and team ownership explicit.
Use Read, Glob, and Grep to inspect code, configuration, tests, and evidence. Use Write/Edit only for approved implementation or documentation changes. Do not call Firecrawl, rotate keys, change account settings, scrape a target, or deploy merely because this skill was invoked.
Require security/data approval before authenticated scraping, custom headers, browser profiles/actions, sensitive retention, restriction changes, self-host exposure, or adding external providers.
Return a threat model, identity and secret inventory, target and request controls, webhook verification design, content trust boundary, retention decision, self-host posture, tests, and residual risks.
Read official Firecrawl evidence before relying on an endpoint, SDK method, plan limit, price, retention option, or self-hosted release.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 33,578 | 24,017 | -28% | 1 | 1 | 0% | 5,393 | 3,698 | -31% | 0 | 0 | — |
case-02 | pass→pass | 15,749 | 11,828 | -25% | 1 | 1 | 0% | 2,855 | 3,755 | +32% | 0 | 0 | — |
case-03 | pass→pass | 8,370 | 2,159 | -74% | 1 | 1 | 0% | 1,313 | 1,704 | +30% | 0 | 0 | — |
case-04 | pass→pass | 2,813 | 2,460 | -13% | 1 | 1 | 0% | 502 | 1,745 | +248% | 0 | 0 | — |
case-05 | fail→fail | 13,017 | 123,692 | +850% | 1 | 1 | 0% | 1,924 | 3,223 | +68% | 0 | 0 | — |
case-06 | pass→pass | 10,535 | 5,417 | -49% | 1 | 1 | 0% | 1,462 | 2,156 | +47% | 0 | 0 | — |
case-07 | pass→pass | 13,656 | 9,520 | -30% | 1 | 1 | 0% | 2,692 | 3,331 | +24% | 0 | 0 | — |
case-08 | fail→pass | 8,753 | 5,767 | -34% | 1 | 1 | 0% | 1,503 | 2,458 | +64% | 0 | 0 | — |
case-09 | pass→pass | 13,156 | 3,596 | -73% | 1 | 1 | 0% | 2,171 | 1,993 | -8% | 0 | 0 | — |
case-10 | pass→pass | 6,173 | 3,190 | -48% | 1 | 1 | 0% | 1,193 | 1,907 | +60% | 0 | 0 | — |
case-11 | pass→pass | 12,463 | 6,755 | -46% | 1 | 1 | 0% | 2,359 | 2,536 | +8% | 0 | 0 | — |
case-12 | fail→fail | 13,727 | 9,000 | -34% | 1 | 1 | 0% | 2,481 | 3,000 | +21% | 0 | 0 | — |
case-13 | pass→pass | 4,938 | 2,614 | -47% | 1 | 1 | 0% | 896 | 1,894 | +111% | 0 | 0 | — |
case-14 | pass→pass | 3,833 | 2,743 | -28% | 1 | 1 | 0% | 607 | 1,837 | +203% | 0 | 0 | — |
case-15 | pass→pass | 6,226 | 5,868 | -6% | 1 | 1 | 0% | 1,081 | 2,409 | +123% | 0 | 0 | — |
case-16 | pass→pass | 7,789 | 5,090 | -35% | 1 | 1 | 0% | 1,211 | 2,206 | +82% | 0 | 0 | — |
case-17 | fail→pass | 3,940 | 4,379 | +11% | 1 | 1 | 0% | 656 | 2,157 | +229% | 0 | 0 | — |
case-18 | pass→pass | 9,486 | 2,497 | -74% | 1 | 1 | 0% | 1,562 | 1,703 | +9% | 0 | 0 | — |
case-19 | pass→pass | 6,909 | 3,605 | -48% | 1 | 1 | 0% | 1,275 | 1,995 | +56% | 0 | 0 | — |
case-20 | pass→pass | 16,968 | 15,369 | -9% | 1 | 1 | 0% | 2,618 | 3,908 | +49% | 0 | 0 | — |
case-21 | pass→pass | 11,387 | 8,815 | -23% | 1 | 1 | 0% | 2,104 | 2,900 | +38% | 0 | 0 | — |
case-22 | pass→pass | 9,292 | 7,965 | -14% | 1 | 1 | 0% | 1,822 | 2,880 | +58% | 0 | 0 | — |
case-23 | pass→pass | 11,997 | 10,094 | -16% | 1 | 1 | 0% | 2,232 | 3,295 | +48% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +9 percentage points is the difference between those two pass rates over the 23 comparable cases.
The publisher has shipped newer versions since this run, so these numbers describe v1, not the version currently listed.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.