Migrate from Firecrawl to WebPeel in 5 Minutes

WebPeel is a free, open-source alternative to Firecrawl with a compatible API. In most cases, switching is a one-line URL change.

Why switch?

Firecrawl is a well-built product and a solid choice. If you're on their free tier and it works for your needs, there's no urgent reason to switch. WebPeel is for people who want:

Honest comparison
Firecrawl has 84.8K GitHub stars, $16M in funding, and a polished managed service. They're great at what they do. WebPeel is a free, open alternative — not necessarily "better," but different in ways that matter to some teams.

Feature comparison

Feature Firecrawl WebPeel
Price $16/mo+ (free tier is limited, one-time) Free (500 req/week recurring)
Open Source AGPL — hosted service has additional proprietary layers AGPL-3.0, fully open — server, CLI, SDKs
MCP Tools ~5 tools 7 tools
Stealth / Anti-bot Cloud only Built-in (28 domain configs), self-hostable
Quick Answer (Q&A) ✗ No ✓ Yes (LLM-free, confidence score)
YouTube Transcripts ✗ No ✓ Yes (no API key needed)
Hotel Search ✗ No ✓ Yes (multi-source, merged results)
Budget Mode ✗ No ✓ Yes (83% token reduction)
Self-hosting Limited (some features cloud-only) Full — docker compose up
No API key for CLI/MCP ✗ Required ✓ Works without key (25 req/hr anonymous)
GitHub Stars 84.8K ⭐ Growing ⭐ — help us out

API compatibility

WebPeel supports Firecrawl-compatible endpoints at /v1/scrape and /v1/crawl. For most use cases, switching is a single URL change:

https://api.firecrawl.dev https://api.webpeel.dev

Supported Firecrawl-compatible fields:

Native API also available
WebPeel's native API at /v1/fetch offers additional parameters like budget, focus, stealth, and more. We recommend using the native API for new integrations — see the API Reference.

Code examples

REST API

Before — Firecrawl
curl -X POST https://api.firecrawl.dev/v1/scrape \
  -H "Authorization: Bearer fc-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "formats": ["markdown"]
  }'
After — WebPeel
curl -X POST https://api.webpeel.dev/v1/scrape \
  -H "Authorization: Bearer wp_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "formats": ["markdown"]
  }'

The response shape is identical. No other changes needed for basic scraping.

MCP server config (Claude Desktop)

Before — Firecrawl MCP
{
  "mcpServers": {
    "firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "fc-YOUR_KEY"
      }
    }
  }
}
After — WebPeel MCP
{
  "mcpServers": {
    "webpeel": {
      "command": "npx",
      "args": ["-y", "webpeel", "mcp"]
    }
  }
}

No API key is required to use the WebPeel MCP server. You get 25 anonymous requests per hour, or sign up free for 500/week.

Prefer a remote URL (no install, always up-to-date)?

{
  "mcpServers": {
    "webpeel": {
      "url": "https://api.webpeel.dev/v2/mcp"
    }
  }
}

Node.js library

Before — Firecrawl SDK
import FirecrawlApp from '@mendable/firecrawl-js';

const app = new FirecrawlApp({
  apiKey: 'fc-YOUR_KEY'
});

const result = await app.scrapeUrl(
  'https://example.com',
  { formats: ['markdown'] }
);

console.log(result.markdown);
After — WebPeel SDK
import { peel } from 'webpeel';

// No API key required for basic usage
const result = await peel('https://example.com');

console.log(result.content); // markdown

Install WebPeel: npm install webpeel

For API-key authenticated requests with the full client:

import { WebPeel } from 'webpeel';

const client = new WebPeel({ apiKey: 'wp_YOUR_KEY' });

const result = await client.scrape('https://example.com', {
  formats: ['markdown'],
  budget: 4000,     // Token budget (WebPeel-specific)
  stealth: true,    // Built-in stealth mode
});

console.log(result.markdown);

Python SDK

Before — Firecrawl Python
from firecrawl import FirecrawlApp

app = FirecrawlApp(api_key="fc-YOUR_KEY")

result = app.scrape_url(
    "https://example.com",
    params={"formats": ["markdown"]}
)

print(result["markdown"])
After — WebPeel Python
from webpeel import WebPeel

client = WebPeel(api_key="wp_YOUR_KEY")

result = client.scrape("https://example.com")

print(result.content)  # markdown

Install: pip install webpeel

What's different (and new)

WebPeel does everything Firecrawl does, plus a few things it doesn't:

Budget mode — token-efficient fetching

Pass budget=4000 to get any page distilled to ~4K tokens. Content density pruning removes sidebars, footers, navigation, and ads automatically. On a Wikipedia page, this reduced 99,427 tokens to 3,867 — a 96% reduction.

# REST API
curl "https://api.webpeel.dev/v1/fetch?url=https://en.wikipedia.org/wiki/AI&budget=4000"

# CLI
npx webpeel https://en.wikipedia.org/wiki/AI --budget 4000

LLM-free quick answers

Ask factual questions from any web page without sending content to an LLM. Uses BM25 retrieval + heuristic answer extraction with a confidence score.

curl -X POST https://api.webpeel.dev/v1/answer \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/pricing",
    "question": "What is the monthly price?"
  }'

Domain extractors (stealth built-in)

28 domain-specific extractors handle sites that typically require anti-bot bypasses: Amazon, Reddit, LinkedIn, Twitter/X, GitHub, Hacker News, Yelp, Booking.com, and more. These work on self-hosted instances too — no cloud requirement.

npx webpeel https://www.amazon.com/dp/B08N5WRWNW --schema amazon --json

YouTube transcripts

Extract full transcripts from YouTube videos — no YouTube API key required.

npx webpeel https://www.youtube.com/watch?v=dQw4w9WgXcQ

Hotel search

Multi-source hotel search with merged and sorted results — a unique capability not available in other web fetching tools.

npx webpeel hotels "Paris" --checkin 2026-04-01 --checkout 2026-04-05 --sort price

Step-by-step migration

1
Change the base URL

In your environment config, swap https://api.firecrawl.dev for https://api.webpeel.dev. Your existing Firecrawl API calls will work as-is against /v1/scrape and /v1/crawl.

2
Get a free API key (optional)

Sign up at app.webpeel.dev for 500 free requests/week. For basic testing, anonymous access gives 25 requests/hour with no signup.

3
Update your API key prefix

WebPeel API keys start with wp_live_. Update any env vars — e.g. FIRECRAWL_API_KEYWEBPEEL_API_KEY. If your client hardcodes the key prefix, update that too.

4
Switch npm/pip package (optional)

If you're using the Firecrawl SDK, you can keep using it with the base URL override, or migrate to the WebPeel SDK for access to native features like budget mode and stealth.

npm install webpeel       # Node.js
pip install webpeel       # Python
5
Update MCP config (if using Claude Desktop)

Replace the Firecrawl MCP config with the WebPeel config shown above. WebPeel has 7 MCP tools vs. Firecrawl's ~5.

That's it
Most migrations take under 5 minutes. If you hit any issues with specific Firecrawl API fields that don't map correctly, open an issue and we'll add compatibility.

Self-hosting

Unlike Firecrawl, all WebPeel features (including stealth mode and domain extractors) work in self-hosted deployments.

# Clone and start
git clone https://github.com/webpeel/webpeel
cd webpeel
docker compose up

See the Self-Hosting guide for environment variables, database setup, and production configuration.

Next steps