- Descobre páginas por meio do sitemap e da navegação recursiva por links
- Suporta filtragem de caminho, limites de profundidade e controle de subdomínios/links externos
- Retorna resultados via polling, WebSocket ou webhook
Experimente no Playground
Teste o rastreamento no playground interativo — sem precisar escrever código.
Instalação
Uso básico
POST /v2/crawl com uma URL inicial. O endpoint retorna um ID do job que você usa para consultar os resultados.
Cada página rastreada consome 1 crédito. O
limit padrão de rastreamento é 10.000 páginas. Antes de iniciar, o endpoint de rastreamento verifica se os créditos restantes podem cobrir o limit — caso contrário, ele retorna um erro 402 (Pagamento Obrigatório). Defina um limit menor para corresponder ao tamanho de rastreamento pretendido (por exemplo, limit: 100) para evitar isso. São cobrados créditos adicionais para certas opções: modo JSON custa 4 créditos adicionais por página, e análise de PDF custa 1 crédito por página de PDF.Opções de scrape
scrapeOptions (JS) / scrape_options (Python). Elas se aplicam a cada página que o crawler coleta, incluindo formatos, proxy, cache, ações, localização e tags.
Verificando o status do rastreamento
Os resultados do job ficam disponíveis via API por 24 horas após a conclusão. Após esse período, você ainda pode ver o histórico e os resultados dos seus rastreamentos nos activity logs.
As páginas no array
data dos resultados do rastreamento são páginas que o Firecrawl conseguiu extrair com sucesso, mesmo que o site de destino tenha retornado um erro HTTP como 404. O campo metadata.statusCode mostra o código de status HTTP retornado pelo site de destino. Para recuperar páginas que o próprio Firecrawl não conseguiu extrair (por exemplo, erros de rede, timeouts ou bloqueios por robots.txt), use o endpoint dedicado Get Crawl Errors (GET /crawl/{id}/errors).Tratamento de respostas
next. Você deve requisitar essa URL para obter os próximos 10 MB de dados. Se o parâmetro next estiver ausente, isso indica o fim dos dados da varredura.
Os parâmetros
skip e next são relevantes apenas ao acessar a API diretamente.
Se você estiver usando o SDK, a paginação é tratada automaticamente e todos os
resultados são retornados de uma vez.Métodos do SDK
Crawl e aguarde
crawl aguarda a conclusão do crawl e retorna a resposta completa. Faz a paginação automaticamente. Isso é recomendado para a maioria dos casos de uso.
Inicie e verifique depois
startCrawl / start_crawl retorna imediatamente com um ID de crawl. Depois, você verifica o status manualmente. Isso é útil para crawls de longa duração ou lógica de polling personalizada.
Resultados em tempo real com WebSocket
Webhooks
cURL
Tipos de evento
Payload
Verificando assinaturas de webhook
X-Firecrawl-Signature contendo uma assinatura HMAC-SHA256. Sempre verifique essa assinatura para garantir que o webhook é autêntico e não foi adulterado.
- Obtenha seu segredo de webhook na aba Advanced das configurações da sua conta
- Extraia a assinatura do cabeçalho
X-Firecrawl-Signature - Calcule o HMAC-SHA256 do corpo bruto da requisição usando o seu segredo
- Compare com o cabeçalho de assinatura usando uma função com proteção contra ataques de timing (tempo constante)
Execução e contabilização de resultados
Lendo os contadores de status
GET /v2/crawl/{id}) traz os contadores que descrevem a execução:
O array
data contém apenas as páginas que o Firecrawl extraiu com sucesso. Páginas que foram tentadas, mas nunca produziram resultado, não aparecem em data — consulte-as em Get Crawl Errors, abaixo.
Paginando os resultados
next traz a URL da próxima página de resultados.
next não é apenas um sinal de “ainda há mais dados”: ele também é emitido sempre que status não for completed, ou seja, um rastreamento em estado terminal failed ou cancelled pode retornar uma URL em next mesmo sem existir nenhum resultado adicional. Não use a ausência de next como condição de saída do seu laço — em um rastreamento que falhou ou foi cancelado, ele nunca desaparece.
A condição terminal é o campo de status. Para ler uma execução até o fim:
- Consulte
GET /v2/crawl/{id}até questatussejacompleted,failedoucancelled. - Enquanto
nextestiver presente e a última página tiver retornado um arraydatanão vazio, siganextpara coletar os resultados restantes. - Pare quando
nextnão estiver presente ou quando uma página não retornar nenhum documento novo.
Páginas com falha e bloqueadas
GET /v2/crawl/{id}/errors) registra as páginas que não entraram em data. Ele retorna dois arrays:
errors— scrape jobs que falharam, cada um comid,url,error(a mensagem de erro) e umtimestampda falha. São páginas cujo scraping o próprio Firecrawl não conseguiu realizar: erros de rede, tempos limite e situações semelhantes. Links para a página inicial de um site externo que foram ignorados intencionalmente aparecem aqui com o código de erroEXTERNAL_LINK.robotsBlocked— URLs que foram tentadas, mas bloqueadas pelo robots.txt do site.
Não há garantia de que essa lista seja uma enumeração completa de todas as falhas: algumas classes internas de falha são atualmente filtradas de
errors antes de a resposta ser montada. Trate-a como o registro das falhas que o Firecrawl reporta, e não como prova de que nada mais deu errado. O código de erro mencionado acima (EXTERNAL_LINK) já é retornado nos objetos de erro hoje, mas ainda não faz parte do schema publicado de GET /crawl/{id}/errors; ele aguarda uma atualização da API Reference.data com o código de status do site em metadata.statusCode.
O alcance do crawler
- Apenas filhos, por padrão. O rastreamento ignora sublinks que não sejam filhos da URL fornecida. Use
crawlEntireDomainpara caminhos irmãos e pais,allowSubdomainspara subdomínios eallowExternalLinkspara seguir links fora do domínio. includePaths/excludePathscorrespondem ao pathname da URL, como padrões regex — não à URL completa nem aos parâmetros de consulta. DefinaregexOnFullURL: truepara corresponder à URL completa, incluindo as strings de consulta. A URL inicial também é verificada contraincludePaths: se não houver correspondência, o rastreamento pode retornar 0 páginas.- Modo sitemap. Com o padrão
sitemap: "include", as URLs vêm do sitemap somadas à descoberta recursiva de links."skip"usa apenas links HTML, portanto páginas presentes somente no sitemap, como PDFs ou páginas muito aninhadas, ficam de fora."only"rastreia o sitemap mais a URL inicial e não descobre links a partir do HTML. maxDiscoveryDepthlimita quantos saltos de descoberta de links a partir da raiz são seguidos. As páginas na profundidade máxima ainda passam por scraping, mas os links encontrados nelas não são seguidos.limitlimita o número de páginas e tem valor padrão10000.ignoreQueryParametersevita repetir o scraping do mesmo caminho com parâmetros de consulta diferentes.- O robots.txt é respeitado, a menos que
ignoreRobotsTxtesteja ativado (apenas Enterprise).
maxConcurrency assume por padrão o limite de simultaneidade da sua equipe, definido pelo seu plano — consulte Limites de taxa.
Quando os resultados variam entre execuções
maxDiscoveryDepth.
Para tornar uma execução mais reproduzível:
- Defina
maxConcurrencycomo1. Como indica a referência de configuração,maxConcurrencyé o “número máximo de scrapings concorrentes” — ele limita quantas requisições ficam em andamento ao mesmo tempo. Isso reduz o entrelaçamento dependente de timing, mas não elimina a variação entre execuções: a descoberta de sitemap é enfileirada fora desse limite, sitemaps aninhados são buscados como jobs independentes e o arraydataretornado é ordenado pelo horário de conclusão, não pela ordem de descoberta. Definirdelaytambém força a simultaneidade para 1. - Use
sitemap: "only"se o site tiver um sitemap abrangente, para que o conjunto de URLs venha do sitemap em vez da descoberta por links.
Como saber quando um rastreamento terminou
crawl.page é disparado para cada página extraída com sucesso, e crawl.completed (ou crawl.failed) é disparado quando a execução termina. Os resultados do job ficam disponíveis na API por 24 horas após a conclusão; depois disso, veja-os nos activity logs.
Referência de configuração
Detalhes importantes
- Descoberta de sitemap: Por padrão, o crawler inclui o sitemap do site para descobrir URLs (
sitemap: "include"). Se você definirsitemap: "skip", apenas páginas acessíveis por links HTML a partir da URL raiz serão encontradas. Recursos como PDFs ou páginas em níveis mais profundos, listados no sitemap mas não vinculados diretamente no HTML, não serão encontrados. Para obter a cobertura máxima, mantenha a configuração padrão. - Uso de créditos: Cada página rastreada custa 1 crédito. O modo JSON adiciona 4 créditos por página, e a análise de PDF custa 1 crédito por página do PDF.
- Expiração dos resultados: Os resultados do job ficam disponíveis via API por 24 horas após a conclusão. Depois disso, consulte os resultados nos activity logs.
- Erros de rastreamento: O array
datacontém as páginas que o Firecrawl extraiu com sucesso. Use o endpoint Get Crawl Errors para recuperar as páginas que falharam devido a erros de rede, timeouts ou bloqueios por robots.txt. - Links externos: Com
allowExternalLinks: true, o crawler segue links que apontam para fora do seu domínio e extrai cada página vinculada uma vez — ele não rastreia os links encontrados nessas páginas externas. Links para a página inicial de um site externo (uma URL raiz sem caminho, por exemplo,https://example.com/) são intencionalmente ignorados para evitar incluir um site inteiro não relacionado; eles aparecem em Get Crawl Errors com o códigoEXTERNAL_LINK. Os redirecionamentos são seguidos até o destino — inclusive quando um link é resolvido para sua URL canônica (por exemplo,http → httpsou a variantewww) — portanto, apenas redirecionamentos que chegam a uma página inicial externa são ignorados. - Resultados não determinísticos: Os resultados do rastreamento podem variar entre execuções com a mesma configuração, porque as páginas são extraídas de forma concorrente e a ordem de descoberta de links depende do timing da rede. Consulte Execução e contabilização de resultados para saber o que varia e como tornar uma execução mais reproduzível.
Você é um agente de IA que precisa de uma API key do Firecrawl? Consulte firecrawl.dev/agent-onboarding/SKILL.md para ver as instruções de onboarding automatizado.

