O endpoint /extract
simplifica a coleta de dados estruturados a partir de qualquer quantidade de URLs ou até de domínios inteiros. Forneça uma lista de URLs, opcionalmente com curingas (por exemplo, example.com/*
), e um prompt ou um esquema descrevendo as informações desejadas. O Firecrawl se encarrega de rastrear, analisar e consolidar conjuntos de dados, grandes ou pequenos.
O Extract tem cobrança diferente dos demais endpoints. Consulte os
preços do Extract para mais detalhes.
Você pode extrair dados estruturados de uma ou várias URLs, incluindo curingas:
- Página única
Exemplo: https://firecrawl.dev/some-page
- Múltiplas páginas / Domínio completo
Exemplo: https://firecrawl.dev/*
Ao usar /*
, o Firecrawl rastreia e processa automaticamente todas as URLs que conseguir descobrir nesse domínio e, em seguida, extrai os dados solicitados. Este recurso é experimental; envie um e-mail para help@firecrawl.com se tiver problemas.
from firecrawl import Firecrawl
firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")
schema = {
"type": "object",
"properties": {"description": {"type": "string"}},
"required": ["description"],
}
res = firecrawl.extract(
urls=["https://docs.firecrawl.dev"],
prompt="Extrair a descrição da página",
schema=schema,
)
print(res.data["description"])
Parâmetros principais:
- urls: Uma lista com um ou mais URLs. Suporta curingas (
/*
) para uma varredura mais ampla.
- prompt (Opcional, exceto se não houver schema): Um prompt em linguagem natural descrevendo os dados desejados ou como você quer que esses dados sejam estruturados.
- schema (Opcional, exceto se não houver prompt): Uma estrutura mais rígida caso você já conheça o layout JSON.
- enableWebSearch (Opcional): Quando
true
, a extração pode seguir links fora do domínio especificado.
Consulte a referência da API para mais detalhes.
{
"success": true,
"data": {
"company_mission": "A Firecrawl é a maneira mais fácil de extrair dados da web. Desenvolvedores a utilizam para, de forma confiável, converter URLs em markdown pronto para LLM ou em dados estruturados com uma única chamada de API.",
"supports_sso": false,
"is_open_source": true,
"is_in_yc": true
}
}
Status do job e conclusão
Ao enviar um job de extração — diretamente pela API ou pelos métodos de inicialização — você receberá um ID de job. Você pode usar esse ID para:
- Obter o status do job: Envie uma solicitação para o endpoint /extract/ para ver se o job ainda está em execução ou se foi concluído.
- Aguardar resultados: Se você usar o método padrão
extract
(Python/Node), o SDK aguarda e retorna os resultados finais.
- Iniciar e depois consultar: Se você usar os métodos de início —
start_extract
(Python) ou startExtract
(Node) — o SDK retorna um ID de job imediatamente. Use get_extract_status
(Python) ou getExtractStatus
(Node) para verificar o progresso.
Este endpoint só funciona para jobs em andamento ou concluídos recentemente (nas últimas 24 horas).
Abaixo estão exemplos de código para verificar o status de um job de extração usando Python, Node.js e cURL:
from firecrawl import Firecrawl
firecrawl = Firecrawl(
api_key="fc-YOUR_API_KEY"
)
# Primeiro, inicie uma tarefa de extração
extract_job = firecrawl.start_extract([
'https://docs.firecrawl.dev/*',
'https://firecrawl.dev/'
], prompt="Extraia a missão da empresa e os recursos destas páginas.")
# Obtenha o status da tarefa de extração
job_status = firecrawl.get_extract_status(extract_job.id)
print(job_status)
# Exemplo de saída:
# id=None
# status='concluído'
# expires_at=datetime.datetime(...)
# success=True
# dados=[{ ... }]
# error=None
# aviso=None
# fontes=None
- completed: A extração foi concluída com sucesso.
- processing: O Firecrawl ainda está processando sua solicitação.
- failed: Ocorreu um erro; os dados não foram totalmente extraídos.
- cancelled: A tarefa foi cancelada pelo usuário.
{
"success": true,
"data": [],
"status": "em processamento",
"expiresAt": "2025-01-08T20:58:12.000Z"
}
{
"success": true,
"data": {
"company_mission": "A Firecrawl é a maneira mais simples de extrair dados da web. Desenvolvedores a utilizam para converter URLs, com confiabilidade, em markdown pronto para LLM ou dados estruturados com uma única chamada à API.",
"supports_sso": false,
"is_open_source": true,
"is_in_yc": true
},
"status": "concluído",
"expiresAt": "2025-01-08T20:58:12.000Z"
}
Se você preferir não definir uma estrutura rígida, pode simplesmente fornecer um prompt
. O modelo subjacente escolherá uma estrutura para você, o que pode ser útil para solicitações mais exploratórias ou flexíveis.
from firecrawl import Firecrawl
# Inicialize o FirecrawlApp com sua chave de API
firecrawl = Firecrawl(api_key='your_api_key')
data = firecrawl.extract([
'https://docs.firecrawl.dev/',
'https://firecrawl.dev/'
], prompt="Extraia a missão da Firecrawl da página.")
print(data)
{
"success": true,
"data": {
"company_mission": "Transforme sites em dados prontos para LLMs. Impulsione seus apps de IA com dados limpos coletados de qualquer site."
}
}
Definir enableWebSearch = true
na sua requisição expandirá o crawl além do conjunto de URLs fornecido. Isso pode capturar informações de suporte ou relacionadas a partir de páginas linkadas.
Veja um exemplo que extrai informações sobre dash cams, enriquecendo os resultados com dados de páginas relacionadas:
from firecrawl import Firecrawl
# Inicialize o FirecrawlApp com sua chave de API
firecrawl = Firecrawl(api_key='your_api_key')
data = firecrawl.extract([
'https://nextbase.com/dash-cams/622gw-dash-cam'
], prompt="Extraia detalhes sobre as melhores câmeras veiculares, incluindo preços, recursos, prós e contras, e avaliações.", enable_web_search=True)
print(data)
Exemplo de resposta com pesquisa na web
{
"success": true,
"data": {
"dash_cams": [
{
"name": "Nextbase 622GW",
"price": "$399.99",
"features": [
"Gravação de vídeo em 4K",
"Estabilização de imagem",
"Alexa integrada",
"Integração com What3Words"
],
/* Informações abaixo enriquecidas com outros sites, como
https://www.techradar.com/best/best-dash-cam, encontradas
via o parâmetro enableWebSearch */
"pros": [
"Excelente qualidade de vídeo",
"Ótima visão noturna",
"GPS integrado"
],
"cons": ["Preço elevado", "O app pode ser instável"]
}
],
}
A resposta inclui contexto adicional obtido de páginas relacionadas, oferecendo informações mais completas e precisas.
O endpoint /extract agora permite extrair dados estruturados usando um prompt, sem a necessidade de URLs específicas. Isso é útil para pesquisa ou quando as URLs exatas são desconhecidas. Atualmente em alpha.
from pydantic import BaseModel
class ExtractSchema(BaseModel):
company_mission: str
# Defina o prompt para extração
prompt = 'Extraia a missão da empresa do site da Firecrawl.'
# Realize a extração
scrape_result = firecrawl.extract(prompt=prompt, schema=ExtractSchema)
print(scrape_result)
Limitações Conhecidas (Beta)
-
Cobertura de Sites em Grande Escala
A cobertura completa de sites muito grandes (por exemplo, “todos os produtos da Amazon”) em uma única requisição ainda não é suportada.
-
Consultas Lógicas Complexas
Pedidos como “encontrar todas as postagens de 2025” podem não retornar de forma confiável todos os dados esperados. Capacidades de consulta mais avançadas estão em desenvolvimento.
-
Inconsistências Ocasionais
Os resultados podem variar entre execuções, especialmente em sites muito grandes ou dinâmicos. Geralmente os detalhes essenciais são capturados, mas alguma variação é possível.
-
Estado Beta
Como o endpoint /extract
ainda está em Beta, recursos e desempenho continuarão evoluindo. Agradecemos relatos de bugs e feedback para nos ajudar a melhorar.
O FIRE-1 é um agente de IA que amplia as capacidades de scraping do Firecrawl. Ele pode controlar ações do navegador e navegar por estruturas complexas de sites para viabilizar a extração de dados além do scraping tradicional.
Você pode usar o agente FIRE-1 com o endpoint /extract
para tarefas de extração complexas que exigem navegar por várias páginas ou interagir com elementos.
Exemplo (cURL):
curl -X POST https://api.firecrawl.dev/v2/extract \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer SUA_CHAVE_DE_API' \
-d '{
"urls": ["https://example-forum.com/topic/123"],
"prompt": "Extraia todos os comentários de usuários deste tópico do fórum.",
"schema": {
"type": "object",
"properties": {
"comments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"author": {"type": "string"},
"comment_text": {"type": "string"}
},
"required": ["author", "comment_text"]
}
}
},
"required": ["comments"]
},
"agent": {
"model": "FIRE-1"
}
}'
O FIRE-1 já está disponível e em versão de prévia.
Cobrança e acompanhamento de uso
Você pode conferir os preços do endpoint /extract na página de preços do Extract e acompanhar o uso pela página do Extract no dashboard.
Tem algum feedback ou precisa de ajuda? Envie um e-mail para help@firecrawl.com.