> ## Documentation Index
> Fetch the complete documentation index at: https://student-213fb9fc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Recherche

> Recherchez sur le web et obtenez le contenu complet des résultats

L’API de recherche de Firecrawl vous permet d’effectuer des recherches sur le web et, si vous le souhaitez, de scraper les résultats en une seule opération.

* Choisissez des formats de sortie spécifiques (markdown, HTML, liens, captures d’écran)
* Recherchez sur le web avec des paramètres personnalisables (localisation, etc.)
* Récupérez, en option, le contenu des résultats dans divers formats
* Contrôlez le nombre de résultats et définissez des délais d’attente

Pour plus de détails, consultez la [référence de l’API du point de terminaison /search](https://docs.firecrawl.dev/api-reference/endpoint/search).

<Card title="Essayez-le dans le Playground" icon="play" href="https://www.firecrawl.dev/playground?endpoint=search">
  Testez la recherche dans le Playground interactif — aucun code nécessaire.
</Card>

<div id="performing-a-search-with-firecrawl">
  ## Effectuer une recherche avec Firecrawl
</div>

<div id="search-endpoint">
  ### point de terminaison /search
</div>

Permet d’effectuer des recherches sur le web et, en option, de récupérer le contenu des résultats.

<div id="installation">
  ### Installation
</div>

<CodeGroup>
  ```python Python theme={null}
  # pip install firecrawl-py

  from firecrawl import Firecrawl

  firecrawl = Firecrawl(api_key="fc-VOTRE-CLE-API")
  ```

  ```js Node theme={null}
  # npm install @mendable/firecrawl-js

  import Firecrawl from '@mendable/firecrawl-js';

  const firecrawl = new Firecrawl({ apiKey: "fc-VOTRE-CLÉ-API" });
  ```

  ```bash CLI theme={null}
  # Installer globalement avec npm
  npm install -g firecrawl

  # Authentification (configuration unique)
  firecrawl login
  ```
</CodeGroup>

<div id="basic-usage">
  ### Utilisation de base
</div>

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

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

  results = firecrawl.search(
      query="firecrawl",
      limit=3,
  )
  print(results)
  ```

  ```js Node.js theme={null}
  import Firecrawl from '@mendable/firecrawl-js';

  const firecrawl = new Firecrawl({ apiKey: "fc-VOTRE-CLÉ-API" });

  const results = await firecrawl.search('firecrawl', {
    limit: 3,
    scrapeOptions: { formats: ['markdown'] }
  });
  console.log(results);
  ```

  ```bash theme={null}
  curl -s -X POST "https://api.firecrawl.dev/v2/search" \
    -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "query": "firecrawl",
      "limit": 3
    }'
  ```

  ```bash CLI theme={null}
  # Rechercher sur le web
  firecrawl search "firecrawl web scraping" --limit 5 --pretty
  ```
</CodeGroup>

<div id="response">
  ### Réponse
</div>

Les SDK renvoient directement l’objet de données. cURL renvoie la charge utile complète.

```json JSON theme={null}
{
  "success": true,
  "data": {
    "web": [
      {
        "url": "https://www.firecrawl.dev/",
        "title": "Firecrawl - L'API de données web pour l'IA",
        "description": "L'API d'exploration, de scraping et de recherche pour l'IA. Conçue pour passer à l'échelle. Firecrawl met l'ensemble du web à la portée des agents et développeurs d'IA.",
        "position": 1
      },
      {
        "url": "https://github.com/firecrawl/firecrawl",
        "title": "mendableai/firecrawl : Transformez des sites entiers en contenus prêts pour les LLM… - GitHub",
        "description": "Firecrawl est un service d'API qui prend une URL, l'explore et la convertit en Markdown propre ou en données structurées.",
        "position": 2
      },
      ...
    ],
    "images": [
      {
        "title": "Guide de démarrage rapide | Firecrawl",
        "imageUrl": "https://mintlify.s3.us-west-1.amazonaws.com/firecrawl/logo/logo.png",
        "imageWidth": 5814,
        "imageHeight": 1200,
        "url": "https://docs.firecrawl.dev/",
        "position": 1
      },
      ...
    ],
    "news": [
      {
        "title": "La startup de Y Combinator Firecrawl est prête à payer 1 M$ pour embaucher trois agents IA comme employés",
        "url": "https://techcrunch.com/2025/05/17/y-combinator-startup-firecrawl-is-ready-to-pay-1m-to-hire-three-ai-agents-as-employees/",
        "snippet": "Elle a désormais publié trois nouvelles annonces sur le job board de YC pour « agents IA uniquement » et a réservé un budget total de 1 million de dollars pour y parvenir.",
        "date": "il y a 3 mois",
        "position": 1
      },
      ...
    ]
  }
}
```

<div id="search-result-types">
  ## Types de résultats de recherche
</div>

En plus des résultats web classiques, Search prend en charge des types de résultats spécialisés via le paramètre `sources` :

* `web` : résultats web standard (par défaut)
* `news` : résultats axés sur l’actualité
* `images` : résultats de recherche d’images

Vous pouvez demander plusieurs sources dans un seul appel (par exemple, `sources: ["web", "news"]`). Dans ce cas, le paramètre `limit` s’applique **par type de source** — ainsi, `limit: 5` avec `sources: ["web", "news"]` renvoie jusqu’à 5 résultats web et jusqu’à 5 résultats d’actualité (10 au total). Si vous avez besoin de paramètres différents par source (par exemple, des valeurs `limit` différentes ou des `scrapeOptions` différentes), effectuez plutôt des appels séparés.

<div id="search-categories">
  ## Catégories de recherche
</div>

Filtrez les résultats de recherche par catégorie à l’aide du paramètre `categories` :

* `github` : Rechercher dans les dépôts GitHub, le code, les tickets et la documentation
* `research` : Rechercher sur des sites académiques et de recherche (arXiv, Nature, IEEE, PubMed, etc.)
* `pdf` : Rechercher des fichiers PDF

<div id="github-category-search">
  ### Recherche par catégorie sur GitHub
</div>

Recherchez spécifiquement dans les dépôts GitHub :

```bash cURL theme={null}
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-VOTRE_CLÉ_API" \
  -d '{
    "query": "web scraping python",
    "categories": ["github"],
    "limit": 10
  }'
```

<div id="research-category-search">
  ### Recherche par catégorie
</div>

Recherchez sur des sites académiques et de recherche :

```bash cURL theme={null}
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-VOTRE_CLÉ_API" \
  -d '{
    "query": "transformers en apprentissage automatique",
    "categories": ["recherche"],
    "limit": 10
  }'
```

<div id="mixed-category-search">
  ### Recherche multi-catégories
</div>

Combinez plusieurs catégories dans une seule recherche :

```bash cURL theme={null}
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-VOTRE_CLE_API" \
  -d '{
    "query": "réseaux de neurones",
    "categories": ["github", "recherche"],
    "limit": 15
  }'
```

<div id="category-response-format">
  ### Format de réponse par catégorie
</div>

Chaque résultat de recherche comporte un champ `category` indiquant sa source :

```json theme={null}
{
  "success": true,
  "data": {
    "web": [
      {
        "url": "https://github.com/example/neural-network",
        "title": "Implémentation de réseau de neurones"
        "description": "Une implémentation PyTorch de réseaux de neurones"
        "category": "github"
      },
      {
        "url": "https://arxiv.org/abs/2024.12345",
        "title": "Avancées dans l’architecture des réseaux de neurones"
        "description": "Article de recherche sur les améliorations des réseaux de neurones"
        "category": "research"
      }
    ]
  }
}
```

Exemples :

```bash cURL theme={null}
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-VOTRE_CLÉ_API" \
  -d '{
    "query": "openai",
    "sources": ["news"],
    "limit": 5
  }'
```

```bash cURL theme={null}
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "query": "jupiter",
    "sources": ["images"],
    "limit": 8
  }'
```

<div id="hd-image-search-with-size-filtering">
  ### Recherche d’images HD avec filtre de taille
</div>

Utilisez les opérateurs de recherche d’images pour trouver des images en haute résolution :

```bash cURL theme={null}
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "query": "coucher de soleil imagesize:1920x1080",
    "sources": ["images"],
    "limit": 5
  }'
```

```bash cURL theme={null}
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "query": "fond d'écran montagne larger:2560x1440",
    "sources": ["images"],
    "limit": 8
  }'
```

**Résolutions HD courantes :**

* `imagesize:1920x1080` - Full HD (1080p)
* `imagesize:2560x1440` - QHD (1440p)
* `imagesize:3840x2160` - 4K UHD
* `larger:1920x1080` - HD et supérieur
* `larger:2560x1440` - QHD et supérieur

<div id="search-with-content-scraping">
  ## Recherche avec extraction de contenu
</div>

Recherchez et récupérez le contenu des résultats de recherche en une seule opération.

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(api_key="fc-YOUR_API_KEY")

  # Rechercher et scraper le contenu
  results = firecrawl.search(
      "firecrawl web scraping",
      limit=3,
      scrape_options={
          "formats": ["markdown", "links"]
      }
  )
  ```

  ```js Node theme={null}
  import Firecrawl from '@mendable/firecrawl-js';

  const firecrawl = new Firecrawl({ apiKey: "fc-VOTRE_CLÉ_API" });

  const results = await firecrawl.search('firecrawl', {
    limit: 3,
    scrapeOptions: { formats: ['markdown'] }
  });
  console.log(results);
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.firecrawl.dev/v2/search \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer fc-YOUR_API_KEY" \
    -d '{
      "query": "firecrawl web scraping",
      "limit": 3,
      "scrapeOptions": {
        "formats": ["markdown", "links"]
      }
    }'
  ```

  ```bash CLI theme={null}
  # Rechercher et scraper les résultats
  firecrawl search "firecrawl" --scrape --scrape-formats markdown --limit 5 --pretty
  ```
</CodeGroup>

Toutes les options du point de terminaison /scrape sont prises en charge par ce point de terminaison de recherche via le paramètre `scrapeOptions`.

<div id="response-with-scraped-content">
  ### Réponse avec contenu extrait
</div>

```json theme={null}
{
  "success": true,
  "data": [
    {
      "title": "Firecrawl - L’API ultime de web scraping",
      "description": "Firecrawl est une API de web scraping puissante qui convertit n’importe quel site web en données propres et structurées, prêtes pour l’IA et l’analyse.",
      "url": "https://firecrawl.dev/",
      "markdown": "# Firecrawl\n\nL’API ultime de web scraping\n\n## Convertissez n’importe quel site web en données propres et structurées\n\nFirecrawl simplifie l’extraction de données depuis des sites web pour des applications d’IA, des études de marché, l’agrégation de contenu, et plus encore...",
      "links": [
        "https://firecrawl.dev/pricing",
        "https://firecrawl.dev/docs",
        "https://firecrawl.dev/guides"
      ],
      "metadata": {
        "title": "Firecrawl - L’API ultime de web scraping",
        "description": "Firecrawl est une API de web scraping puissante qui convertit n’importe quel site web en données propres et structurées, prêtes pour l’IA et l’analyse.",
        "sourceURL": "https://firecrawl.dev/",
        "statusCode": 200
      }
    }
  ]
}
```

<div id="advanced-search-options">
  ## Options de recherche avancées
</div>

L’API de recherche de Firecrawl prend en charge plusieurs paramètres pour personnaliser votre recherche :

<div id="location-customization">
  ### Personnalisation de la localisation
</div>

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(api_key="fc-YOUR_API_KEY")

  # Recherche avec paramètres de localisation (Allemagne)
  search_result = firecrawl.search(
      "outils de web scraping",
      limit=5,
      location="Germany"
  )

  # Traitement des résultats
  for result in search_result.data:
      print(f"Titre : {result['title']}")
      print(f"URL : {result['url']}")
  ```

  ```js Node.js theme={null}
  import Firecrawl from '@mendable/firecrawl-js';

  const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });

  // Recherche avec paramètres de localisation (Allemagne)
  const results = await firecrawl.search('outils de web scraping', {
    limit: 5,
    location: "Allemagne"
  });

  // Traitement des résultats
  console.log(results);
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.firecrawl.dev/v2/search \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer fc-YOUR_API_KEY" \
    -d '{
      "query": "outils de scraping web",
      "limit": 5,
      "location": "Allemagne"
    }'
  ```

  ```bash CLI theme={null}
  # Recherche avec localisation
  firecrawl search "local restaurants" --location "San Francisco,California,United States" --country US --pretty
  ```
</CodeGroup>

<div id="time-based-search">
  ### Recherche par plage temporelle
</div>

Utilisez le paramètre `tbs` pour filtrer les résultats par période. Notez que `tbs` s’applique uniquement aux résultats de la source `web` — il ne filtre pas les résultats `news` ou `images`. Si vous avez besoin d’actualités filtrées par période, envisagez d’utiliser une source `web` avec l’opérateur `site:` pour cibler des domaines d’actualités spécifiques.

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(api_key="fc-VOTRE-CLÉ-API")

  results = firecrawl.search(
      query="firecrawl",
      limit=5,
      tbs="qdr:d",
  )
  print(len(results.get('web', [])))
  ```

  ```js Node.js theme={null}
  import Firecrawl from '@mendable/firecrawl-js';

  const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });

  const results = await firecrawl.search('firecrawl', {
    limit: 5,
    tbs: 'qdr:d', // dernier jour
  });

  console.log(results.web);
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.firecrawl.dev/v2/search \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer fc-YOUR_API_KEY" \
    -d '{
      "query": "dernières techniques de scraping web",
      "limit": 5,
      "tbs": "qdr:w"
    }'
  ```

  ```bash CLI theme={null}
  # Recherche avec filtre temporel (semaine passée)
  firecrawl search "firecrawl updates" --tbs qdr:w --limit 5 --pretty
  ```
</CodeGroup>

Valeurs `tbs` courantes :

* `qdr:h` - Dernière heure
* `qdr:d` - Dernières 24 heures
* `qdr:w` - Dernière semaine
* `qdr:m` - Dernier mois
* `qdr:y` - Dernière année
* `sbd:1` - Trier par date (des plus récents aux plus anciens)

Pour un filtrage plus précis, vous pouvez spécifier des plages de dates exactes avec le format de plage de dates personnalisé :

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  # Initialisez le client avec votre clé API
  firecrawl = Firecrawl(api_key="fc-YOUR_API_KEY")

  # Rechercher des résultats de décembre 2024
  search_result = firecrawl.search(
      "firecrawl updates",
      limit=10,
      tbs="cdr:1,cd_min:12/1/2024,cd_max:12/31/2024"
  )
  ```

  ```js JavaScript theme={null}
  import Firecrawl from '@mendable/firecrawl-js';

  // Initialisez le client avec votre clé API
  const firecrawl = new Firecrawl({apiKey: "fc-YOUR_API_KEY"});

  // Rechercher des résultats de décembre 2024
  firecrawl.search("firecrawl updates", {
    limit: 10,
    tbs: "cdr:1,cd_min:12/1/2024,cd_max:12/31/2024"
  })
  .then(searchResult => {
    console.log(searchResult.data);
  });
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.firecrawl.dev/v2/search \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer fc-YOUR_API_KEY" \
    -d '{
      "query": "firecrawl updates",
      "limit": 10,
      "tbs": "cdr:1,cd_min:12/1/2024,cd_max:12/31/2024"
    }'
  ```
</CodeGroup>

Vous pouvez combiner `sbd:1` avec des filtres temporels pour obtenir des résultats triés par date dans une plage temporelle donnée. Par exemple, `sbd:1,qdr:w` renvoie les résultats de la dernière semaine, triés du plus récent au plus ancien, et `sbd:1,cdr:1,cd_min:12/1/2024,cd_max:12/31/2024` renvoie les résultats de décembre 2024 triés par date.

<div id="custom-timeout">
  ### Délai d’attente personnalisé
</div>

Définissez un délai d’attente personnalisé pour les opérations de recherche :

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import FirecrawlApp

  # Initialisez le client avec votre clé d’API
  app = FirecrawlApp(api_key="fc-YOUR_API_KEY")

  # Définissez un délai d’attente de 30 secondes
  search_result = app.search(
      "complex search query",
      limit=10,
      timeout=30000  # 30 secondes en millisecondes
  )
  ```

  ```js JavaScript theme={null}
  import FirecrawlApp from '@mendable/firecrawl-js';

  // Initialisez le client avec votre clé d’API
  const app = new FirecrawlApp({apiKey: "fc-YOUR_API_KEY"});

  // Définissez un délai d’attente de 30 secondes
  app.search("complex search query", {
    limit: 10,
    timeout: 30000  // 30 secondes en millisecondes
  })
  .then(searchResult => {
    // Traitez les résultats
    console.log(searchResult.data);
  });
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.firecrawl.dev/v2/search \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer fc-YOUR_API_KEY" \
    -d '{
      "query": "complex search query",
      "limit": 10,
      "timeout": 30000
    }'
  ```
</CodeGroup>

<div id="cost-implications">
  ## Impact sur les coûts
</div>

Le coût d’une recherche est de 2 crédits pour 10 résultats de recherche. Si les options de scraping sont activées, les coûts de scraping standard s’appliquent à chaque résultat de recherche :

* **Basic scrape** : 1 crédit par page web
* **PDF parsing** : 1 crédit par page PDF
* **mode proxy amélioré** : 4 crédits supplémentaires par page web
* **mode JSON** : 4 crédits supplémentaires par page web

Pour aider à contrôler les coûts :

* Définissez `parsers: []` si l’analyse de PDF n’est pas nécessaire
* Utilisez `proxy: "basic"` plutôt que `"enhanced"` lorsque possible, ou réglez-le sur `"auto"`
* Limitez le nombre de résultats de recherche avec le paramètre `limit`

<div id="advanced-scraping-options">
  ## Options de scraping avancées
</div>

Pour plus de détails sur les options de scraping, consultez la [documentation de la fonctionnalité Scrape](https://docs.firecrawl.dev/features/scrape). Toutes les options, à l’exception de FIRE-1 (Agent) et du suiviDesModifications, sont prises en charge par ce point de terminaison Search.
