Installation#
Pour installer le SDK Python Firecrawl, utilisez pip :
Utilisation#
Récupérez une clé API sur firecrawl.dev, puis définissez-la comme variable d’environnement FIRECRAWL_API_KEY ou passez-la directement à la classe Firecrawl.
Pas de clé API ? Vous pouvez instancier Firecrawl sans clé et utiliser scrape, search et interact dans l’offre Free sans clé (avec une limite de débit par IP — voir Limites de débit). Toutes les autres méthodes nécessitent une clé.
Extraction d’une URL#
Pour extraire une URL unique, utilisez la méthode scrape. Elle renvoie le contenu de la page sous forme de donnée structurée, y compris le markdown, les métadonnées et tous les autres formats demandés.
Le SDK Python convertit tous les noms de champs de la réponse de camelCase en snake_case. Par exemple, les champs de métadonnées tels que ogImage, ogTitle et sourceURL de l’API deviennent og_image, og_title et source_url dans la réponse du SDK.
Analyse des fichiers envoyés#
Utilisez parse pour envoyer des fichiers locaux (html, pdf, docx, xlsx, etc.) directement à /v2/parse.
parse ne prend pas en charge changeTracking ni les options réservées au navigateur, comme actions, wait_for, location, mobile, screenshot et branding.
Explorer un site web#
Pour explorer un site web, utilisez la méthode crawl. Elle prend en arguments l’URL de départ et des options facultatives. Ces options permettent de définir des paramètres supplémentaires pour la tâche d’exploration, comme le nombre maximal de pages à parcourir, les domaines autorisés et le format de sortie. Consultez Pagination pour la pagination automatique/manuelle et les limites.
Exploration du sitemap uniquement#
Utilisez sitemap="only" pour explorer uniquement les URL du sitemap (l’URL de départ est toujours incluse et la découverte de liens HTML est ignorée).
Démarrer un crawl#
Lancez une tâche sans attendre avec start_crawl. Elle renvoie un ID de tâche que vous pouvez utiliser pour vérifier l’état. Utilisez crawl lorsque vous voulez un attenteur qui bloque jusqu’à la fin. Voir Pagination pour le comportement et les limites de pagination.
Vérifier l’état d’un crawl#
Vérifiez l’état d’une tâche de crawl avec get_crawl_status. Indiquez l’ID de tâche pour obtenir l’état actuel ainsi que les résultats déjà collectés.
Annuler un crawl#
Annulez une tâche de crawl avec la méthode cancel_crawl. Passez l’ID de tâche renvoyé par start_crawl pour obtenir l’état de l’annulation.
Cartographier un site web#
Utilisez map pour générer une liste d’URL à partir d’un site web. Les options permettent d’adapter le processus de cartographie, par exemple en excluant les sous-domaines ou en s’appuyant sur le sitemap.
Exécuter un agent#
Confiez une tâche de recherche ou d’extraction à un agent à l’aide de la méthode agent. Elle accepte un prompt, un schema facultatif pour structurer la sortie et max_credits pour limiter les crédits que l’exécution peut consommer.
Les exécutions d’agent sont asynchrones. Utilisez start_agent pour obtenir immédiatement un ID de tâche, puis interrogez son état avec get_agent_status.
Chaque exécution enregistre également une trace d’exécution et des instantanés de sortie, que vous pouvez consulter avec get_agent_trace et get_agent_snapshot. Consultez Agent pour le schéma des événements et la liste complète des paramètres.
Exploration d’un site web avec WebSockets#
Pour explorer un site web avec WebSockets, lancez la tâche avec start_crawl et abonnez-vous à l’aide du helper watcher. Créez un watcher avec l’ID de la tâche et attachez des gestionnaires (par exemple pour page, completed, failed) avant d’appeler start().
Pagination#
Les points de terminaison Firecrawl pour crawl et batch scrape renvoient une URL next lorsqu’il reste des données. Le SDK Python effectue par défaut une pagination automatique et agrège tous les documents ; dans ce cas, next vaut None. Vous pouvez désactiver l’auto‑pagination ou définir des limites pour contrôler le comportement de la pagination.
PaginationConfig#
Utilisez PaginationConfig pour contrôler le comportement de la pagination lorsque vous appelez get_crawl_status ou get_batch_scrape_status :
| Option | Type | Par défaut | Description |
|---|---|---|---|
auto_paginate | bool | True | Lorsque True, récupère automatiquement toutes les pages et agrège les résultats. Définissez sur False pour récupérer les pages une par une. |
max_pages | int | None | S'arrête après avoir récupéré ce nombre de pages (s'applique uniquement lorsque auto_paginate=True). |
max_results | int | None | S'arrête après avoir collecté ce nombre de documents (s'applique uniquement lorsque auto_paginate=True). |
max_wait_time | int | None | S'arrête après ce nombre de secondes (s'applique uniquement lorsque auto_paginate=True). |
Aides à la pagination manuelle#
Lorsque auto_paginate=False, la réponse inclut une URL next si davantage de données sont disponibles. Utilisez ces méthodes utilitaires pour récupérer les pages suivantes :
get_crawl_status_page(next_url)- Récupère la page suivante des résultats de crawl en utilisant l'URL opaquenextprovenant d'une réponse précédente.get_batch_scrape_status_page(next_url)- Récupère la page suivante des résultats de scraping par lot en utilisant l'URL opaquenextprovenant d'une réponse précédente.
Ces méthodes renvoient le même type de réponse que l'appel de statut initial, y compris une nouvelle URL next s'il reste d'autres pages.
Crawl#
Utilisez la méthode « waiter » crawl pour l’approche la plus simple, ou démarrez un job et paginez manuellement.
Crawl simple (pagination automatique, par défaut)
- Voir le flux par défaut dans Explorer un site web.
Crawl manuel avec contrôle de la pagination
Démarrez un job, puis récupérez une page à la fois avec auto_paginate=False. Utilisez get_crawl_status_page pour récupérer les pages suivantes :
Exploration manuelle avec limites (pagination automatique + arrêt anticipé)
Laissez la pagination automatique activée, mais arrêtez plus tôt avec max_pages, max_results ou max_wait_time :
Scrape par lots#
Utilisez la méthode de waiter batch_scrape, ou lancez un job et paginez manuellement.
Extraction par lot simple (pagination automatique, par défaut)
- Voir le parcours par défaut dans Batch Scrape.
Scraping par lot manuel avec contrôle de la pagination
Lancez une tâche, puis récupérez les résultats page par page avec auto_paginate=False. Utilisez get_batch_scrape_status_page pour récupérer les pages suivantes :
Extraction par lots manuelle avec limites (pagination automatique + arrêt anticipé)
Laissez la pagination automatique activée, mais arrêtez plus tôt avec max_pages, max_results ou max_wait_time :
Gestion des erreurs#
Lorsqu'une requête échoue, le SDK lève une exception accompagnée d'un message descriptif indiquant l'origine du problème. Entourez vos appels de try/except pour intercepter ces exceptions et gérer les erreurs dans votre application.
Classe asynchrone#
Pour les opérations asynchrones, utilisez la classe AsyncFirecrawl. Ses méthodes reprennent celles de Firecrawl, mais elles ne bloquent pas le thread principal.
Navigateur#
Lancez des sessions de navigateur dans le cloud et exécutez du code à distance.
Créer une session#
Exécuter du code#
Exécuter JavaScript plutôt que Python :
Profils#
Enregistrez et réutilisez l'état du navigateur (cookies, localStorage, etc.) d'une session à l'autre :
Connexion via le CDP#
Pour un contrôle total de Playwright, connectez-vous directement en utilisant l’URL du CDP :
Lister & fermer des sessions#
Session interactive liée au scrape#
Utilisez un ID de tâche de scrape pour continuer à interagir avec le contexte de page rejoué issu de ce scrape :
interact(job_id, ...)exécute du code dans la session de navigateur liée au scrape.- Le premier appel à
interactinitialise automatiquement la session à partir du contexte du scrape. - Les appels suivants à
interactsur le même ID de tâche réutilisent cet état actif du navigateur. stop_interaction(job_id)arrête la session interactive une fois que vous avez terminé.
Êtes-vous un agent IA qui a besoin d’une clé API Firecrawl ? Consultez firecrawl.dev/agent-onboarding/SKILL.md pour obtenir les instructions d’intégration automatisée.

