Hero Claro

Bem-vindo ao Firecrawl

Firecrawl é um serviço de API que recebe uma URL, a rastreia e a converte em Markdown limpo. Rastreamos todas as subpáginas acessíveis e entregamos Markdown limpo para cada uma. Não é necessário sitemap.

Como usar?

Oferecemos uma API fácil de usar na nossa versão hospedada. Você encontra o playground e a documentação aqui. Se preferir, você também pode hospedar o backend por conta própria. Confira os seguintes recursos para começar: Self-host: Para hospedar por conta própria, consulte o guia aqui.

Chave de API

Para usar a API, você precisa criar uma conta no Firecrawl e obter uma chave de API.

Recursos

  • Scrape: extrai o conteúdo de uma URL em formato pronto para LLM (markdown, resumo, dados estruturados via modo JSON, captura de tela, HTML)
  • Crawl: extrai todas as URLs de uma página da web e retorna o conteúdo em formato pronto para LLM
  • Map: informe um site e obtenha todas as suas URLs — extremamente rápido
  • Search: pesquise na web e obtenha o conteúdo completo dos resultados
  • Extract: obtenha dados estruturados de uma única página, de várias páginas ou de sites inteiros com IA.

Capacidades poderosas

  • Formatos prontos para LLM: markdown, resumo, dados estruturados, captura de tela, HTML, links, metadados
  • O que é difícil: proxies, mecanismos antibot, conteúdo dinâmico (renderizado em JS), parsing de saída, orquestração
  • Velocidade relâmpago: obtenha resultados em segundos — feito para velocidade e casos de uso de alto throughput.
  • Personalização: excluir tags, navegar atrás de autenticação com headers personalizados, profundidade máxima de rastreamento, etc.
  • Parsing de mídia: PDFs, DOCX, imagens.
  • Confiabilidade em primeiro lugar: projetado para obter os dados de que você precisa — não importa quão difícil seja.
  • Ações: clicar, rolar, inserir, aguardar e mais, antes de extrair dados
Você encontra todas as capacidades do Firecrawl e como usá-las na nossa documentação

Instalação do Firecrawl

# pip install firecrawl-py

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

Scraping

Para extrair dados de uma única URL, use o método scrape. Ele recebe a URL como parâmetro e retorna os dados extraídos como um dicionário.
from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

# Scrape a website:
doc = firecrawl.scrape("https://firecrawl.dev", formats=["markdown", "html"])
print(doc)

Resposta

Os SDKs retornarão o objeto de dados diretamente. O cURL retornará o payload exatamente como mostrado abaixo.
{
  "success": true,
  "data" : {
    "markdown": "Launch Week I is here! [See our Day 2 Release 🚀](https://www.firecrawl.dev/blog/launch-week-i-day-2-doubled-rate-limits)[💥 Get 2 months free...",
    "html": "<!DOCTYPE html><html lang=\"en\" class=\"light\" style=\"color-scheme: light;\"><body class=\"__variable_36bd41 __variable_d7dc5d font-inter ...",
    "metadata": {
      "title": "Home - Firecrawl",
      "description": "Firecrawl crawls and converts any website into clean markdown.",
      "language": "en",
      "keywords": "Firecrawl,Markdown,Data,Mendable,Langchain",
      "robots": "follow, index",
      "ogTitle": "Firecrawl",
      "ogDescription": "Turn any website into LLM-ready data.",
      "ogUrl": "https://www.firecrawl.dev/",
      "ogImage": "https://www.firecrawl.dev/og.png?123",
      "ogLocaleAlternate": [],
      "ogSiteName": "Firecrawl",
      "sourceURL": "https://firecrawl.dev",
      "statusCode": 200
    }
  }
}

Rastreamento

O recurso de rastreamento permite descobrir e extrair automaticamente o conteúdo de uma URL e todas as suas subpáginas acessíveis. Com nossos SDKs, basta chamar o método de rastreamento — isso enviará uma tarefa de rastreamento, aguardará sua conclusão e retornará os resultados completos de todo o site.

Uso

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-SUA-API-KEY")

docs = firecrawl.crawl(url="https://docs.firecrawl.dev", limit=10)
print(docs)
Se você estiver usando nossa API diretamente, o cURL ou as funções start crawl nos SDKs, será retornado um ID que você pode usar para verificar o status do crawl.
{
  "success": true,
  "id": "123-456-789",
  "url": "https://api.firecrawl.dev/v2/crawl/123-456-789"
}

Verificar status do crawl

Usado para checar o status de um job de crawl e obter seu resultado.
status = firecrawl.get_crawl_status("<crawl-id>")
print(status)

Resposta

A resposta varia conforme o status do crawl. Para respostas não concluídas ou maiores que 10 MB, é fornecido um parâmetro de URL next. Você deve requisitar essa URL para obter os próximos 10 MB de dados. Se o parâmetro next não estiver presente, isso indica o fim dos dados do crawl.
{
  "status": "em andamento",
  "total": 36,
  "completed": 10,
  "creditsUsed": 10,
  "expiresAt": "2024-00-00T00:00:00.000Z",
  "next": "https://api.firecrawl.dev/v2/crawl/123-456-789?skip=10",
  "data": [
    {
      "markdown": "[Página inicial da documentação do Firecrawl![logotipo claro](https://mintlify.s3-us-west-1.amazonaws.com/firecrawl/logo/light.svg)!...",
      "html": "<!DOCTYPE html><html lang=\"en\" class=\"js-focus-visible lg:[--scroll-mt:9.5rem]\" data-js-focus-visible=\"\">...",
      "metadata": {
        "title": "Crie um 'Chat com o site' usando Groq Llama 3 | Firecrawl",
        "language": "en",
        "sourceURL": "https://docs.firecrawl.dev/learn/rag-llama3",
        "description": "Aprenda a usar o Firecrawl, o Groq Llama 3 e o LangChain para criar um bot de 'chat com seu site'."
        "ogLocaleAlternate": [],
        "statusCode": 200
      }
    },
    ...
  ]
}

modo JSON

Com o modo JSON, você pode extrair dados estruturados de qualquer URL com facilidade. Damos suporte a esquemas Pydantic para tornar isso ainda mais simples. Veja como usá-lo:
from firecrawl import Firecrawl
from pydantic import BaseModel
app = Firecrawl(api_key="fc-YOUR-API-KEY")

class JsonSchema(BaseModel):
    company_mission: str
    supports_sso: bool
    is_open_source: bool
    is_in_yc: bool

result = app.scrape(
    'https://firecrawl.dev',
    formats=[{
      "type": "json",
      "schema": JsonSchema
    }],
    only_main_content=False,
    timeout=120000
)

print(result)
Saída:
JSON
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "AI-powered web scraping and data extraction",
        "supports_sso": true,
        "is_open_source": true,
        "is_in_yc": true
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "AI-powered web scraping and data extraction",
        "robots": "follow, index",
        "ogTitle": "Firecrawl",
        "ogDescription": "AI-powered web scraping and data extraction",
        "ogUrl": "https://firecrawl.dev/",
        "ogImage": "https://firecrawl.dev/og.png",
        "ogLocaleAlternate": [],
        "ogSiteName": "Firecrawl",
        "sourceURL": "https://firecrawl.dev/"
      },
    }
}
A API de busca do Firecrawl permite realizar pesquisas na web e, opcionalmente, extrair (scrape) os resultados em uma única operação.
  • Escolha formatos de saída específicos (Markdown, HTML, links, capturas de tela)
  • Escolha fontes específicas (web, notícias, imagens)
  • Pesquise na web com parâmetros personalizáveis (localização, etc.)
Para mais detalhes, consulte a referência da API do endpoint /search.
from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

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

Resposta

Os SDKs retornarão o objeto de dados diretamente. O cURL retornará 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/mendableai/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
      },
      ...
    ]
  }
}

Extraindo sem schema

Agora você pode extrair sem um schema apenas passando um prompt para o endpoint. O LLM escolhe a estrutura dos dados.
from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR-API-KEY")

result = app.scrape(
    'https://firecrawl.dev',
    formats=[{
      "type": "json",
      "prompt": "Extract the company mission from the page."
    }],
    only_main_content=False,
    timeout=120000
)

print(result)
Resultado:
JSON
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "AI-powered web scraping and data extraction",
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "AI-powered web scraping and data extraction",
        "robots": "follow, index",
        "ogTitle": "Firecrawl",
        "ogDescription": "AI-powered web scraping and data extraction",
        "ogUrl": "https://firecrawl.dev/",
        "ogImage": "https://firecrawl.dev/og.png",
        "ogLocaleAlternate": [],
        "ogSiteName": "Firecrawl",
        "sourceURL": "https://firecrawl.dev/"
      },
    }
}

Interagindo com a página usando ações

O Firecrawl permite executar várias ações em uma página da web antes de extrair seu conteúdo. Isso é especialmente útil para interagir com conteúdo dinâmico, navegar entre páginas ou acessar conteúdo que exige interação do usuário. Veja um exemplo de como usar ações para acessar google.com, pesquisar por Firecrawl, clicar no primeiro resultado e tirar uma captura de tela. É importante quase sempre usar a ação wait antes/depois de outras ações para dar tempo suficiente para a página carregar.

Exemplo

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

doc = firecrawl.scrape('https://example.com/login', {
  formats=['markdown'],
  actions=[
    { type: 'write', text: 'john@example.com' },
    { type: 'press', key: 'Tab' },
    { type: 'write', text: 'secret' },
    { type: 'click', selector: 'button[type="submit"]' },
    { type: 'wait', milliseconds: 1500 },
    { type: 'screenshot', fullPage: true },
  ],
});

print(doc.markdown, doc.screenshot);

Resultado

{
  "success": true,
  "data": {
    "markdown": "Our first Launch Week is over! [See the recap 🚀](blog/firecrawl-launch-week-1-recap)...",
    "actions": {
      "screenshots": [
        "https://alttmdsdujxrfnakrkyi.supabase.co/storage/v1/object/public/media/screenshot-75ef2d87-31e0-4349-a478-fb432a29e241.png"
      ],
      "scrapes": [
        {
          "url": "https://www.firecrawl.dev/",
          "html": "<html><body><h1>Firecrawl</h1></body></html>"
        }
      ]
    },
    "metadata": {
      "title": "Home - Firecrawl",
      "description": "Firecrawl crawls and converts any website into clean markdown.",
      "language": "en",
      "keywords": "Firecrawl,Markdown,Data,Mendable,Langchain",
      "robots": "follow, index",
      "ogTitle": "Firecrawl",
      "ogDescription": "Turn any website into LLM-ready data.",
      "ogUrl": "https://www.firecrawl.dev/",
      "ogImage": "https://www.firecrawl.dev/og.png?123",
      "ogLocaleAlternate": [],
      "ogSiteName": "Firecrawl",
      "sourceURL": "http://google.com",
      "statusCode": 200
    }
  }
}

Open Source vs Cloud

O Firecrawl é open source e está disponível sob a licença AGPL-3.0. Para oferecer o melhor produto possível, disponibilizamos uma versão hospedada do Firecrawl junto com nossa oferta open source. A solução em nuvem nos permite inovar continuamente e manter um serviço sustentável e de alta qualidade para todos os usuários. O Firecrawl Cloud está disponível em firecrawl.dev e oferece uma variedade de recursos que não estão disponíveis na versão open source: Firecrawl Cloud vs Open Source

Contribuição

Adoramos contribuições! Leia nosso guia de contribuição antes de enviar um pull request.