Skip to content

Migrate from Firecrawl

FairCrawl is intentionally close to the Firecrawl mental model, but the request shapes are cleaner and the runtime defaults are different.

High-level mapping

FirecrawlFairCrawl
https://api.firecrawl.dev/v2https://api.faircompany.ai/v1
formats: ["markdown"]format: "markdown"
onlyMainContentonly_main_content
includeSubdomainsinclude_subdomains
sitemap: "only"sitemap_only: true
async /crawl job start + pollingsynchronous POST /v1/crawl/web/crawl
/agent prompt/agent instruction
/agent schema/agent json_schema
credits budgetingbudget_usd in USD

Scrape rewrite

POST https://api.firecrawl.dev/v2/scrape
POST https://api.faircompany.ai/v1/crawl/web/scrape
{
"url": "https://stripe.com/pricing",
"formats": ["markdown"],
"onlyMainContent": true
"format": "markdown",
"only_main_content": true
}

Map rewrite

POST https://api.firecrawl.dev/v2/map
POST https://api.faircompany.ai/v1/crawl/map
{
"url": "https://docs.stripe.com",
"limit": 100,
"includeSubdomains": true,
"sitemap": "only"
"include_subdomains": true,
"sitemap_only": true
}

Crawl rewrite

Firecrawl’s crawl flow starts a job and then polls it. FairCrawl’s current /web/crawl path returns the completed page set directly.

POST https://api.firecrawl.dev/v2/crawl
POST https://api.faircompany.ai/v1/crawl/web/crawl
{
"url": "https://docs.python.org/3/index.html",
"limit": 50,
"deduplicateSimilarURLs": true,
"regexOnFullURL": "pricing|billing"
}

Agent rewrite

POST https://api.firecrawl.dev/v2/agent
POST https://api.faircompany.ai/v1/crawl/agent
{
"prompt": "Compare Stripe and Adyen pricing",
"schema": { "type": "object" },
"maxCredits": 50
"instruction": "Compare Stripe and Adyen pricing",
"response_format": "json",
"json_schema": { "type": "object" },
"budget_usd": 0.05
}

Find-and-replace checklist

  1. Replace formats with a single format.
  2. Convert camelCase body keys to the snake_case fields FairCrawl exposes publicly.
  3. Remove Firecrawl crawl polling code and treat FairCrawl /web/crawl as a direct response.
  4. Swap agent prompt for instruction and schema schema for json_schema.
  5. Keep platform-specific Firecrawl code behind source-filtered /research or direct FairCrawl typed routes, depending on the use case.