Skip to content
Firecrawl Docs
Firecrawl Docs
Busca

Busca

Pesquise na web e obtenha o conteúdo completo dos resultados

Pesquise na web e obtenha conteúdo limpo e estruturado de cada resultado em uma única chamada de API. Envie uma consulta para /search e o Firecrawl retorna títulos, descrições e URLs. Adicione scrapeOptions para também recuperar, para cada resultado, o markdown, HTML, links ou capturas de tela da página completa.

Os resultados de busca incluem Highlights relevantes para a consulta por padrão. Defina highlights como false quando quiser a descrição simples ou o snippet de cada site.

Para a lista completa de parâmetros, consulte a Referência da API do endpoint /search.

Experimente no Playground

Teste buscas no Playground interativo — sem precisar de código.

Usado para realizar pesquisas na web e, opcionalmente, obter conteúdo dos resultados.

# pip install firecrawl-py

from firecrawl import Firecrawl

firecrawl = Firecrawl(
  # Nenhuma API key necessária para começar — adicione uma para limites de taxa mais altos:
  # api_key="fc-YOUR-API-KEY",
)
from firecrawl import Firecrawl

firecrawl = Firecrawl(
  # Nenhuma API key necessária para começar — adicione uma para limites de taxa maiores:
  # api_key="fc-YOUR-API-KEY",
)

results = firecrawl.search(
    query="firecrawl",
    limit=3,
)
print(results)

Os SDKs retornam o objeto de dados diretamente. O cURL retorna o payload completo.

JSON
{
  "success": true,
  "data": {
    "web": [
      {
        "url": "https://www.firecrawl.dev/",
        "title": "Firecrawl - The Web Data API for AI",
        "description": "The web crawling, scraping, and search API for AI. Built for scale. Firecrawl delivers the entire internet to AI agents and builders.",
        "position": 1
      },
      {
        "url": "https://github.com/firecrawl/firecrawl",
        "title": "mendableai/firecrawl: Turn entire websites into LLM-ready ... - GitHub",
        "description": "Firecrawl is an API service that takes a URL, crawls it, and converts it into clean markdown or structured data.",
        "position": 2
      },
      ...
    ],
    "images": [
      {
        "title": "Quickstart | Firecrawl",
        "imageUrl": "https://mintlify.s3.us-west-1.amazonaws.com/firecrawl/logo/logo.png",
        "imageWidth": 5814,
        "imageHeight": 1200,
        "url": "https://docs.firecrawl.dev/",
        "position": 1
      },
      ...
    ],
    "news": [
      {
        "title": "Y Combinator startup Firecrawl is ready to pay $1M to hire three AI agents as employees",
        "url": "https://techcrunch.com/2025/05/17/y-combinator-startup-firecrawl-is-ready-to-pay-1m-to-hire-three-ai-agents-as-employees/",
        "snippet": "It's now placed three new ads on YC's job board for “AI agents only” and has set aside a $1 million budget total to make it happen.",
        "date": "3 months ago",
        "position": 1
      },
      ...
    ]
  }
}

Usuários de SDKs: os resultados de busca são agrupados por tipo de origem, não em um array genérico .data. Acesse os resultados da web com result.web, os de notícias com result.news e os de imagens com result.images.

Python
result = firecrawl.search("query")
for item in result.web or []:
    print(item.url, item.title)
JavaScript
const result = await firecrawl.search("query");
for (const item of result.web ?? []) {
  console.log(item.url, item.title);
}

Além dos resultados da web padrão, o Search oferece tipos de resultados especializados por meio do parâmetro sources:

  • web: resultados da web padrão (padrão)
  • news: resultados focados em notícias
  • images: resultados de busca de imagens

Você pode solicitar várias fontes em uma única chamada (por exemplo, sources: ["web", "news"]). Quando fizer isso, o parâmetro limit é aplicado por tipo de fonte — assim, limit: 5 com sources: ["web", "news"] retorna até 5 resultados da web e até 5 resultados de notícias (10 no total). Se você precisar de parâmetros diferentes por fonte (por exemplo, valores diferentes de limit ou scrapeOptions diferentes), faça chamadas separadas.

Filtre os resultados por categorias específicas usando o parâmetro categories:

  • github: Pesquise em repositórios do GitHub, código, issues e documentação
  • research: Pesquise em sites acadêmicos e de pesquisa (arXiv, Nature, IEEE, PubMed, etc.)
  • pdf: Pesquise por PDFs

Pesquise especificamente em repositórios do GitHub:

cURL
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "query": "web scraping em Python",
    "categories": ["github"],
    "limit": 10
  }'

Pesquise sites acadêmicos e de pesquisa:

cURL
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "query": "transformers em aprendizado de máquina",
    "categories": ["pesquisa"],
    "limit": 10
  }'

Combine várias categorias em uma única pesquisa:

cURL
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "query": "redes neurais",
    "categories": ["github", "pesquisa"],
    "limit": 15
  }'

Use includeDomains para restringir os resultados da busca a domínios específicos ou excludeDomains para remover domínios específicos da busca. Esses campos adicionam internamente os operadores site: e -site: à consulta, então informe apenas os domínios, sem protocolo nem caminho.

includeDomains e excludeDomains são mutuamente exclusivos. Use um ou outro em uma única requisição.

cURL
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "query": "web scraping",
    "includeDomains": ["firecrawl.dev", "docs.firecrawl.dev"],
    "limit": 10
  }'
cURL
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "query": "web scraping tools",
    "excludeDomains": ["example.com"],
    "limit": 10
  }'

Cada resultado de pesquisa inclui um campo category indicando sua fonte:

{
  "success": true,
  "data": {
    "web": [
      {
        "url": "https://github.com/example/neural-network",
        "title": "Implementação de Rede Neural",
        "description": "Uma implementação de redes neurais em PyTorch",
        "category": "github"
      },
      {
        "url": "https://arxiv.org/abs/2024.12345",
        "title": "Avanços na Arquitetura de Redes Neurais",
        "description": "Artigo científico sobre melhorias em redes neurais",
        "category": "research"
      }
    ]
  }
}

Exemplos:

cURL
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "query": "openai",
    "sources": ["news"],
    "limit": 5
  }'
cURL
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-SUA_CHAVE_DE_API" \
  -d '{
    "query": "Júpiter",
    "sources": ["imagens"],
    "limit": 8
  }'

Use operadores de imagem para encontrar imagens em alta resolução:

cURL
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "query": "pôr do sol imagesize:1920x1080",
    "sources": ["images"],
    "limit": 5
  }'
cURL
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-SUA_API_KEY" \
  -d '{
    "query": "papel de parede de montanha larger:2560x1440",
    "sources": ["images"],
    "limit": 8
  }'

Resoluções HD comuns:

  • imagesize:1920x1080 - Full HD (1080p)
  • imagesize:2560x1440 - QHD (1440p)
  • imagesize:3840x2160 - 4K UHD
  • larger:1920x1080 - HD ou superior
  • larger:2560x1440 - QHD ou superior

Pesquise e recupere conteúdo dos resultados de busca em uma única operação.

from firecrawl import Firecrawl

firecrawl = Firecrawl(
  # Nenhuma API key necessária para começar — adicione uma para limites de taxa maiores:
  # api_key="fc-YOUR_API_KEY",
)

# Pesquisar e fazer scraping de conteúdo
results = firecrawl.search(
    "firecrawl web scraping",
    limit=3,
    scrape_options={
        "formats": ["markdown", "links"]
    }
)

Todas as opções do endpoint /scrape são compatíveis neste endpoint de busca por meio do parâmetro scrapeOptions.

{
  "success": true,
  "data": [
    {
      "title": "Firecrawl - A API definitiva de web scraping",
      "description": "A Firecrawl é uma poderosa API de web scraping que transforma qualquer site em dados limpos e estruturados para IA e análise.",
      "url": "https://firecrawl.dev/",
      "markdown": "# Firecrawl\n\nA API definitiva de web scraping\n\n## Transforme qualquer site em dados limpos e estruturados\n\nA Firecrawl facilita a extração de dados de sites para aplicações de IA, pesquisa de mercado, agregação de conteúdo e muito mais...",
      "links": [
        "https://firecrawl.dev/pricing",
        "https://firecrawl.dev/docs",
        "https://firecrawl.dev/guides"
      ],
      "metadata": {
        "title": "Firecrawl - A API definitiva de web scraping",
        "description": "A Firecrawl é uma poderosa API de web scraping que transforma qualquer site em dados limpos e estruturados para IA e análise.",
        "sourceURL": "https://firecrawl.dev/",
        "statusCode": 200
      }
    }
  ]
}

Se você precisar filtrar ou processar resultados de busca antes de fazer scraping, use uma abordagem em duas etapas: primeiro faça a busca e, depois, faça scraping das URLs que quiser.

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR_API_KEY")

# Etapa 1: Busca
results = firecrawl.search("firecrawl web scraping", limit=5)

# Etapa 2: Fazer scraping da URL de cada resultado para obter o conteúdo completo
for item in results.web or []:
    page = firecrawl.scrape(item.url, formats=["markdown"])
    print(page.markdown[:200])

Quando usar cada abordagem:

  • Uma etapa (scrapeOptions na busca): você quer o conteúdo de todos os resultados. É mais simples e mais rápido.
  • Duas etapas (buscar e depois fazer scraping): você quer filtrar, classificar ou fazer scraping seletivo dos resultados. É mais flexível.

As duas abordagens usam o Firecrawl na etapa de scraping. Não use requisições HTTP genéricas nem gere resumos apenas com base nos snippets da busca -- o conteúdo completo da página obtido pelo scraping do Firecrawl é o que torna os resultados mais embasados e completos.

A API de busca do Firecrawl oferece diversos parâmetros para personalizar suas buscas:

from firecrawl import Firecrawl

firecrawl = Firecrawl(
  # Nenhuma API key necessária para começar — adicione uma para limites de taxa maiores:
  # api_key="fc-YOUR_API_KEY",
)

# Pesquisa com configuração de localização (Alemanha)
search_result = firecrawl.search(
    "web scraping tools",
    limit=5,
    location="Germany"
)

# Processar os resultados
for result in search_result.data:
    print(f"Title: {result['title']}")
    print(f"URL: {result['url']}")

Use o parâmetro tbs para filtrar resultados por período. Observe que tbs se aplica apenas a resultados da fonte web — ele não filtra resultados de news ou images. Se você precisar de notícias com filtro de tempo, considere usar a fonte web com o operador site: para direcionar domínios de notícias específicos.

from firecrawl import Firecrawl

firecrawl = Firecrawl(
  # Nenhuma API key necessária para começar — adicione uma para limites de taxa maiores:
  # api_key="fc-YOUR-API-KEY",
)

results = firecrawl.search(
    query="firecrawl",
    limit=5,
    tbs="qdr:d",
)
print(len(results.get('web', [])))

Valores comuns de tbs:

  • qdr:h - Última hora
  • qdr:d - Últimas 24 horas
  • qdr:w - Última semana
  • qdr:m - Último mês
  • qdr:y - Último ano
  • sbd:1 - Ordenar por data (mais recentes primeiro)

Para um filtro temporal mais preciso, você pode especificar intervalos de datas exatos usando o formato de intervalo personalizado:

from firecrawl import Firecrawl

# Inicialize o cliente com sua API key
firecrawl = Firecrawl(api_key="fc-YOUR_API_KEY")

# Buscar resultados de dezembro de 2024
search_result = firecrawl.search(
    "firecrawl updates",
    limit=10,
    tbs="cdr:1,cd_min:12/1/2024,cd_max:12/31/2024"
)

Você pode combinar sbd:1 com filtros de tempo para obter resultados ordenados por data dentro de um intervalo de tempo. Por exemplo, sbd:1,qdr:w retorna resultados da última semana ordenados do mais recente para o mais antigo, e sbd:1,cdr:1,cd_min:12/1/2024,cd_max:12/31/2024 retorna resultados de dezembro de 2024 ordenados por data.

Defina um tempo limite personalizado para operações de busca:

from firecrawl import Firecrawl

# Inicialize o cliente com sua chave de API
firecrawl = Firecrawl(api_key="fc-YOUR_API_KEY")

# Defina um tempo limite de 30 segundos
search_result = firecrawl.search(
    "complex search query",
    limit=10,
    timeout=30000  # 30 segundos em milissegundos
)

Para equipes com requisitos rigorosos de tratamento de dados, a Firecrawl oferece opções de Zero Data Retention (ZDR) para o endpoint /search por meio do parâmetro enterprise. A busca com ZDR está disponível nos planos Enterprise — visite firecrawl.dev/enterprise para começar.

Isso é diferente da opção de scraping zeroDataRetention, que controla o ZDR para operações de scraping. Consulte Scrape ZDR para mais detalhes. O parâmetro enterprise se aplica apenas à parte de busca da requisição.

Com o ZDR de ponta a ponta, tanto o Firecrawl quanto nosso provedor de busca upstream aplicam retenção zero de dados. Nenhum dado de consulta ou de resultado é armazenado em nenhum ponto do pipeline.

  • Custo: 10 créditos por 10 resultados
  • Parâmetro: enterprise: ["zdr"]
cURL
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "query": "sensitive topic",
    "limit": 10,
    "enterprise": ["zdr"]
  }'

Com o ZDR anonimizado, o Firecrawl aplica retenção zero total de dados do nosso lado. Nosso provedor de busca pode armazenar a consulta em cache, mas ela é totalmente anonimizada — nenhuma informação identificável é anexada.

  • Custo: 2 créditos por 10 resultados
  • Parâmetro: enterprise: ["anon"]
cURL
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "query": "sensitive topic",
    "limit": 10,
    "enterprise": ["anon"]
  }'

Se você estiver usando busca com scraping de conteúdo (scrapeOptions), o parâmetro enterprise cobre a parte da busca, enquanto zeroDataRetention em scrapeOptions cobre a parte do scraping. Para obter ZDR completo em ambos, defina os dois:

cURL
curl -X POST https://api.firecrawl.dev/v2/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -d '{
    "query": "sensitive topic",
    "limit": 5,
    "enterprise": ["zdr"],
    "scrapeOptions": {
      "formats": ["markdown"],
      "zeroDataRetention": true
    }
  }'

O custo de uma busca é de 2 créditos por 10 resultados, arredondado para cima (1–10 resultados = 2 créditos, 11–20 = 4 créditos, e assim por diante). Se as opções de scraping estiverem ativadas, os custos padrão de scraping se aplicam a cada resultado de busca:

  • Basic scrape: 1 crédito por página da web
  • PDF parsing: 1 crédito por página de PDF
  • Enhanced proxy mode: 4 créditos adicionais por página da web
  • JSON mode: 4 créditos adicionais por página da web

Para ajudar a controlar os custos:

  • Defina parsers: [] se a análise de PDF não for necessária
  • Use proxy: "basic" em vez de "enhanced" quando possível, ou defina como "auto"
  • Limite o número de resultados de busca com o parâmetro limit

Para mais detalhes sobre as opções de scraping, consulte a documentação do recurso Scrape. Tudo, exceto o Agente FIRE-1 e os recursos de rastreamento de alterações, é compatível com este endpoint de busca.

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

Quando um resultado de busca é útil ou deixa de fora conteúdo importante, envie feedback com POST /v2/search/{jobId}/feedback. O primeiro envio de feedback para um job de busca pode reembolsar 1 crédito, sujeito aos limites da equipe, e ajuda a melhorar a qualidade da busca do Firecrawl. Consulte Feedback sobre busca.

Was this page helpful?Suggest editsRaise issue