Skip to main content

PHP

O SDK PHP do Firecrawl é um wrapper da API do Firecrawl para ajudar você a converter websites em markdown com facilidade.
7 min read

Instalação#

O SDK oficial SDK PHP do Firecrawl é mantido no monorepo do Firecrawl em apps/php-sdk.

Para instalar o SDK PHP do Firecrawl, adicione a dependência via Composer:

Note
Requer PHP 8.1 ou superior.

Integração com Laravel#

O SDK inclui suporte nativo ao Laravel com autodiscovery. Após instalar o pacote, publique o arquivo de configuração:

Em seguida, adicione sua chave de API ao arquivo .env:

As seguintes variáveis de ambiente são suportadas:

VariávelPadrãoDescrição
FIRECRAWL_API_KEYSua chave de API do Firecrawl (obrigatória)
FIRECRAWL_API_URLhttps://api.firecrawl.devURL base da API
FIRECRAWL_TIMEOUT300Tempo limite da requisição HTTP em segundos
FIRECRAWL_MAX_RETRIES3Novas tentativas automáticas para falhas transitórias
FIRECRAWL_BACKOFF_FACTOR0.5Fator de backoff exponencial em segundos

Uso#

  1. Obtenha uma chave de API em firecrawl.dev
  2. Defina a chave de API como uma variável de ambiente chamada FIRECRAWL_API_KEY ou passe-a em FirecrawlClient::create(apiKey: ...)

Aqui está um exemplo rápido com a API atual do SDK:

Usando a facade do Laravel#

Em uma aplicação Laravel, você pode usar a facade Firecrawl ou a injeção de dependência:

Scraping de uma URL#

Para fazer scraping de uma única URL, use o método scrape.

Extração JSON#

Extraia JSON estruturado com JsonFormat usando o endpoint scrape:

Fazer o rastreamento de um site#

Para rastrear um site e aguardar a conclusão, use crawl.

Iniciar um rastreamento#

Inicie um job sem aguardar com startCrawl.

Verificando o status do rastreamento#

Verifique o andamento do rastreamento com getCrawlStatus.

Cancelar um rastreamento#

Cancele um rastreamento em execução com cancelCrawl.

Erros de rastreamento#

Recupere erros no nível do rastreamento (se houver) com getCrawlErrors.

Mapear um site#

Descubra links de um site com map.

Buscando na web#

Faça buscas com configurações opcionais de busca usando search.

Scraping em lote#

Faça o scraping de várias URLs em paralelo com batchScrape.

Para controlar manualmente a execução assíncrona, use startBatchScrape, getBatchScrapeStatus e cancelBatchScrape:

Agente#

Execute um agente de IA com agent.

Com um schema JSON para um resultado estruturado:

Para controle assíncrono manual, use startAgent, getAgentStatus e cancelAgent:

Uso & Métricas#

Confira a concorrência e os créditos restantes:

Ferramentas do Laravel AI SDK#

O SDK inclui classes de ferramentas nativas para o Laravel AI SDK (laravel/ai), para que agentes possam fazer scraping, buscar, mapear e rastrear a web sem precisar de um MCP Server nem de chamadas HTTP manuais.

Note
Requer firecrawl/firecrawl-sdk 1.9.0 ou superior, além de laravel/ai 0.9 ou superior (PHP 8.3+, Laravel 12+). As classes das ferramentas só são carregadas quando laravel/ai está instalado.

As ferramentas resolvem o FirecrawlClient no contêiner, então a configuração existente de config/firecrawl.php e FIRECRAWL_API_KEY é reutilizada como está:

Ferramentas disponíveis#

ClassNome da ferramentaO que faz
FirecrawlScrapefirecrawl_scrapeFaz scraping de uma URL e retorna markdown limpo
FirecrawlSearchfirecrawl_searchFaz uma busca na web e retorna resultados em JSON
FirecrawlMapfirecrawl_mapDescobre as URLs em um site
FirecrawlCrawlfirecrawl_crawlFaz o rastreamento de várias páginas em markdown

Os nomes das ferramentas correspondem ao Firecrawl MCP server, para que os agentes vejam o mesmo vocabulário em todas as interfaces. Registre as quatro de uma vez usando o helper de spread:

Cada ferramenta também aceita um cliente explícito, para credenciais pontuais ou para uso fora do contêiner. FirecrawlTools::all() repassa um para as quatro ferramentas:

Parâmetros da ferramenta#

Cada ferramenta expõe um schema pequeno voltado ao modelo. Estes são os parâmetros que o agente pode passar:

ToolParameterDescription
firecrawl_scrapeurl (required)URL absoluta da página para fazer scraping, incluindo o protocolo
firecrawl_searchquery (required)A query de busca
limitNúmero máximo de resultados a retornar, de 1 a 20. O padrão é 5
firecrawl_mapurl (required)URL base do website a ser mapeado
searchTermo opcional para filtrar as URLs descobertas por relevância
limitNúmero máximo de URLs a retornar, de 1 a 500. O padrão é 100
firecrawl_crawlurl (required)URL a partir da qual iniciar o rastreamento
limitNúmero máximo de páginas para rastrear, de 1 a 25. O padrão é 5

Valores de limit fora do intervalo são ajustados para o limite válido mais próximo, em vez de serem rejeitados. Assim, um modelo que solicitar 99 resultados de busca receberá 20 em vez de um erro.

Comportamento da Ferramenta#

Falhas da ferramenta, como limites de taxa, tempos limite e URLs inválidas, são retornadas ao modelo como strings de erro legíveis, em vez de serem lançadas como exceção, para que as execuções do agente falhem de forma controlada. Os resultados são limitados para caber no contexto do modelo: os resultados de scraping são truncados em 80.000 caracteres, as páginas de rastreamento em 15.000 caracteres cada, dentro de um limite total de 100.000 caracteres para o resultado, e os resultados de busca e mapeamento descartam os itens finais com um marcador explícito de omissão.

firecrawl_search e firecrawl_map retornam arrays JSON de resultados. firecrawl_scrape retorna a página em markdown.

Resultados do rastreamento#

firecrawl_crawl aguarda até 55 segundos pela conclusão do rastreamento e então retorna um objeto JSON que deixa o resultado explícito. Rastreamentos com falha, cancelados ou parciais continuam visíveis para o modelo por meio do campo status, em vez de serem truncados sem aviso:

Dois campos opcionais aparecem quando os resultados não cabem: omittedPages conta as páginas descartadas para manter o resultado dentro do orçamento de saída, e note informa ao modelo que há mais páginas no servidor e que ele deve usar um limite menor ou fazer scraping de páginas específicas com firecrawl_scrape. A ferramenta informa a paginação em vez de segui-la, então agentes que precisam de todas as páginas de um rastreamento grande devem usar FirecrawlClient diretamente.

Se o rastreamento ainda estiver em execução quando o tempo de espera expirar, a ferramenta informa isso e lembra ao modelo que o rastreamento ainda pode ser concluído no servidor. Os inícios de rastreamento usam uma chave de idempotência UUID, então uma nova tentativa no nível HTTP nunca cria um rastreamento duplicado.

Se o seu agente estiver sendo executado em um job enfileirado, mantenha o limite de rastreamento baixo ou aumente o tempo limite do job do worker. O tempo de espera, a cadência de consulta e o limite por página são propriedades protegidas, então estenda a classe para ajustá-los:

Browser#

O SDK PHP inclui utilitários do Browser Sandbox.

Criar uma sessão#

Executar código#

Sessão interativa vinculada ao scraping#

Use o ID do job de scraping para executar código adicional no navegador no mesmo contexto reproduzido:

  • interact(...) executa código na sessão do navegador vinculada ao scraping (e a inicializa no primeiro uso).
  • stopInteractiveBrowser(...) interrompe explicitamente a sessão interativa quando você terminar.

Listar & encerrar sessões#

Configuração#

FirecrawlClient::create() oferece suporte às seguintes options:

OpçãoTipoPadrãoDescrição
apiKeystringvariável de ambiente FIRECRAWL_API_KEYSua Firecrawl chave de API
apiUrlstringhttps://api.firecrawl.dev (ou FIRECRAWL_API_URL)URL base da API
timeoutSecondsfloat300tempo limite da requisição HTTP, em segundos
maxRetriesint3novas tentativas automáticas para falhas transitórias
backoffFactorfloat0.5fator de recuo exponencial, em segundos
httpClientGuzzleHttp\ClientInterfaceCriado com base no tempo limiteCliente HTTP personalizado compatível com Guzzle

Cliente HTTP personalizado#

Você pode passar uma implementação GuzzleHttp\ClientInterface pré-configurada para controlar o pooling de conexões, middleware, configurações de proxy e outros recursos HTTP. Quando esse cliente é fornecido, a configuração timeoutSeconds é ignorada em favor da configuração do próprio cliente.

Tratamento de erros#

O SDK lança exceções em tempo de execução no namespace Firecrawl\Exceptions.

Você é um agente de IA que precisa de uma chave de API do Firecrawl? Consulte firecrawl.dev/agent-onboarding/SKILL.md para ver as instruções de onboarding automatizado.