- Para uma única URL conhecida, o modo JSON no
/scrapeé mais barato e síncrono. - Comparação completa: Escolhendo o Extrator de Dados.
/agent é uma API mágica que pesquisa, navega e coleta dados da mais ampla variedade de sites, encontrando dados em locais de difícil acesso e descobrindo dados de maneiras que nenhuma outra API consegue. Ele realiza em poucos minutos o que levaria muitas horas para um humano — coleta de dados de ponta a ponta, sem scripts ou trabalho manual.
Seja para obter um único dado ou conjuntos de dados completos em escala, o Firecrawl /agent trabalha para obter seus dados.
Pense no /agent como uma pesquisa profunda por dados, onde quer que eles estejam!
Research Preview: agente está em acesso antecipado. Espere algumas imperfeições. Ele ficará significativamente melhor com o tempo.
/extract e leva isso além:
- Não requer URLs: basta descrever o que você precisa pelo parâmetro
prompt. As URLs são opcionais - Busca profunda na web: pesquisa e navega de forma autônoma pelas camadas mais profundas dos sites para encontrar seus dados
- Confiável e preciso: funciona com uma ampla variedade de queries e casos de uso
- Mais rápido: processa múltiplas fontes em paralelo para resultados mais ágeis
Experimente no Playground
Experimente o agente no playground interativo — sem precisar de código.
Usando /agent
O único parâmetro obrigatório é prompt. Basta descrever quais dados deseja extrair. Para obter uma saída estruturada, forneça um schema JSON. Os SDKs oferecem suporte a Pydantic (Python) e Zod (Node) para definições de schema com segurança de tipos:
Resposta
JSON
Fornecendo URLs (Opcional)
Opcionalmente, você pode fornecer URLs para que o agente se concentre em páginas específicas:Status e conclusão de jobs
Jobs de agente são executados de forma assíncrona. Ao enviar um job, você recebe um Job ID que pode usar para verificar o status:- Método padrão:
agent()aguarda e retorna os resultados finais - Iniciar e depois consultar: use
start_agent(Python) oustartAgent(Node) para obter um Job ID imediatamente e depois verificar o status comget_agent_status/getAgentStatus - Notificação em vez de consulta: passe um
webhookao iniciar o job para receber eventos do agente conforme a execução avança e é concluída
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 do seu agente e os resultados nos logs de atividade.
Estados possíveis
O cancelamento é cooperativo. Quando você chama o endpoint de cancelamento, a solicitação é registrada imediatamente, mas qualquer etapa já em andamento (uma etapa de raciocínio do LLM, uma chamada de ferramenta ou uma ação no navegador) continua até um ponto de interrupção seguro antes de o job parar. Os créditos podem continuar sendo consumidos durante esse breve intervalo, então o
creditsUsed final pode ser maior do que o valor informado no momento em que você clicou em cancelar. Um job cancelado informa o status failed quando consultado e emite um evento de webhook agent.cancelled.Exemplo pendente
JSON
Exemplo concluído
JSON
Listando execuções de agentes
GET /agent lista todas as execuções de agentes da sua equipe, das mais recentes às mais antigas — incluindo as iniciadas no playground ou pela API. Cada entrada inclui o ID da execução, a hora de criação, o status, uma breve indicação do destino e as opções com que ela foi iniciada.
Os resultados são paginados em páginas fixas de 20 execuções. Quando houver mais páginas, a resposta incluirá uma URL next; use o timestamp before dela para buscar a próxima página. Os métodos do SDK não paginam automaticamente, para que você mantenha o controle de até onde voltar.
Acompanhando uma execução em andamento
O agente não mantém uma conexão de streaming aberta. Não há stream de eventos enviados pelo servidor nem websocket, então acompanhe uma execução consultando seu rastro ou recebendo webhooks.
Ao ordenar eventos de rastro manualmente, primeiro agrupe-os por
agent.id: producerSequence é monotônica para cada agente emissor, portanto uma única ordenação global intercala incorretamente os eventos de um orquestrador com os de seus subagentes. Os eventos também podem chegar por um breve período após o evento terminal run.finished; portanto, continue consultando durante uma curta janela adicional antes de renderizar o estado final.
Rastros de execução e snapshots
Cada execução registra um rastro de execução canônico — uma sequência ordenada de eventos que abrange chamadas de ferramenta, resumos de raciocínio, atualizações de progresso, sessões de navegador e alterações nos artefatos de resultado. Use-o para depurar uma execução ou criar uma UI de progresso em tempo real:artifact.updated fazem referência ao resultado de trabalho do agente por meio de snapshotId. Obtenha o conteúdo completo de um snapshot usando o endpoint de snapshots:
Rastros e snapshots são registrados em execuções do Spark 2, ou seja, em todas as novas execuções; jobs iniciados em modelos Spark 1 antes de serem descontinuados não os incluem. Consulte as referências da API de rastro e snapshot para conferir o esquema completo de eventos e o catálogo de erros do agente para as falhas retornadas por esses endpoints.
Obtendo os dados de origem do agente
Uma execução grava seus resultados parciais em artefatos à medida que avança, e você pode recuperá-los depois de obter o rastro da execução. Cada eventoartifact.updated descreve uma alteração em um artefato: artifact.kind pode ser json, markdown, html, screenshot ou text; artifact.path indica onde a execução o salvou; e artifact.snapshotId é o identificador que você usa para obter seu conteúdo em GET /agent/{jobId}/snapshots/{snapshotId}. O endpoint de snapshots retorna esse conteúdo em um campo snapshot como uma string: para artefatos json, essa string é codificada em JSON e precisa ser decodificada, enquanto, para artefatos markdown, html e text, ela é o próprio conteúdo.
Para obter o conteúdo de página produzido por uma execução, busque o rastro, filtre os eventos artifact.updated pelo kind desejado e, em seguida, busque cada snapshot:
- Os artefatos são o resultado da execução, não um arquivo de cada página. O que uma execução grava em um artefato depende de como ela processa seu prompt. Portanto, trate o conjunto de artefatos como o que aquela execução específica produziu, e não como um registro garantido de todas as páginas que ela abriu.
- Os resultados das ferramentas contêm o restante. Cada evento
tool_call.finishedinclui um camporesultcom o que a ferramenta retornou. É nele que aparece o conteúdo que nunca se tornou um artefato.
Compartilhar execuções de agentes
Você pode compartilhar execuções de agentes diretamente no Agent Playground. Os links compartilhados são públicos — qualquer pessoa com o link pode ver a saída e a atividade da execução — e você pode revogar o acesso a qualquer momento para desativar o link. As páginas compartilhadas não são indexadas por mecanismos de busca.Seleção de modelo
O Firecrawl Agent é executado no Spark 2 — mais barato e mais rápido que os modelos Spark 1 anteriores, com precisão comparável. Ele é o modelo padrão: todas as execuções usamspark-2, independentemente de você definir o parâmetro model.
Os modelos Spark 1 estão descontinuados. Os nomes dos modelos Spark 1 continuam aceitos por compatibilidade retroativa, mas as solicitações que os utilizam são direcionadas para
spark-2.Spark 2
spark-2 abrange toda a gama de tarefas que antes exigiam escolher entre Mini e Pro, eliminando a necessidade de abrir mão da precisão para reduzir custos.
Destaques:
- Menor custo por execução
- Tempo de execução mais rápido
- Precisão comparável ao antigo carro-chefe Spark 1
- O único modelo com um orçamento de raciocínio: passe
effort(low,mediumouhigh) para controlar o quanto ele raciocina
Especificando um modelo
O parâmetromodel é opcional — todas as solicitações usam spark-2:
Providers de dados que exigem aceite de termos
O Agent pode chamar providers de dados do Alexandria durante uma execução, mas apenas aqueles cujos termos de dados sua equipe já aceitou. Um provider cujos termos você não aceitou nunca é chamado, independentemente do valor deexchange.onTermsRequired. A execução continua com os providers que pode usar, e a resposta de status informa o que foi ignorado.
Não existe modo de aceite automático. Aceitar os termos de um provider sempre exige que uma pessoa concorde com eles, seja no painel ou por meio de uma chamada terms/accept feita pela sua aplicação depois que o usuário tiver concordado explicitamente. Se você criar um agente com base no Firecrawl, ele deve pedir a confirmação do usuário antes de chamar terms/accept. Uma solicitação de dados não equivale a consentimento com os termos de um provider.
Se você omitir
onTermsRequired em um turno seguinte de uma thread, o turno usará o valor do turno anterior. Se um turno terminar em uma aprovação de chamada paga (requireApproval), ele não inclui oferta de termos.
Campos da resposta
Estes campos ficam no objetoexchange de GET /v2/agent/{id}:
skippedProviders(qualquer modo): uma entrada para cada provider restrito que teria ajudado, comprovider,name,capability,adds(o que ele teria acrescentado),reason: "terms_required",version(a versão dos termos) etermsUrl(onde aceitar os termos no painel).requiresAction(somenteask):type: "accept_terms", umapprovalIde uma listaproviders. OapprovalIdestá sempre presente. Ele é o id da aprovação pendente determsque você responde ao dar continuidade à thread. Cada provider traz as chamadas exatas deshow(terms/show) eaccept(terms/accept) que devem ser feitas. Odigestde cada provider (eaccept.options.digest) está sempre presente e pode sernull, o que indica que o catálogo não publicou nenhum. Nesse caso, executeterms/showprimeiro e envie o digest retornado.
Aceite e continue
No modoask:
- Mostre os termos ao usuário. Execute a chamada
showdo provider via/v2/scrapecomalexandria. - Somente se o usuário concordar explicitamente, execute a chamada
acceptdo provider da mesma forma. Seaccept.options.digestfornull, use o digest retornado porterms/show:
- Continue a mesma thread com
exchange.approve. A oferta é aceita por completo, ecallIdsealwayssão ignorados nela. O próximo turno usa esses providers para preencher a lacuna indicada na resposta anterior, sem precisar executar tudo de novo.
exchange.decline: { "approvalId": "..." }. Isso recusa a oferta inteira, e os providers incluídos nela não serão oferecidos novamente no restante da thread.
No modo skip, não há aprovação pendente a ser respondida. Depois que os termos forem aceitos, inicie uma nova execução (ou um novo turno da thread) e o provider ficará disponível.
Parâmetros
Agent vs Extract: O que melhorou
Exemplos de Casos de Uso
- Pesquisa: “Encontre as 5 principais startups de IA e seus valores de financiamento”
- Análise de concorrência: “Compare os planos de preços do Slack e do Microsoft Teams”
- Coleta de dados: “Extraia informações de contato de sites de empresas”
- Resumo de conteúdo: “Resuma as postagens de blog mais recentes sobre web scraping”
Upload de CSV no Agent Playground
O Agent Playground oferece suporte a upload de CSV para processamento em lote. Seu CSV pode conter uma ou mais colunas de dados de entrada. Por exemplo, uma única coluna com nomes de empresas, ou múltiplas colunas como nome da empresa, produto e URL do site. Cada linha representa um item para o agente processar. Envie seu arquivo CSV e, em seguida, adicione colunas de saída usando o botão ”+” no cabeçalho da grade. Cada coluna tem seu próprio prompt — clique no cabeçalho de uma coluna para descrever o que o agente deve encontrar para esse campo (por exemplo, “Nome do CEO ou fundador”, “Total captado em investimentos”). Clique em Run, e o agente processa cada linha em paralelo, preenchendo os resultados.Solução de problemas com Ask
Se os jobs do seu agente falharem ou retornarem resultados inesperados, use a API Ask para depuração de agentes. Descreva o problema e obtenha uma resposta verificada com parâmetros de correção que você pode aplicar diretamente:Referência da API
Confira a referência da Agent API para mais detalhes. Tem alguma sugestão ou precisa de ajuda? Envie um e-mail para help@firecrawl.com.Preços
O Firecrawl Agent usa cobrança dinâmica, que acompanha a complexidade da sua solicitação de extração de dados. Você paga com base no trabalho efetivamente realizado pelo Agent, garantindo preços justos tanto ao extrair dados simples quanto informações estruturadas complexas de múltiplas fontes.Como funciona o preço do Agent
Os preços do Agent são dinâmicos e baseados em créditos durante o Research Preview:- Extrações simples (como informações de contato de uma única página) normalmente consomem menos créditos e custam menos
- Tarefas de pesquisa complexas (como análise de concorrência em vários domínios) consomem mais créditos, mas refletem o esforço total envolvido
- Uso transparente mostra exatamente quantos créditos cada requisição consumiu
- Conversão de créditos converte automaticamente o uso de créditos do Agent em créditos para facilitar a cobrança
O uso de créditos varia de acordo com a complexidade do seu prompt, a quantidade de dados processados e a estrutura do resultado solicitado. Como orientação geral, a maioria das execuções do Agent consome algumas centenas de créditos, embora tarefas simples em uma única página possam usar menos e pesquisas complexas em vários domínios possam usar mais.
Preços para Agentes em Paralelo
Se você estiver executando vários agentes em paralelo com o Spark-1 Fast, o custo se torna muito mais previsível: 10 créditos por célula.Começando
Todos os usuários recebem 5 execuções gratuitas por dia, que podem ser usadas tanto no playground quanto na API, para explorar os recursos do Agent sem nenhum custo. O uso adicional é cobrado com base no consumo de créditos e convertido em créditos.Gerenciando custos
agente pode ser caro, mas há algumas maneiras de reduzir o custo:- Comece com execuções gratuitas: Use suas 5 requisições gratuitas diárias para entender os preços
- Defina o parâmetro
maxCredits: Limite seus gastos definindo um número máximo de créditos que você está disposto a usar. O painel limita isso a 2.500 créditos; para definir um limite maior, use o parâmetromaxCreditsdiretamente via API (observação: valores acima de 2.500 são sempre cobrados como requisições pagas) - Otimize os prompts: Prompts mais específicos geralmente usam menos créditos
- Divida tarefas grandes em execuções menores: Uma única execução do agente retorna aproximadamente 150-200 linhas de dados estruturados. Para jobs grandes de extração, divida por categoria, região ou lote de URLs (3-5 URLs por execução) e mescle os resultados. Isso também mantém cada execução bem abaixo do limite de
maxCredits. - Monitore o uso: Acompanhe seu consumo pelo painel
- Ajuste expectativas: Pesquisas complexas em múltiplos domínios vão consumir mais créditos do que extrações simples de uma única página
Os preços estão sujeitos a alteração à medida que avançamos de Research Preview para disponibilidade geral. Usuários atuais receberão aviso antecipado sobre quaisquer atualizações de preços.
Você é um agente de IA que precisa de uma API key da Firecrawl? Veja firecrawl.dev/agent-onboarding/SKILL.md para instruções de onboarding automatizado.

