> ## Documentation Index
> Fetch the complete documentation index at: https://firecrawl-claude-eager-dijkstra-thpbow.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Mode avancé

> Utilisez des proxies avancés pour un scraping fiable sur des sites complexes

<Warning>
  Le paramètre `proxy` est obsolète. Nous recommandons `auto` — la valeur par défaut — qui permet à Firecrawl de gérer la sélection du proxy pour vous.
</Warning>

Firecrawl propose différents types de proxy pour vous aider à effectuer du scraping sur des sites web de complexité variable. Définissez le paramètre `proxy` pour choisir la stratégie de proxy utilisée pour une requête.

<div id="proxy-types">
  ## Types de proxy
</div>

| Type       | Description                                                                          |
| ---------- | ------------------------------------------------------------------------------------ |
| `basic`    | Proxies standard adaptés à la plupart des sites                                      |
| `enhanced` | Proxies avancés pour les sites complexes                                             |
| `auto`     | **Recommandé.** Essaie d’abord `basic`, puis réessaie avec `enhanced` en cas d’échec |

Si vous ne spécifiez pas de proxy, Firecrawl utilise `auto` par défaut.

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

Définissez le paramètre `proxy` pour choisir une stratégie de proxy. L’exemple suivant utilise `auto`, ce qui permet à Firecrawl de décider quand passer à des proxies avancés.

<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',
  )

  # Choisissez une stratégie de proxy : 'basic' | 'enhanced' | 'auto'
  doc = firecrawl.scrape('https://example.com', formats=['markdown'], proxy='auto')

  print(doc.warning or 'ok')
  ```

  ```js Node 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",
  });

  // Choisissez une stratégie de proxy : 'basic' | 'enhanced' | 'auto'
  const doc = await firecrawl.scrape('https://example.com', {
    formats: ['markdown'],
    proxy: 'auto'
  });

  console.log(doc.warning || 'ok');
  ```

  ```bash cURL theme={null}

  // Choisissez une stratégie de proxy : 'basic' | 'enhanced' | 'auto'
  # Aucune clé API requise pour démarrer — ajoutez -H "Authorization: Bearer fc-YOUR-API-KEY" pour des limites de débit plus élevées :
  curl -X POST https://api.firecrawl.dev/v2/scrape \
      -H 'Content-Type: application/json' \
      -d '{
        "url": "https://example.com",
        "proxy": "auto"
      }'

  ```
</CodeGroup>

<div id="when-firecrawl-escalates">
  ## Quand Firecrawl procède à une escalade
</div>

Firecrawl démarre sur des proxys basic. Si la target répond avec un code **401, 403 ou 429**, Firecrawl y voit le signe que le proxy n'était pas suffisant et réessaie la même URL via des proxys avancés. Les autres codes d'état, y compris 404 et 5xx, ne déclenchent aucune escalade, car un autre proxy ne changerait rien à la réponse.

L'escalade a lieu au maximum une fois par requête. Dès lors qu'une requête utilise déjà des proxys avancés, un nouveau 401, 403 ou 429 vous est renvoyé comme résultat au lieu de faire l'objet d'un nouvel essai.

Vous n'avez rien à détecter ni à gérer. Le réessai fait partie de la même requête, et la réponse que vous recevez est la réponse finale.

<Info>
  Les requêtes avec proxy avancé coûtent autant que les requêtes basic — **1 crédit par requête**. Un réessai après escalade n'est pas facturé séparément : une requête qui démarre en basic et se termine en avancé coûte donc toujours 1 crédit.
</Info>

> Vous êtes un agent IA et avez besoin d'une API key Firecrawl ? Consultez [firecrawl.dev/agent-onboarding/SKILL.md](https://www.firecrawl.dev/agent-onboarding/SKILL.md) pour des instructions d'intégration automatisée.
