> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firecrawl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Scraping plus rapide

> Accélérez vos scrapes de 500 % grâce au paramètre maxAge

<div id="how-it-works">
  ## Fonctionnement
</div>

Firecrawl met en cache les pages déjà extraites et, par défaut, renvoie une copie récente lorsqu’elle est disponible.

* **Actualisation par défaut** : `maxAge = 172800000` ms (2 jours). Si la copie en cache est plus récente, elle est renvoyée instantanément ; sinon, Firecrawl relance une extraction et met à jour le cache.
* **Forcer du frais** : Définissez `maxAge: 0` pour toujours ré-extraire. Notez que cela contourne entièrement le cache : chaque requête passe alors par l’intégralité du pipeline d’extraction, prendra plus de temps à se terminer et aura plus de risques d’échouer. Utilisez une valeur de `maxAge` non nulle si vous n’avez pas besoin de contenu en temps réel pour chaque requête.
* **Ignorer le cache** : Définissez `storeInCache: false` si vous ne souhaitez pas stocker les résultats d’une requête.

Obtenez vos résultats **jusqu’à 500 % plus rapidement** lorsque vous n’avez pas besoin des données les plus récentes. Contrôlez l’actualité via `maxAge` :

1. **Retour instantané** si une version récente de la page est disponible
2. **Extraction à jour** uniquement si notre version est plus ancienne que l’âge spécifié
3. **Gagnez du temps** — les résultats reviennent en millisecondes plutôt qu’en secondes

<div id="when-to-use-this">
  ## Quand l’utiliser
</div>

**Idéal pour :**

* Documentation, articles, pages produit
* Traitements par lots
* Développement et tests
* Création de bases de connaissances

**À éviter :**

* Données en temps réel (cours boursiers, scores en direct, dernières actualités)
* Contenu fréquemment mis à jour
* Applications sensibles au facteur temps

<div id="usage">
  ## Utilisation
</div>

Ajoutez `maxAge` à votre requête de scraping. Les valeurs sont en millisecondes (p. ex. `3600000` = 1 heure).

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

  firecrawl = Firecrawl(
    # Aucune clé API requise pour démarrer — ajoutez-en une pour des limites de débit plus élevées :
    # api_key="fc-YOUR_API_KEY",
  )

  # Utilisez les données mises en cache si elles datent de moins d'une heure (3 600 000 ms)
  # Cela peut être 5× plus rapide qu'un nouveau scraping !
  scrape_result = firecrawl.scrape(
      'https://firecrawl.dev',
      formats=['markdown'],
      max_age=3600000  # 1 hour in milliseconds
  )

  print(scrape_result.markdown)
  ```

  ```javascript JavaScript theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // Aucune clé API requise pour démarrer — ajoutez-en une pour des limites de débit plus élevées :
    // apiKey: "fc-YOUR_API_KEY",
  });

  // Utilisez les données mises en cache si elles datent de moins d'1 heure (3 600 000 ms)
  // Cela peut être 5× plus rapide qu'un nouveau scraping !
  const scrapeResult = await firecrawl.scrape('https://firecrawl.dev', {
    formats: ['markdown'],
    maxAge: 3600000 // 1 heure en millisecondes
  });

  console.log(scrapeResult.markdown);
  ```
</CodeGroup>

<div id="common-maxage-values">
  ## Valeurs courantes de maxAge
</div>

Voici quelques valeurs de référence utiles :

* **5 minutes** : `300000` — pour du contenu semi‑dynamique
* **1 heure** : `3600000` — pour du contenu mis à jour chaque heure
* **1 jour** : `86400000` — pour du contenu mis à jour quotidiennement
* **1 semaine** : `604800000` — pour du contenu relativement statique

<div id="performance-impact">
  ## Impact sur les performances
</div>

Avec `maxAge` activé :

* **Des temps de réponse jusqu’à 500 % plus rapides** pour le contenu récent
* **Des résultats instantanés** plutôt que d’attendre de nouveaux scrapes

<div id="important-notes">
  ## Notes importantes
</div>

* **Par défaut** : `maxAge` est `172800000` (2 jours)
* **Actualisé si nécessaire** : si nos données sont plus anciennes que `maxAge`, nous réexécutons automatiquement le scraping
* **Aucune donnée périmée** : vous ne recevrez jamais de données plus anciennes que le `maxAge` que vous avez spécifié
* **Crédits** : les résultats mis en cache coûtent toujours 1 crédit par page. La mise en cache améliore les performances et la latence, pas l'utilisation des crédits.

<div id="when-caching-is-bypassed">
  ### Cas où la mise en cache est ignorée
</div>

La mise en cache est automatiquement ignorée lorsque votre requête inclut l’un des éléments suivants :

* Des `headers` personnalisés
* Des `actions` (étapes d’automatisation du navigateur)
* Un `profile` de navigateur
* Le format `changeTracking`
* Des paramètres personnalisés de taille de fenêtre d’affichage ou de qualité pour `screenshot`

<div id="cache-hit-matching">
  ### Critères de correspondance d’un hit de cache
</div>

Pour qu’il y ait un hit de cache, ces paramètres doivent correspondre exactement entre la requête d’origine et les requêtes suivantes : `url`, `mobile`, `location`, `waitFor`, `blockAds`, `screenshot` (activé/désactivé et pleine page), ainsi que le mode proxy furtif.

Vous pouvez vérifier le comportement du cache en consultant `metadata.cacheState` dans la réponse : sa valeur sera `"hit"` ou `"miss"`.

<div id="faster-crawling">
  ## Crawl plus rapide
</div>

Les mêmes gains de vitesse s’appliquent lors du crawl de plusieurs pages. Utilisez `maxAge` dans `scrapeOptions` pour obtenir des résultats en cache pour les pages que nous avons vues récemment.

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl
  from firecrawl.v2.types import ScrapeOptions

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

  # Crawl with cached scraping - 500% faster for pages we've seen recently
  crawl_result = firecrawl.crawl(
      'https://firecrawl.dev',
      limit=100,
      scrape_options=ScrapeOptions(
          formats=['markdown'],
          max_age=3600000  # Use cached data if less than 1 hour old
      )
  )

  for page in crawl_result.data:
      print(f"URL : {page.metadata.source_url}")
      print(f"Contenu : {page.markdown[:200]}...")
  ```

  ```javascript JavaScript theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({ apiKey: "fc-YOUR_API_KEY" });

  // Exploration avec scraping mis en cache — 500 % plus rapide pour les pages consultées récemment
  const crawlResult = await firecrawl.crawl('https://firecrawl.dev', {
    limit: 100,
    scrapeOptions: {
      formats: ['markdown'],
      maxAge: 3600000 // Utiliser les données en cache si elles ont moins d'une heure
    }
  });

  crawlResult.data.forEach(page => {
    console.log(`URL: ${page.metadata.sourceURL}`);
    console.log(`Content: ${page.markdown.substring(0, 200)}...`);
  });
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.firecrawl.dev/v2/crawl \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer fc-VOTRE_CLE_API' \
    -d '{
      "url": "https://firecrawl.dev",
      "limit": 100,
      "scrapeOptions": {
        "formats": ["markdown"],
        "maxAge": 3600000
      }
    }'
  ```
</CodeGroup>

Lors d’un crawl avec `maxAge`, chaque page de votre crawl bénéficiera d’une amélioration de vitesse de 500 % si nous disposons de données récentes en cache pour cette page.

Commencez à utiliser `maxAge` dès aujourd’hui pour des scrapes et des crawls nettement plus rapides !

> Êtes-vous un agent d’IA qui a besoin d’une clé API Firecrawl ? Consultez [firecrawl.dev/agent-onboarding/SKILL.md](https://www.firecrawl.dev/agent-onboarding/SKILL.md) pour obtenir des instructions d’intégration automatisée.
