Passer au contenu principal

Prérequis

Installez le crate Rust

Ajoutez firecrawl à votre Cargo.toml :
[dependencies]
firecrawl = "1"
tokio = { version = "1", features = ["full"] }
serde_json = "1"
reqwest = { version = "0.12", features = ["json"] }

Rechercher sur le Web

use firecrawl::v2::Client;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new("fc-YOUR-API-KEY")?;
    let results = client.search("firecrawl web scraping", None).await?;

    for result in &results {
        println!("{} - {}", result.title.as_deref().unwrap_or(""), result.url.as_deref().unwrap_or(""));
    }
    Ok(())
}

Extraire les données d’une page

let doc = client.scrape("https://example.com", None).await?;
println!("{}", doc.markdown.unwrap_or_default());
{
  "markdown": "# Example Domain\n\nThis domain is for use in illustrative examples...",
  "metadata": {
    "title": "Example Domain",
    "sourceURL": "https://example.com"
  }
}

Interagir avec une page

L’API Interact fonctionne avec des commandes basées sur des prompts via HTTP. Scrapez une page pour obtenir un scrapeId, puis envoyez des prompts pour piloter la session de navigateur :
use reqwest::Client as HttpClient;
use serde_json::json;

let api_key = "fc-YOUR-API-KEY";
let http = HttpClient::new();

// 1. Scraper pour ouvrir une session de navigateur
let scrape_res: serde_json::Value = http
    .post("https://api.firecrawl.dev/v2/scrape")
    .bearer_auth(api_key)
    .json(&json!({ "url": "https://www.amazon.com", "formats": ["markdown"] }))
    .send().await?
    .json().await?;

let scrape_id = scrape_res["data"]["metadata"]["scrapeId"]
    .as_str().unwrap();

// 2. Envoyer des prompts pour interagir
http.post(format!("https://api.firecrawl.dev/v2/scrape/{scrape_id}/interact"))
    .bearer_auth(api_key)
    .json(&json!({ "prompt": "Search for iPhone 16 Pro Max" }))
    .send().await?;

let interact_res: serde_json::Value = http
    .post(format!("https://api.firecrawl.dev/v2/scrape/{scrape_id}/interact"))
    .bearer_auth(api_key)
    .json(&json!({ "prompt": "Click on the first result and tell me the price" }))
    .send().await?
    .json().await?;

println!("{}", interact_res);

// 3. Fermer la session
http.delete(format!("https://api.firecrawl.dev/v2/scrape/{scrape_id}/interact"))
    .bearer_auth(api_key)
    .send().await?;

Variable d’environnement

Définissez FIRECRAWL_API_KEY au lieu de passer directement la clé :
export FIRECRAWL_API_KEY=fc-YOUR-API-KEY
Le crate firecrawl prend également en charge l’API v1 via FirecrawlApp. Consultez la documentation du SDK Rust pour découvrir l’ensemble des fonctionnalités de l’API.

Étapes suivantes

Documentation Search

Recherchez sur le web et obtenez le contenu complet de la page

Documentation Scrape

Toutes les options de scrape, y compris les formats, les actions et les proxys

Documentation Interact

Cliquez, remplissez des formulaires et extrayez du contenu dynamique

Référence du SDK Rust

Référence complète du SDK avec crawl, cartographie et bien plus encore