Files
marketingskills/tools/integrations/firecrawl.md
T

145 lines
4.4 KiB
Markdown
Raw Normal View History

# Firecrawl
Web scraping API that turns single pages or full sites into clean LLM-ready markdown. Handles JS rendering, anti-bot defenses, and proxy rotation so you can extract structured data from individual public business sites.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | REST API + Python/Node SDKs |
| MCP | ✓ | Official Firecrawl MCP server |
| CLI | - | None official |
| SDK | ✓ | Node, Python, Go, Rust |
## Authentication
- **Type**: API Key
- **Header**: `Authorization: Bearer fc-YOUR_API_KEY`
- **Get key**: https://www.firecrawl.dev/app/api-keys
- **Env var**: `FIRECRAWL_API_KEY`
- **Base URL**: `https://api.firecrawl.dev`
## Core Operations
### Scrape a single page
```bash
POST https://api.firecrawl.dev/v1/scrape
Authorization: Bearer fc-YOUR_API_KEY
{
"url": "https://joescoffeeshop.com",
"formats": ["markdown", "html"]
}
```
Returns the page as clean markdown (LLM-ready, no nav cruft) plus optional raw HTML.
### Map a site (discover all URLs)
```bash
POST https://api.firecrawl.dev/v1/map
{
"url": "https://example.com",
"limit": 100
}
```
Returns a list of URLs found on the site. Use this to identify key pages (`/pricing`, `/about`, `/contact`, `/team`) before scraping individually.
### Crawl multiple pages
```bash
POST https://api.firecrawl.dev/v1/crawl
{
"url": "https://example.com",
"limit": 20,
"scrapeOptions": {
"formats": ["markdown"]
}
}
```
Crawls multiple pages from a single site. **Use sparingly** — costs scale with pages. Set `limit` and `includePaths` to target specific URL patterns.
### Extract structured data
```bash
POST https://api.firecrawl.dev/v1/extract
{
"urls": ["https://joescoffeeshop.com"],
"schema": {
"phone": "string",
"address": "string",
"hours": "string",
"email": "string"
}
}
```
Returns data matching the schema — useful when you want consistent fields across many sites rather than raw markdown.
### Search the web
```bash
POST https://api.firecrawl.dev/v1/search
{
"query": "\"Joe's Coffee Shop\" Boulder Colorado",
"limit": 10
}
```
Web search + scrape of top results. Useful for cross-source verification (find a business's official site when you only have a name + location).
## MCP Tools (when used via MCP server)
| Tool | Purpose |
|------|---------|
| `firecrawl_scrape` | Single-page extraction |
| `firecrawl_map` | URL discovery on a site |
| `firecrawl_crawl` | Multi-page crawl |
| `firecrawl_extract` | Schema-driven structured data |
| `firecrawl_search` | Web search + scrape |
## When to Use
- **Local SMB prospecting**: verify a business's website status (live, weak, missing) at the URL level after manual Maps/Yelp discovery
- **Single-target enrichment**: pull contact info, hours, services from a business's own site
- **Competitor research**: scrape competitor pricing, features, customer pages (this is the primary use in `competitor-profiling` skill)
- **Programmatic page extraction**: when you need many sites' homepages or about pages in a consistent format
- **JS-heavy sites**: when the page won't render with a simple `curl` because content loads after page load
## When NOT to Use
**Critical — do not use Firecrawl to scrape platforms hosting prospects:**
-**Google Maps / Google search results** — Google ToS prohibits bulk extraction
-**LinkedIn** — explicit ToS violation, will get scraper accounts banned and risks legal exposure
-**Yelp** — ToS prohibits commercial scraping
-**Apollo / ZoomInfo / Clearbit listings** — their ToS prohibits using competing data extracts
-**Any platform you don't have a legitimate basis to extract from at scale**
**Use Firecrawl for**: the *business's own website* (which you found via manual discovery on those platforms). That's the line — discovery happens on platforms, extraction happens on individual public business sites.
## Pricing
- Free tier: limited monthly credits
- Paid tiers scale by request volume + concurrency
- Confirm at https://www.firecrawl.dev/pricing
## Rate Limits
- Default: tier-dependent (typically 520 concurrent requests on paid plans)
- Per-page cost varies by content type and rendering needs
## Relevant Skills
- prospecting (site enrichment for individual business URLs)
- competitor-profiling (primary use: full-site competitor analysis)
- ai-seo (scrape your own content for AI search optimization)
- content-strategy (scrape industry sites for content gap analysis)