Skip to content

AI Models

Updated Feb 2026

Firecrawl offers multiple AI models for extraction and research tasks. Choose the right model based on your accuracy requirements, budget, and task complexity.

Model Overview

ModelTypeCostAccuracySpeedBest For
Spark-1 MiniAgent (research)60% cheaperStandardFastMost tasks, high-volume jobs
Spark-1 ProAgent (research)StandardHigherFastComplex research, critical accuracy
Spark-1 FastAgent (parallel)10 credits/cellPredictableFastCSV batch processing
FIRE-1Agent (browser)VariableHighSlowerComplex page interactions

Spark-1 Mini (Default)

The cost-efficient default for the Agent API. Handles straightforward extraction and research tasks at 60% lower cost than Pro.

Strengths

  • Simple data extraction (contacts, prices, metadata)
  • Well-structured websites
  • High-volume batch operations
  • Cost-sensitive workflows
  • Standard research queries

Configuration

python
from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR-API-KEY")

result = app.agent(
    prompt="Find the pricing plans for Notion",
    model="spark-1-mini",  # This is the default
    maxCredits=100
)
javascript
const result = await app.agent({
  prompt: "Find the pricing plans for Notion",
  model: "spark-1-mini",
  maxCredits: 100,
});
bash
curl -X POST https://api.firecrawl.dev/v2/agent \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer fc-YOUR-API-KEY' \
  -d '{
    "prompt": "Find the pricing plans for Notion",
    "model": "spark-1-mini",
    "maxCredits": 100
  }'

Spark-1 Pro

The premium model offering higher accuracy for complex analysis, deep reasoning, and multi-domain research.

Strengths

  • Competitive analysis across multiple domains
  • Tasks requiring advanced reasoning and inference
  • Critical accuracy requirements (financial data, legal info)
  • Ambiguous or hard-to-find information
  • Nuanced extraction from unstructured content

Configuration

python
result = app.agent(
    prompt="Compare pricing, features, and target audience across Notion, Coda, and Slite",
    model="spark-1-pro",
    maxCredits=500
)
javascript
const result = await app.agent({
  prompt: "Compare pricing, features, and target audience across Notion, Coda, and Slite",
  model: "spark-1-pro",
  maxCredits: 500,
});
bash
curl -X POST https://api.firecrawl.dev/v2/agent \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer fc-YOUR-API-KEY' \
  -d '{
    "prompt": "Compare pricing, features, and target audience across Notion, Coda, and Slite",
    "model": "spark-1-pro",
    "maxCredits": 500
  }'

Spark-1 Fast (CSV Batch)

A parallel processing mode available in the Agent Playground for CSV batch jobs. Each cell in the CSV is processed independently at a predictable 10 credits per cell.

Use Cases

  • Lead enrichment from a list of company names
  • Bulk data collection from known entities
  • Structured batch research

How It Works

  1. Upload a CSV to the Agent Playground
  2. Spark-1 Fast processes each row in parallel
  3. Results are returned as structured data matching your schema

Playground Only

Spark-1 Fast parallel agents are currently available through the Agent Playground at firecrawl.dev/app/agent, not via the API directly.

FIRE-1

A browser automation agent that interacts with complex page elements. Unlike Spark-1 models which perform web research, FIRE-1 controls the browser to click buttons, navigate pagination, fill forms, and extract data from dynamic elements.

When to Use

  • Paginated tables and listings
  • Content behind "Load More" buttons or tabs
  • Data requiring form interaction to access
  • Multi-step navigation workflows

Configuration

python
result = app.extract(
    urls=["https://example.com/products"],
    prompt="Extract all products from all pagination pages",
    schema={...},
    agent={"model": "FIRE-1"}
)

See FIRE-1 Agent Model for full documentation.

Choosing the Right Model

Decision Matrix

ScenarioRecommended ModelWhy
"Find pricing for Company X"Spark-1 MiniSimple, well-defined query
"Compare 5 competitors across features, pricing, and reviews"Spark-1 ProMulti-domain, complex reasoning
"Extract all products from paginated listing"FIRE-1Requires browser interaction
"Get contact info from a specific page"Scrape + JSONKnown URL, no research needed
"Enrich 500 company records"Spark-1 Fast (CSV)Predictable batch processing
"Find market trends in AI infrastructure"Spark-1 ProDeep research, synthesis required
"Extract article content from blog"Scrape (markdown)Simple extraction, no AI needed

Performance Comparison

MetricSpark-1 MiniSpark-1 ProFIRE-1
Cost efficiencyBestStandardVariable
Simple extractionExcellentExcellentOverkill
Complex reasoningGoodExcellentN/A
Multi-site researchGoodExcellentN/A
Browser interactionNoneNoneExcellent
SpeedFastFastSlower
PredictabilityDynamic creditsDynamic creditsVariable

Cost Comparison

ModelPricingTypical Range
Spark-1 MiniDynamic, ~60% cheaper than Pro~100-300 credits per run
Spark-1 ProDynamic~200-500 credits per run
Spark-1 Fast10 credits per cellPredictable
FIRE-1Variable per request complexityDepends on interactions

Cost Control

Always set maxCredits on Agent API calls to prevent unexpected costs. If the credit limit is hit, the job fails -- but credits used up to that point are still charged.

Free Tier

All users get 5 free daily Agent runs (Spark-1 Mini or Pro, via playground or API).

Model Parameter Reference

Agent API (/v2/agent)

python
result = app.agent(
    prompt="Your research query",
    model="spark-1-mini",      # or "spark-1-pro"
    urls=["https://..."],      # optional focus URLs
    schema=YourSchema,         # optional structured output
    maxCredits=100             # credit cap
)

Extract API (/v1/extract)

python
result = app.extract(
    urls=["https://..."],
    prompt="Your extraction task",
    schema={...},
    agent={"model": "FIRE-1"}  # FIRE-1 only
)

Scrape API (/v2/scrape) -- JSON Mode

No model parameter needed. JSON extraction uses the built-in extraction engine:

python
result = firecrawl.scrape(
    "https://example.com",
    formats=[{"type": "json", "schema": {...}}]
)

Next: Proxies -->