Skip to main content

Installation

Le SDK PHP officiel est maintenu dans le monorepo de Firecrawl à l’emplacement apps/php-sdk. Pour installer le SDK PHP de Firecrawl, ajoutez la dépendance via Composer :
Nécessite PHP 8.1 ou version ultérieure.

Intégration Laravel

Le SDK inclut une prise en charge native de Laravel avec découverte automatique. Après avoir installé le package, publiez le fichier de configuration :
Ajoutez ensuite votre clé API à votre fichier .env :
Les variables d’environnement suivantes sont prises en charge :

Utilisation

  1. Obtenez une clé API sur firecrawl.dev
  2. Définissez la clé API comme variable d’environnement nommée FIRECRAWL_API_KEY, ou passez-la à FirecrawlClient::create(apiKey: ...)
Voici un exemple rapide avec l’API actuelle du SDK :

Utiliser la façade Laravel

Dans une application Laravel, vous pouvez utiliser la façade Firecrawl ou l’injection de dépendances :

Scraping d’une URL

Pour effectuer le scraping d’une seule URL, utilisez la méthode scrape.

Extraction de JSON

Extrayez du JSON structuré avec JsonFormat via le point de terminaison scrape :

Effectuer le crawl d’un site web

Pour effectuer le crawl d’un site web et attendre la fin de l’opération, utilisez crawl.

Démarrer un crawl

Lancez une tâche sans attendre avec startCrawl.

Vérification de l’état du crawl

Consultez la progression du crawl avec getCrawlStatus.

Annuler un crawl

Pour annuler un crawl en cours, utilisez cancelCrawl.

Erreurs de crawl

Récupérez les erreurs du crawl (le cas échéant) avec getCrawlErrors.

Cartographier un site web

Découvrez les liens d’un site avec map.

Rechercher sur le Web

Effectuez une recherche avec des paramètres de recherche facultatifs à l’aide de search.

Scraping par lots

Extrayez plusieurs URL en parallèle à l’aide de batchScrape.
Pour gérer manuellement l’exécution asynchrone, utilisez startBatchScrape, getBatchScrapeStatus et cancelBatchScrape :

Agent

Exécutez un agent propulsé par l’IA avec agent.
Avec un schéma JSON pour une sortie structurée :
Pour gérer manuellement l’exécution asynchrone, utilisez startAgent, getAgentStatus et cancelAgent :

Utilisation & métriques

Consultez la concurrence et les crédits restants :

Outils du Laravel AI SDK

Le SDK fournit des classes d’outils natives pour le Laravel AI SDK (laravel/ai), afin que les agents puissent scraper, rechercher, cartographier et crawl le web sans serveur MCP ni appels HTTP manuels.
Nécessite firecrawl/firecrawl-sdk 1.9.0 ou une version ultérieure, ainsi que laravel/ai 0.9 ou une version ultérieure (PHP 8.3+, Laravel 12+). Les classes d’outils ne sont chargées que si laravel/ai est installé.
Les outils résolvent FirecrawlClient à partir du conteneur, de sorte que votre configuration existante dans config/firecrawl.php et FIRECRAWL_API_KEY sont réutilisées telles quelles :

Outils disponibles

Les noms des outils correspondent à ceux du serveur MCP Firecrawl, afin que les agents retrouvent le même vocabulaire sur toutes les interfaces. Enregistrez les quatre d’un seul coup avec le helper de spread :
Chaque outil accepte également une instance client explicite, pour des identifiants à usage ponctuel ou une utilisation en dehors du conteneur. FirecrawlTools::all() en transmet une aux quatre outils :

Paramètres de l’outil

Chaque outil expose un schéma minimal à destination du modèle. Voici les paramètres que l’agent peut transmettre : Les valeurs de limit hors limites sont ramenées à la borne la plus proche au lieu d’être rejetées. Ainsi, un modèle qui demande 99 résultats de recherche en recevra 20 plutôt qu’une erreur.

Comportement de l’outil

Les échecs de l’outil, tels que les limites de débit, les délais d’expiration et les URL invalides, sont renvoyés au modèle sous forme de chaînes d’erreur lisibles au lieu de provoquer des exceptions, afin que les exécutions d’agent puissent se poursuivre en mode dégradé. Les sorties sont plafonnées pour rester dans le contexte du modèle : les résultats de scrape sont tronqués à 80 000 caractères, les pages de crawl à 15 000 caractères chacune, dans la limite d’un budget total de 100 000 caractères pour l’ensemble du résultat, et les résultats de recherche et de cartographie suppriment les derniers éléments avec un marqueur d’omission explicite. firecrawl_search et firecrawl_map renvoient des tableaux JSON de résultats. firecrawl_scrape renvoie la page au format markdown.

Résultats du crawl

firecrawl_crawl attend jusqu’à 55 secondes que le crawl se termine, puis renvoie un objet JSON qui indique clairement le résultat. Les crawls échoués, annulés ou partiels restent visibles pour le modèle via le champ status, au lieu d’être tronqués sans avertissement :
Deux champs facultatifs apparaissent lorsque les résultats dépassent la limite : omittedPages compte les pages omises pour rester dans le budget de sortie, et note indique au modèle que d’autres pages existent sur le serveur et qu’il doit utiliser une limite plus faible ou scraper des pages spécifiques avec firecrawl_scrape. L’outil signale la pagination au lieu de la suivre ; les agents qui ont besoin de toutes les pages d’un crawl volumineux doivent donc utiliser FirecrawlClient directement. Si le crawl est toujours en cours lorsque le délai d’attente expire, l’outil le signale et rappelle au modèle que le crawl peut encore se terminer côté serveur. Chaque démarrage de crawl inclut une clé d’idempotence UUID, donc une nouvelle tentative au niveau HTTP ne crée jamais de crawl en double. Si votre agent s’exécute dans un job mis en file d’attente, gardez une limite de crawl basse ou augmentez le délai d’expiration du job du worker. Le délai d’attente, la cadence d’interrogation et la limite par page sont des propriétés protégées ; étendez donc la classe pour les ajuster :

Browser

Le SDK PHP inclut des utilitaires Browser Sandbox.

Créer une session

Exécuter du code

Session interactive liée au scraping

Utilisez l’ID d’une tâche de scraping pour exécuter du code navigateur supplémentaire dans le même contexte rejoué :
  • interact(...) exécute du code dans la session de navigateur liée au scraping (et l’initialise lors de la première utilisation).
  • stopInteractiveBrowser(...) arrête explicitement la session interactive lorsque vous avez terminé.

Lister et fermer les sessions

Configuration

FirecrawlClient::create() prend en charge les options suivantes :

Client HTTP personnalisé

Vous pouvez fournir une implémentation GuzzleHttp\ClientInterface préconfigurée pour contrôler le pool de connexions, le middleware, les paramètres de proxy et d’autres fonctionnalités HTTP. Lorsqu’elle est fournie, le paramètre timeoutSeconds est ignoré au profit de la configuration propre au client.

Gestion des erreurs

Le SDK génère des exceptions d’exécution sous Firecrawl\Exceptions.
Vous êtes un agent IA et vous avez besoin d’une clé API Firecrawl ? Consultez firecrawl.dev/agent-onboarding/SKILL.md pour la procédure d’intégration automatisée.