- Lida com complexidades: proxies, cache, limites de taxa, conteúdo bloqueado por JS
- Lida com conteúdo dinâmico: websites dinâmicos, sites renderizados por JS, PDFs, imagens
- Gera markdown limpo, dados estruturados, capturas de tela ou HTML.
Experimente no Playground
Teste scraping no playground interativo — sem precisar de código.
Se uma solicitação falhar, consulte Erros para ver o catálogo completo de códigos de erro, causas, soluções e orientações para tentar novamente.
Extraindo dados de uma URL com o Firecrawl
endpoint /scrape
Instalação
Uso
Cada scraping consome 1 crédito. Créditos adicionais são cobrados para certas opções: modo JSON custa 4 créditos adicionais por página, os formatos question e highlights custam 4 créditos adicionais por página por formato, proxy avançado custa 4 créditos adicionais por página, a redação de PII custa 4 créditos adicionais por página e o processamento de PDFs custa 1 crédito por página de PDF, e a extração de áudio ou vídeo custa 4 créditos adicionais por página.
Resposta
Formatos de Scraping
- Markdown (
markdown) - Resumo (
summary) - HTML (
html) - versão limpa do HTML da página - HTML bruto (
rawHtml) - HTML não modificado conforme recebido da página - Captura de tela (
screenshot, com opções comofullPage,quality,viewport) — as URLs das capturas de tela expiram após 24 horas - Links (
links) - JSON (
json) - saída estruturada - Imagens (
images) - extrair todas as URLs de imagens da página - Branding (
branding) - extrair identidade da marca e sistema de design - Produto (
product) - extrair um produto estruturado (título, preço, disponibilidade, variantes) de páginas de produto - Áudio (
audio) - extrair áudio em MP3 de URLs de vídeo compatíveis, por exemplo, YouTube (retorna uma URL assinada do GCS, expira após 1 hora) - Vídeo (
video) - extrair o vídeo com a melhor qualidade de URLs de vídeo compatíveis, por exemplo, YouTube (retorna uma URL assinada do GCS, expira após 1 hora) - Query (
query, compromptemodeopcional) - faça uma pergunta em linguagem natural sobre a página; a resposta é retornada no campoanswer
Extraia dados estruturados
endpoint /scrape (com json)
JSON
Extraindo sem esquema
prompt para o endpoint. O LLM escolhe a estrutura dos dados.
JSON
Opções do formato JSON
json, passe um objeto dentro de formats com os seguintes parâmetros:
schema: JSON Schema para a saída estruturada.prompt: Prompt opcional para orientar a extração quando houver um schema ou quando você preferir uma orientação leve.
Extrair identidade de marca
endpoint /scrape (com branding)
Resposta
O formato de branding retorna um objetoBrandingProfile completo com a seguinte estrutura:
Output
Estrutura do Perfil de Branding
branding contém as seguintes propriedades:
colorScheme: Esquema de cores detectado ("light"ou"dark")logo: URL do logotipo principalcolors: Objeto com as cores da marca:primary,secondary,accent: Cores principais da marcabackground,textPrimary,textSecondary: Cores de UIlink,success,warning,error: Cores semânticas
fonts: Lista (array) de famílias tipográficas usadas na páginatypography: Informações detalhadas de tipografia:fontFamilies: Famílias tipográficas primária, de títulos e de códigofontSizes: Definições de tamanho para títulos e corpo do textofontWeights: Definições de espessura (leve, regular, média, negrito)lineHeights: Valores de altura de linha para diferentes tipos de texto
spacing: Informações de espaçamento e layout:baseUnit: Unidade base de espaçamento em pixelsborderRadius: Raio de borda padrãopadding,margins: Valores de espaçamento
components: Estilos de componentes de UI:buttonPrimary,buttonSecondary: Estilos de botõesinput: Estilos de campos de entrada
icons: Informações de estilo de íconesimages: Imagens da marca (logo, favicon, og:image)animations: Configurações de animação e transiçãolayout: Configuração de layout (grid, alturas de cabeçalho/rodapé)personality: Traços de personalidade da marca (tom, energia, público-alvo)
Combinando com outros formatos
Extrair dados de produtos
product extrai um produto estruturado de modo determinístico — o mesmo tipo de resultado estruturado que o formato json, mas sem uma chamada de LLM nem um schema definido por você, feito especificamente para páginas de produto. Se você vinha extraindo campos de produto com um schema json, use formats: ["product"] no lugar — é mais rápido e mais barato, mas limitado a produtos.
Ele retorna um objeto product com title, brand, category, description e variants — em que cada variant inclui price, original price, availability e images — útil para monitoramento de preços, ingestão de catálogo ou ferramentas de comparação de preços.
endpoint /scrape (com dados de produto)
Resposta
O formatoproduct retorna um objeto product com a seguinte estrutura:
Output
Estrutura do objeto product
product contém as seguintes propriedades:
title: O nome do produtobrand: A marca do produto (opcional)category: A categoria do produto (opcional)url: A URL canônica do produtodescription: A descrição do produto (opcional)variants: Array de variantes do produto. Preços, disponibilidade e imagens ficam em cada variante — um produto com um único SKU ainda retorna exatamente uma variante com esses dados. Cada variante tem:id,sku,title: identificadores e nome da variante (todos opcionais)values: um mapa do nome da opção para o valor, por exemplo{ "color": "Charcoal" }(opcional)price: o objeto de preço atual (opcional):amount: O valor numérico do preçocurrency: O código da moeda, informado apenas quando a página o fornece (opcional)formatted: O preço como exibido na página (opcional)
sale: presente apenas quando a variante está com desconto (opcional). Contém:originalPrice: O preço original (antes do desconto), com a mesma estrutura deprice
availability: informações de disponibilidade, sempre presentes em uma variante:inStock: Se a variante está em estoquetext: O texto bruto de disponibilidade extraído da página (opcional)
images: array de imagens da variante, cada uma com umaurle um textoaltopcional (opcional)
Como a extração de produtos funciona
__NEXT_DATA__/Nuxt/Apollo/Redux/Remix) > runParams do AliExpress > dataLayer do GA4 > OpenGraph/<meta>. A combinação leva a identidade em conta, então campos de produtos diferentes nunca são mesclados. A moeda só é informada quando a página a fornece.
A extração de produtos é fail-closed: páginas ambíguas não geram nenhum produto, e fontes mais fracas, como OpenGraph, só contribuem quando há um preço. Em uma página sem produto extraível, a resposta omite o objeto
product e adiciona um warning (por exemplo, “Nenhum produto encontrado…”).Hospedagem própria: o formato
product depende de um serviço dedicado de extração de produtos. No Firecrawl Cloud, ele funciona imediatamente. Se você fizer hospedagem própria, defina PRODUCT_EXTRACTION_SERVICE_URL para apontar para esse serviço — quando ela não estiver definida, solicitar o formato product retorna um aviso e nenhum produto (o mesmo padrão que os formatos de áudio/vídeo usam para esse serviço).Combinando com outros formatos
Você pode combinar o formato de produto com outros formatos para obter dados completos da página:Extração de áudio
audio extrai áudio de sites compatíveis (por exemplo, o YouTube) como arquivos MP3 e retorna uma URL assinada do Google Cloud Storage. Isso é útil para criar pipelines de processamento de áudio, serviços de transcrição ou ferramentas de podcast.
A extração de áudio custa 5 créditos por página (1 base + 4 adicionais).
Extração de vídeo
video extrai o vídeo na melhor qualidade de sites compatíveis (como o YouTube) e retorna uma URL assinada do Google Cloud Storage. Isso é útil para criar pipelines de processamento de vídeo, ferramentas de moderação ou fluxos de trabalho de arquivamento de mídia.
A extração de vídeo custa 5 créditos por página (1 base + 4 adicionais).
Formato de pergunta
question para fazer uma pergunta em linguagem natural sobre a página. O Firecrawl retorna a resposta no campo answer da resposta.
O formato
question custa 5 créditos por página (1 base + 4 adicionais pela chamada ao LLM).question(obrigatório paratype: "question"): a pergunta a ser respondida. Máximo de 10.000 caracteres.
question com outros formatos — por exemplo, solicitar markdown e question juntos para obter o conteúdo da página e uma resposta em uma única chamada.
question também está disponível em /search via scrapeOptions, que executa a mesma extração em cada resultado de busca.
Formato highlights
highlights para encontrar trechos relevantes do texto da página. O Firecrawl retorna o texto selecionado no campo highlights da resposta.
O formato
highlights custa 5 créditos por página (1 base + 4 adicionais pela chamada ao LLM).query(obrigatório paratype: "highlights"): a solicitação para selecionar trechos do texto de origem. Máximo de 10.000 caracteres.
highlights com outros formatos — por exemplo, solicitar markdown e highlights juntos para obter o conteúdo da página e os trechos de texto em uma única chamada.
highlights também está disponível em /search via scrapeOptions, que executa a mesma extração em cada resultado de busca.
Ocultação de PII
redactPII: true para ocultar informações de identificação pessoal do markdown retornado. O campo markdown contém o resultado com os dados ocultados.
Consulte Ocultação de PII para exemplos de SDK, cURL, CLI e MCP.
Interagindo com a página com ações
wait antes/depois de executar outras ações para dar tempo suficiente para a página carregar.
Exemplo
Resultado
Localização e idioma
Como funciona
Uso
Para usar as configurações de localização e idioma, inclua o objetolocation no corpo da sua requisição com as seguintes propriedades:
country: Código de país ISO 3166-1 alpha-2 (por exemplo, ‘US’, ‘AU’, ‘DE’, ‘JP’). O padrão é ‘US’.languages: Uma lista (array) de idiomas e localidades preferidos para a requisição, em ordem de prioridade. O padrão é o idioma da localização especificada.
Cache e maxAge
- Janela de frescor padrão:
maxAge = 172800000ms (2 dias). Se a página em cache for mais recente do que isso, ela é retornada instantaneamente; caso contrário, a página passa por scraping novamente e então armazenada em cache. - Desempenho: Pode acelerar os scrapings em até 5x quando os dados não precisam estar ultra recentes.
- Sempre buscar conteúdo novo: Defina
maxAgecomo0. Observe que isso ignora totalmente o cache, então toda requisição passa por todo o pipeline de scraping, o que significa que a requisição levará mais tempo para ser concluída e terá maior chance de falhar. Use ummaxAgediferente de zero se a atualização em toda requisição não for crítica. - Evitar armazenamento: Defina
storeInCachecomofalsese você não quiser que o Firecrawl armazene em cache os resultados desta requisição. - Consulta somente no cache: Defina
minAgepara fazer uma consulta somente no cache sem acionar um novo scraping. O valor está em milissegundos e especifica a idade mínima que os dados em cache devem ter. Se nenhum dado em cache for encontrado, um404com o código de erroSCRAPE_NO_CACHED_DATAé retornado. DefinaminAgecomo1para aceitar qualquer dado em cache, independentemente da idade. - Rastreio de mudanças: Requisições que incluem
changeTrackingignoram o cache, entãomaxAgeé desconsiderado. - Créditos: Resultados em cache ainda custam 1 crédito por página. O cache melhora a velocidade, não o uso de créditos.
Scraping em lote de várias URLs
Como funciona
/crawl. Ele cria um job de raspagem em lote e retorna um ID do job para você acompanhar o status da raspagem em lote.
O SDK oferece 2 métodos: síncrono e assíncrono. O método síncrono retorna os resultados do job de raspagem em lote, enquanto o método assíncrono retorna um ID do job que você pode usar para verificar o status da raspagem em lote.
Como usar
Resposta
Sincronamente
Concluído
Assíncrono
/batch/scrape/{id}. Este endpoint deve ser usado enquanto a tarefa ainda estiver em execução ou logo após sua conclusão, pois as tarefas de batch scrape expiram após 24 horas.
Modo Enhanced
Retenção zero de dados (ZDR)
zeroDataRetention: true na sua requisição:
cURL
Capturas de tela não estão disponíveis no modo ZDR. Como capturas de tela exigem envio para armazenamento persistente, elas são incompatíveis com a garantia do ZDR. Requisições que incluem
zeroDataRetention: true e o formato screenshot retornarão um erro.Você é um agente de IA que precisa de uma chave de API do Firecrawl? Consulte firecrawl.dev/agent-onboarding/SKILL.md para obter instruções automatizadas de integração.

