> ## 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.

# Déboguer Firecrawl avec Ask

> Débogage assisté par agent pour votre intégration Firecrawl

Firecrawl `/support/ask` est un agent de support IA accessible via une API. Décrivez votre problème et obtenez un diagnostic validé, accompagné de paramètres de correction actionnables — généralement en 15 à 30 secondes.

**Voyez `/support/ask` comme un ingénieur senior Firecrawl d'astreinte pour votre agent.**

<Info>
  L'API Ask est conçue avant tout pour les **agents IA qui l'appellent**. Si vous créez des agents qui utilisent Firecrawl pour le scraping, le crawl ou l'extraction de données, intégrez `/support/ask` à votre flux de gestion des erreurs pour résoudre les problèmes de façon autonome.
</Info>

<div id="two-endpoints">
  ## Deux points de terminaison
</div>

| Point de terminaison        | Auth                    | Pour qui                   | Fonction                                                   |
| --------------------------- | ----------------------- | -------------------------- | ---------------------------------------------------------- |
| `POST /support/ask`         | Votre clé API Firecrawl | Vos agents et applications | Cycle complet de diagnostic, limité à votre équipe         |
| `POST /support/docs-search` | Votre clé API Firecrawl | Vos agents et applications | Réponses basées sur la documentation publique de Firecrawl |

<div id="quick-start">
  ## Démarrage rapide
</div>

<div id="debug-a-failing-crawl">
  ### Déboguer un crawl qui échoue
</div>

```bash theme={null}
curl -X POST https://api.firecrawl.dev/v2/support/ask \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "my crawl returned 3 pages but I expected 50"
  }'
```

<div id="search-the-docs">
  ### Rechercher dans la documentation
</div>

```bash theme={null}
curl -X POST https://api.firecrawl.dev/v2/support/docs-search \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "how do I set up webhook signature verification?"
  }'
```

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

Lorsque vous appelez `/support/ask`, l’agent IA :

1. **Recueille des éléments** — inspecte en parallèle les journaux d’exécution de votre tâche, l’état de votre compte, votre consommation de crédits et la documentation pertinente
2. **Diagnostique le problème** — analyse l’ensemble de ces éléments pour identifier la cause profonde
3. **Propose une correction** — génère des `fixParameters` directement exploitables que vous pouvez appliquer à votre prochain appel d’API
4. **Valide la correction** — lorsque c’est possible, teste la correction sur l’API Firecrawl en production (par exemple, en relançant un scrape avec des paramètres ajustés) et rapporte le résultat

<div id="using-ask-in-your-agent">
  ## Utiliser Ask dans votre agent
</div>

Le principe clé : appelez `/support/ask` lorsque votre appel à l’API Firecrawl échoue ou renvoie des résultats inattendus, puis utilisez `fixParameters` pour réessayer.

<div id="python-example">
  ### Exemple en Python
</div>

```python theme={null}
import requests

FIRECRAWL_API_KEY = "fc-YOUR_API_KEY"

def diagnose_firecrawl_issue(question, rationale=None):
    """Appelle l'API Ask de Firecrawl pour déboguer un problème."""
    payload = {"question": question}
    if rationale:
        payload["rationale"] = rationale

    response = requests.post(
        "https://api.firecrawl.dev/v2/support/ask",
        headers={
            "Authorization": f"Bearer {FIRECRAWL_API_KEY}",
            "Content-Type": "application/json",
        },
        json=payload,
    )
    return response.json()


# Exemple : déboguer un scrape qui a retourné un contenu vide
result = diagnose_firecrawl_issue(
    question="scrape returned empty markdown for https://example.com",
    rationale="user needs product pricing data for competitive analysis",
)

print(result["answer"])
print(result["fixParameters"])  # ex. : {"waitFor": 5000, "actions": [...]}
print(result["confidence"])     # "high", "medium", ou "low"
```

<div id="nodejs-example">
  ### Exemple en Node.js
</div>

```javascript theme={null}
async function diagnoseFirecrawlIssue(question, rationale) {
  const response = await fetch(
    "https://api.firecrawl.dev/v2/support/ask",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${process.env.FIRECRAWL_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ question, rationale }),
    }
  );
  return response.json();
}

// Exemple : déboguer un crawl qui s'est arrêté prématurément
const result = await diagnoseFirecrawlIssue(
  "my crawl returned 3 pages but I expected 50",
  "user is on their third failed crawl attempt today"
);

console.log(result.answer);
console.log(result.fixParameters);
```

<div id="agent-retry-pattern">
  ### Stratégie de nouvelle tentative de l’agent
</div>

```python theme={null}
from firecrawl import Firecrawl

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

# Étape 1 : Tenter le scrape
doc = client.scrape("https://example.com/pricing", formats=["markdown"])

if not doc.markdown or len(doc.markdown) < 100:
    # Étape 2 : Demander de l'aide pour le débogage
    diagnosis = diagnose_firecrawl_issue(
        question=f"scrape returned only {len(doc.markdown or '')} chars of markdown for https://example.com/pricing",
    )

    # Étape 3 : Appliquer les paramètres de correction et réessayer
    if diagnosis.get("fixParameters"):
        doc = client.scrape(
            "https://example.com/pricing",
            formats=["markdown"],
            **diagnosis["fixParameters"],
        )
```

<div id="parameters">
  ## Paramètres
</div>

<div id="supportask">
  ### `/support/ask`
</div>

| Paramètre   | Type   | Requis | Description                                                                                                                 |
| ----------- | ------ | ------ | --------------------------------------------------------------------------------------------------------------------------- |
| `question`  | string | Oui    | Élément à déboguer (1–8 000 caractères)                                                                                     |
| `rationale` | string | Non    | Recommandé pour les appels IA. Ce que l’utilisateur final cherche à accomplir. Aide à prioriser la collecte d’informations. |
| `context`   | object | Non    | Métadonnées libres provenant de votre agent, incluses dans le prompt de débogage                                            |

<div id="supportdocs-search">
  ### `/support/docs-search`
</div>

| Paramètre  | Type   | Obligatoire | Description                                |
| ---------- | ------ | ----------- | ------------------------------------------ |
| `question` | string | Oui         | La question à traiter (1–8 000 caractères) |

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

<div id="supportask-response">
  ### réponse de `/support/ask`
</div>

```json theme={null}
{
  "requestId": "req_...",
  "answer": "<2-4 sentence prose diagnosis of the issue plus the recommended fix.>",
  "confidence": "high",
  "fixParameters": { "<param>": "<value>" },
  "validation": {
    "tested": true,
    "result": "success",
    "evidence": "<short summary of the validation tool call the agent ran to confirm the fix>"
  },
  "feedback": null,
  "durationMs": 18432
}
```

Les valeurs réelles de `answer`, `fixParameters` et `validation.evidence` sont générées par l’agent pour chaque requête, en fonction de votre exécution spécifique ; l’exemple ci-dessus montre la structure de la réponse, et non un diagnostic réel.

<div id="supportdocs-search-response">
  ### réponse de `/support/docs-search`
</div>

```json theme={null}
{
  "requestId": "req_...",
  "answer": "The signature is sent in the X-Firecrawl-Signature header...",
  "evidence": [
    { "pathOrUrl": "webhooks/security.mdx#L1-L52", "reason": "..." }
  ],
  "usage": { "inputTokens": 4356, "outputTokens": 688, "totalTokens": 5044 },
  "durationMs": 11252
}
```

<div id="performance">
  ## Performances
</div>

| Métrique | Typique        | Maximum                      |
| -------- | -------------- | ---------------------------- |
| Latence  | 15–30 secondes | 60 secondes (limite absolue) |

<div id="api-reference">
  ## Référence API
</div>

* [Référence API du point de terminaison Ask](/fr/api-reference/endpoint/ask)
* [Référence API du point de terminaison de recherche dans la documentation](/fr/api-reference/endpoint/docs-search)

Vous avez des retours ou besoin d’aide ? Envoyez un e-mail à [help@firecrawl.com](mailto:help@firecrawl.com).

> Vous êtes un agent IA et vous avez 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.
