Scrapez des pages individuelles, lancez un crawl sur des sites entiers et cartographiez les URL depuis votre application Node.js. Le SDK gère la pagination, les nouvelles tentatives et l’interrogation asynchrone des tâches pour que vous puissiez vous concentrer sur l’exploitation des données retournées.
Installation#
Installez le SDK avec npm :
Utilisation#
- Récupérez une clé d’API sur firecrawl.dev
- Définissez la clé d’API comme variable d’environnement nommée
FIRECRAWL_API_KEY, ou transmettez-la en paramètre à la classeFirecrawl.
Pas de clé d’API ? Vous pouvez instancier Firecrawl sans clé et utiliser scrape, search et interact sur 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é.
Voici un exemple d’utilisation du SDK avec gestion des erreurs :
Scraper une URL#
Récupérez les données structurées d’une page à partir d’une URL avec la méthode scrape.
Analyse des fichiers importés#
Utilisez parse lorsque vous souhaitez importer un fichier local (html, pdf, docx, xlsx, etc.) au lieu d’effectuer du scraping à partir d’une URL.
parse ne prend pas en charge changeTracking ni les options propres au navigateur comme screenshot, branding, actions, waitFor, location et mobile.
Crawl d’un site web#
Crawlez l’ensemble d’un site web à partir d’une seule URL avec la méthode crawl. Vous pouvez définir une limite de pages, restreindre le crawl à des domaines spécifiques et choisir les formats de sortie. Consultez Pagination pour la pagination automatique et manuelle.
Crawl uniquement via le sitemap#
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 désactivée).
Démarrer un crawl#
Lancez un crawl sans attendre qu’il se termine avec startCrawl. La méthode renvoie un ID de tâche que vous pourrez interroger plus tard. Utilisez plutôt crawl lorsque vous voulez bloquer jusqu’à la fin. Voir Pagination pour le comportement de pagination et les limites.
Vérifier l’état du crawl#
Vérifiez si un crawl est toujours en cours, terminé ou a échoué avec la méthode checkCrawlStatus. Passez l’ID de tâche renvoyé par startCrawl.
Annuler un crawl#
Annulez un crawl en cours avec la méthode cancelCrawl. Passez l’ID de tâche renvoyé par startCrawl.
Cartographier un site web#
Découvrez toutes les URL d’un site web avec la méthode map. Fournissez une URL de départ et obtenez en retour la liste des pages découvertes.
Exécuter un agent#
Confiez une tâche de recherche ou d’extraction à un agent à l’aide de la méthode agent. Fournissez un prompt, un schema facultatif pour structurer la sortie et maxCredits pour plafonner les crédits que l’exécution peut consommer.
Les exécutions d’agent sont asynchrones. Utilisez startAgent pour obtenir immédiatement un ID de tâche, puis interrogez son état avec getAgentStatus.
Chaque exécution enregistre également une trace d’exécution et des instantanés de sortie, que vous pouvez consulter avec getAgentTrace et getAgentSnapshot. Consultez Agent pour le schéma des événements et la liste complète des paramètres.
Crawler un site web avec WebSockets#
Recevez les résultats du crawl en temps réel avec watcher(jobId, options). Vous recevez chaque page dès qu’elle est explorée, au lieu d’attendre la fin de la tâche complète.
Pagination#
Les points de terminaison Firecrawl pour crawl et batch renvoient une URL next lorsqu’il reste des données. Le SDK Node effectue, par défaut, une pagination automatique et agrège tous les documents ; dans ce cas, next vaut null. Vous pouvez désactiver la pagination automatique ou définir des limites.
Crawl#
Utilisez la méthode d’attente crawl pour la solution la plus simple, ou démarrez un job et paginez manuellement.
Exploration simple (pagination automatique, par défaut)
- Voir le flux par défaut dans Exploration d’un site web.
Crawl manuel avec contrôle de la pagination (page unique)
- Lancez un job, puis récupérez les pages une par une avec
autoPaginate: false.
Exploration manuelle avec limites (pagination automatique + arrêt anticipé)
- Conservez la pagination automatique activée, mais arrêtez plus tôt avec
maxPages,maxResultsoumaxWaitTime.
Scrape par lots#
Utilisez la méthode du waiter batchScrape, ou lancez un job et paginez manuellement.
Collecte par lots simple (pagination automatique, par défaut)
- Voir le flux par défaut dans Batch Scrape.
Scraping par lots manuel avec contrôle de la pagination (page unique)
- Lancez un job, puis récupérez les pages une par une avec
autoPaginate: false.
Scrape manuel par lots avec limites (pagination automatique + arrêt anticipé)
- Laissez la pagination automatique activée, mais arrêtez plus tôt avec
maxPages,maxResultsoumaxWaitTime.
Navigateur#
Démarrez des sessions de navigateur dans le cloud et exécutez du code à distance.
Créer une session#
Exécuter du code#
Exécutez JavaScript plutôt que Python :
Exécutez Bash avec agent-browser :
Profils#
Enregistrez et réutilisez l’état du navigateur (cookies, localStorage, etc.) d’une session à l’autre :
Connexion via le CDP#
Pour bénéficier d’un contrôle complet via Playwright, connectez-vous directement à l’aide de l’URL CDP :
Lister & fermer les sessions#
Session interactive liée au scraping#
Utilisez l’ID d’une tâche de scraping pour continuer à interagir avec le contexte de page rejoué de ce scraping :
interact(jobId, {...})exécute du code dans la session de navigateur liée au scraping.- Le premier appel à
interactinitialise automatiquement la session à partir du contexte de scraping. - Les appels suivants à
interactavec le même ID de tâche réutilisent cet état actif du navigateur. stopInteraction(jobId)arrête la session interactive une fois que vous avez terminé.
Gestion des erreurs#
Le SDK lève des exceptions explicites pour toute erreur renvoyée par l’API Firecrawl. Encadrez les appels dans des blocs try/catch, comme dans les exemples ci-dessus.
Êtes-vous un agent IA qui a besoin d’une clé API Firecrawl ? Consultez firecrawl.dev/agent-onboarding/SKILL.md pour obtenir des instructions d’onboarding automatisé.

