Skip to content

Firecrawl

Nuget package dotnet License: MIT Discord

Features 🔥

  • Fully generated C# SDK based on official Firecrawl OpenAPI specification using AutoSDK
  • Same day update to support new features
  • Updated and supported automatically if there are no breaking changes
  • All modern .NET features - nullability, trimming, NativeAOT, etc.
  • Support .Net Framework/.Net Standard 2.0

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using Firecrawl;

using var client = new FirecrawlClient(apiKey);

// Scrape
var response = await client.Scraping.ScrapeAndExtractFromUrlAsync("https://docs.firecrawl.dev/features/scrape");

string markdown = response.Data.Markdown;

// Crawl
var response = await client.Crawling.CrawlUrlsAsync(
    url: "https://docs.firecrawl.dev/",
    limit: 3,
    scrapeOptions: new CrawlUrlsRequestScrapeOptions
    {
        OnlyMainContent = true,
    });

var jobResponse = await client.Crawling.WaitJobAsync(
    jobId: response.JobId,
    pollingInterval: TimeSpan.FromSeconds(5),
    progress: new Progress<CrawlStatusResponseObj>(status =>
        Console.WriteLine($"Progress: {status.Completed}/{status.Total}")),
    timeout: TimeSpan.FromMinutes(10));

foreach (var data in jobResponse.Data)
{
    Console.WriteLine($"URL: {data.Metadata.SourceURL}");
    Console.WriteLine($"Output file: {data.Markdown}");
}

CLI

1
2
3
4
5
dotnet tool install -g Firecrawl.Cli
firecrawl auth set <API_KEY>
firecrawl scrape https://docs.firecrawl.dev/features/scrape --format markdown
firecrawl crawl start https://docs.firecrawl.dev/ --limit 5 --wait
firecrawl team credit-usage --json

Auth precedence: 1. --api-key 2. FIRECRAWL_API_KEY 3. ~/.firecrawl/apiKey.txt from firecrawl auth set

Base URL precedence: 1. --base-url 2. FIRECRAWL_BASE_URL 3. SDK default

Universal CLI behavior: - --json is available on every command for deterministic machine-readable output. - Async start commands support --wait, --poll-interval, and --wait-timeout. - --input <file|-> loads a JSON request body, and explicit flags override matching fields. - crawl status and batch-scrape status support --output-dir to write one file set per returned page.

Command tree: - auth set|clear|status - scrape <url> - batch-scrape start|status|cancel|errors - crawl start|status|cancel|errors|active - map <url> - extract start|status - deep-research start|status - team credit-usage|token-usage - search <query> - llmstxt generate|status

Support

Priority place for bugs: https://github.com/tryAGI/Firecrawl/issues
Priority place for ideas and general questions: https://github.com/tryAGI/Firecrawl/discussions
Discord: https://discord.gg/Ca2xhfBf3v

Acknowledgments

JetBrains logo

This project is supported by JetBrains through the Open Source Support Program.