Skip to content
Back to skills

Firecrawl Prod Checklist

ASecurity

'Execute Firecrawl production deployment checklist and rollback procedures. Use when deploying Firecrawl integrations to production, preparing for launch, or implementing go-live procedures. Trigger with phrases like \"firecrawl production\", \"deploy firecrawl\", \"firecrawl go-live\", \"firecrawl launch checklist\". '

  • 3 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added September 12, 2026
ai-agentstypescriptgobashgitapisecurity

Works with

  • api
  • mcp

Security analysis

A96/100
  • mediumUses curl or wget to download content

Pro shows the line behind each finding and how to fix it

Scanned September 12, 2026

npx -y skills add thedixitjain/the-mega-skill-library --skill firecrawl-prod-checklist --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Firecrawl Prod Checklist?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Firecrawl Prod Checklist
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thedixitjain-firecrawl-prod-checklist/badge)](https://www.skillsdirectory.com/skills/thedixitjain-firecrawl-prod-checklist)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: firecrawl-prod-checklist
description: "'Execute Firecrawl production deployment checklist and rollback procedures. Use when deploying Firecrawl integrations to production, preparing for launch, or implementing go-live procedures. Trigger with phrases like \"firecrawl production\", \"deploy firecrawl\", \"firecrawl go-live\", \"firecrawl launch checklist\". '"
allowed-tools: "Read, Bash(kubectl:*), Bash(curl:*), Grep"
category: mcp-and-integrations
source_repo: jeremylongshore/claude-code-plugins-plus-skills
source_path: "skills/.curated/firecrawl-prod-checklist/SKILL.md"
source_url: https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/HEAD/skills/.curated/firecrawl-prod-checklist/SKILL.md
---

# Firecrawl Production Checklist

## Overview

Pre-deployment validation checklist for applications using Firecrawl's scrape, crawl, map, and extract APIs. Covers credential management, crawl safety limits, error handling, monitoring, and rollback.

## Prerequisites

- Staging environment tested and passing
- Production API key from [firecrawl.dev/app](https://firecrawl.dev/app)
- Monitoring infrastructure ready

## Pre-Deployment Checklist

### Credentials & Security

- [ ] Production `FIRECRAWL_API_KEY` in secure vault (not in code or .env)
- [ ] Key starts with `fc-` and is scoped to production
- [ ] Different API keys for dev/staging/production
- [ ] `.env` files in `.gitignore`
- [ ] Webhook secrets stored securely
- [ ] Git history scanned for leaked keys

### Crawl Safety

- [ ] All `crawlUrl` calls have `limit` parameter set
- [ ] `maxDepth` configured to prevent unbounded crawling
- [ ] `includePaths` / `excludePaths` filters applied where appropriate
- [ ] Credit budget tracking implemented (daily limit alerts)
- [ ] No hardcoded URLs in production code

### Error Handling

- [ ] 429 rate limit handling with exponential backoff
- [ ] 402 credit exhaustion handled gracefully (no crash)
- [ ] 401 auth failure logged and alerted
- [ ] Async crawl jobs have timeout with deadline
- [ ] Fallback from crawl to individual scrape on failure
- [ ] Empty markdown detection (JS rendering issues)

### Monitoring & Alerting

- [ ] Scrape success/failure rate tracked
- [ ] Credit consumption monitored
- [ ] Crawl job completion rate tracked
- [ ] Alert on credit balance below threshold
- [ ] Alert on error rate > 5%
- [ ] Webhook delivery failures logged

## Instructions

### Step 1: Verify API Connectivity

```bash
set -euo pipefail
# Test production key
curl -s https://api.firecrawl.dev/v1/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY_PROD" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","formats":["markdown"]}' | jq '.success'

# Check credit balance
curl -s https://api.firecrawl.dev/v1/team/credits \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY_PROD" | jq .
```

### Step 2: Health Check Endpoint

```typescript
import FirecrawlApp from "@mendable/firecrawl-js";

const firecrawl = new FirecrawlApp({
  apiKey: process.env.FIRECRAWL_API_KEY!,
});

export async function healthCheck() {
  const start = Date.now();
  try {
    const result = await firecrawl.scrapeUrl("https://example.com", {
      formats: ["markdown"],
    });
    return {
      status: result.success ? "healthy" : "degraded",
      latencyMs: Date.now() - start,
      hasContent: (result.markdown?.length || 0) > 0,
    };
  } catch (error: any) {
    return {
      status: "unhealthy",
      latencyMs: Date.now() - start,
      error: error.statusCode || error.message,
    };
  }
}
```

### Step 3: Production-Safe Crawl Wrapper

```typescript
export async function productionCrawl(url: string, opts: {
  maxPages: number;
  paths?: string[];
  timeout?: number;
}) {
  // Hard credit safety — never exceed configured limit
  const limit = Math.min(opts.maxPages, 500);

  const job = await firecrawl.asyncCrawlUrl(url, {
    limit,
    maxDepth: 3,
    includePaths: opts.paths,
    scrapeOptions: { formats: ["markdown"], onlyMainContent: true },
  });

  // Poll with timeout
  const deadline = Date.now() + (opts.timeout || 600000);
  let pollInterval = 2000;
  let status = await firecrawl.checkCrawlStatus(job.id);

  while (status.status === "scraping" && Date.now() < deadline) {
    await new Promise(r => setTimeout(r, pollInterval));
    pollInterval = Math.min(pollInterval * 1.5, 30000);
    status = await firecrawl.checkCrawlStatus(job.id);
  }

  if (status.status !== "completed") {
    throw new Error(`Crawl ${job.id} did not complete: ${status.status}`);
  }
  return status;
}
```

### Step 4: Rollback Procedure

```bash
set -euo pipefail
# Immediate rollback — disable Firecrawl integration
kubectl set env deployment/app FIRECRAWL_ENABLED=false
kubectl rollout restart deployment/app

# Verify rollback
curl -s https://app.example.com/health | jq '.services.firecrawl'
```

## Alerting Rules

| Alert | Condition | Severity |
|-------|-----------|----------|
| API unreachable | Health check fails 3x | P1 |
| Credits < 1000 | Balance check | P2 |
| Error rate > 5% | 429/5xx rate | P2 |
| Crawl timeout | Job stuck > 10min | P3 |
| Auth failure | Any 401 response | P1 |

## Resources

- [Firecrawl Dashboard](https://firecrawl.dev/app)
- [Firecrawl Rate Limits](https://docs.firecrawl.dev/rate-limits)
- [Firecrawl API Reference](https://docs.firecrawl.dev/api-reference/introduction)

## Next Steps

For version upgrades, see `firecrawl-upgrade-migration`.

---

**Source:** [`jeremylongshore/claude-code-plugins-plus-skills`](https://github.com/jeremylongshore/claude-code-plugins-plus-skills) → `skills/.curated/firecrawl-prod-checklist/SKILL.md`

**Also appears in:** `jeremylongshore/claude-code-plugins-plus-skills/plugins/saas-packs/firecrawl-pack/skills/firecrawl-prod-checklist/SKILL.md`

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.