> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firecrawl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# agente

> Reúna dados em qualquer lugar da web.

**Escolhendo a ferramenta certa.** agente é a escolha certa quando você **não sabe quais são as URLs** ou precisa de navegação autônoma pela web.

* Para **uma única URL conhecida**, o [modo JSON no `/scrape`](/pt-BR/features/llm-extract) é mais barato e síncrono.
* Comparação completa: [Escolhendo o Extrator de Dados](/pt-BR/developer-guides/usage-guides/choosing-the-data-extractor).

Firecrawl `/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!**

<Info>
  **Research Preview**: agente está em acesso antecipado. Espere algumas imperfeições. Ele ficará significativamente melhor com o tempo. [Compartilhe feedback →](mailto:product@firecrawl.com)
</Info>

agente aproveita tudo o que há de melhor no `/extract` e leva isso além:

* **Nenhuma URL necessária**: Basta descrever o que você precisa via parâmetro `prompt`. URLs são opcionais
* **Pesquisa aprofundada na web**: Pesquisa e navega autonomamente em profundidade em sites para encontrar seus dados
* **Confiável e preciso**: Funciona com uma grande variedade de consultas e casos de uso
* **Mais rápido**: Processa múltiplas fontes em paralelo para resultados mais rápidos

<Card title="Experimente no Playground" icon="play" href="https://www.firecrawl.dev/agent">
  Experimente o agente no playground interativo — sem precisar de código.
</Card>

<div id="using-agent">
  ## Usando `/agent`
</div>

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:

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl
  from pydantic import BaseModel, Field
  from typing import List, Optional

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

  class Founder(BaseModel):
      name: str = Field(description="Nome completo do fundador")
      role: Optional[str] = Field(None, description="Cargo ou posição")
      background: Optional[str] = Field(None, description="Formação profissional")

  class FoundersSchema(BaseModel):
      founders: List[Founder] = Field(description="List of founders")

  result = app.agent(
      prompt="Find the founders of Firecrawl",
      schema=FoundersSchema,
      model="spark-1-mini",
      max_credits=100
  )

  print(result.data)
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';
  import { z } from 'zod';

  const firecrawl = new Firecrawl({ apiKey: "fc-YOUR_API_KEY" });

  const result = await firecrawl.agent({
    prompt: "Find the founders of Firecrawl",
    schema: z.object({
      founders: z.array(z.object({
        name: z.string().describe("Full name of the founder"),
        role: z.string().describe("Role or position").optional(),
        background: z.string().describe("Professional background").optional()
      })).describe("List of founders")
    }),
    model: "spark-1-mini",
    maxCredits: 100
  });

  console.log(result.data);
  ```

  ```bash cURL theme={null}
  curl -X POST "https://api.firecrawl.dev/v2/agent" \
    -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "prompt": "Find the founders of Firecrawl",
      "model": "spark-1-mini",
      "maxCredits": 100,
      "schema": {
        "type": "object",
        "properties": {
          "founders": {
            "type": "array",
            "description": "List of founders",
            "items": {
              "type": "object",
              "properties": {
                "name": { "type": "string", "description": "Full name" },
                "role": { "type": "string", "description": "Role or position" },
                "background": { "type": "string", "description": "Histórico profissional" }
              },
              "required": ["name"]
            }
          }
        },
        "required": ["founders"]
      }
    }'
  ```
</CodeGroup>

<div id="response">
  ### Resposta
</div>

```json JSON theme={null}
{
  "success": true,
  "status": "completed",
  "data": {
    "founders": [
      {
        "name": "Eric Ciarla",
        "role": "Co-founder",
        "background": "Previously at Mendable"
      },
      {
        "name": "Nicolas Camara",
        "role": "Co-founder",
        "background": "Previously at Mendable"
      },
      {
        "name": "Caleb Peffer",
        "role": "Co-founder",
        "background": "Previously at Mendable"
      }
    ]
  },
  "expiresAt": "2024-12-15T00:00:00.000Z",
  "creditsUsed": 15
}
```

<div id="providing-urls-optional">
  ## Fornecendo URLs (Opcional)
</div>

Opcionalmente, você pode fornecer URLs para que o agente se concentre em páginas específicas:

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

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

  result = app.agent(
      urls=["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
      prompt="Compare os recursos e informações de preços dessas páginas"
  )

  print(result.data)
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({ apiKey: "fc-YOUR_API_KEY" });

  const result = await firecrawl.agent({
    urls: ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
    prompt: "Compare the features and pricing information from these pages"
  });

  console.log(result.data);
  ```

  ```bash cURL theme={null}
  curl -X POST "https://api.firecrawl.dev/v2/agent" \
    -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "urls": [
        "https://docs.firecrawl.dev",
        "https://firecrawl.dev/pricing"
      ],
      "prompt": "Compare the features and pricing information from these pages"
    }'
  ```
</CodeGroup>

<div id="job-status-and-completion">
  ## Status e conclusão de jobs
</div>

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) ou `startAgent` (Node) para obter um Job ID imediatamente e depois verificar o status com `get_agent_status` / `getAgentStatus`

<Note>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](https://www.firecrawl.dev/app/logs).</Note>

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

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

  # Iniciar uma tarefa de agente
  agent_job = app.start_agent(
      prompt="Find the founders of Firecrawl"
  )

  # Check the status
  status = app.get_agent_status(agent_job.id)

  print(status)
  # Example output:
  # status='completed'
  # success=True
  # data={ ... }
  # expires_at=datetime.datetime(...)
  # credits_used=15
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({ apiKey: "fc-YOUR_API_KEY" });

  // Iniciar uma tarefa do agente
  const started = await firecrawl.startAgent({
    prompt: "Find the founders of Firecrawl"
  });

  // Verificar o status
  if (started.id) {
    const status = await firecrawl.getAgentStatus(started.id);
    console.log(status.status, status.data);
  }
  ```

  ```bash cURL theme={null}
  curl -X GET "https://api.firecrawl.dev/v2/agent/<jobId>" \
    -H "Authorization: Bearer $FIRECRAWL_API_KEY"
  ```
</CodeGroup>

<div id="possible-states">
  ### Estados possíveis
</div>

| Status       | Descrição                                         |
| ------------ | ------------------------------------------------- |
| `processing` | O agente ainda está trabalhando na sua requisição |
| `completed`  | Extração concluída com sucesso                    |
| `failed`     | Ocorreu um erro durante a extração                |
| `cancelled`  | O job foi cancelado pelo usuário                  |

<Note>
  **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 passar para `cancelled`. 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.
</Note>

<div id="pending-example">
  #### Exemplo pendente
</div>

```json JSON theme={null}
{
  "success": true,
  "status": "processing",
  "expiresAt": "2024-12-15T00:00:00.000Z"
}
```

<div id="completed-example">
  #### Exemplo concluído
</div>

```json JSON theme={null}
{
  "success": true,
  "status": "completed",
  "data": {
    "founders": [
      {
        "name": "Eric Ciarla",
        "role": "Co-founder"
      },
      {
        "name": "Nicolas Camara",
        "role": "Co-founder"
      },
      {
        "name": "Caleb Peffer",
        "role": "Co-founder"
      }
    ]
  },
  "expiresAt": "2024-12-15T00:00:00.000Z",
  "creditsUsed": 15
}
```

<div id="share-agent-runs">
  ## Compartilhar execuções de agentes
</div>

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.

<div id="model-selection">
  ## Seleção de modelos
</div>

O Firecrawl Agent oferece dois modelos. **O Spark 1 Mini é 60% mais barato** e é o padrão — perfeito para a maioria dos casos de uso. Atualize para o Spark 1 Pro quando precisar de máxima precisão em tarefas complexas.

| Model          | Cost                | Accuracy  | Best For                              |
| -------------- | ------------------- | --------- | ------------------------------------- |
| `spark-1-mini` | **60% mais barato** | Padrão    | A maioria das tarefas (padrão)        |
| `spark-1-pro`  | Padrão              | Mais alta | Pesquisa complexa, extrações críticas |

<Tip>
  **Comece com o Spark 1 Mini** (padrão) — ele lida bem com a maioria das tarefas de extração com um custo 60% menor. Altere para o Pro apenas para pesquisas complexas em múltiplos domínios ou quando a precisão for crítica.
</Tip>

<div id="spark-1-mini-default">
  ### Spark 1 Mini (Padrão)
</div>

`spark-1-mini` é nosso modelo eficiente, ideal para tarefas simples de extração de dados.

**Use o Mini quando:**

* Extraindo dados simples (informações de contato, preços, etc.)
* Trabalhando com sites bem estruturados
* Custo-benefício é uma prioridade
* Executando trabalhos de extração em grande escala

<div id="spark-1-pro">
  ### Spark 1 Pro
</div>

`spark-1-pro` é o nosso principal modelo, projetado para máxima precisão em tarefas complexas de extração.

**Use o Pro quando:**

* Realizar análises competitivas complexas
* Extrair dados que exigem raciocínio profundo
* A precisão for crítica para o seu caso de uso
* Lidar com dados ambíguos ou difíceis de encontrar

<div id="specifying-a-model">
  ### Especificando um modelo
</div>

Informe o parâmetro `model` para selecionar qual modelo usar:

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

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

  # Usando Spark 1 Mini (padrão - pode ser omitido)
  result = app.agent(
      prompt="Find the pricing of Firecrawl",
      model="spark-1-mini"
  )

  # Using Spark 1 Pro for complex tasks
  result = app.agent(
      prompt="Compare all enterprise features and pricing across Firecrawl, Apify, and ScrapingBee",
      model="spark-1-pro"
  )

  print(result.data)
  ```

  ```js Node theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({ apiKey: "fc-YOUR_API_KEY" });

  // Usando Spark 1 Mini (padrão - pode ser omitido)
  const result = await firecrawl.agent({
    prompt: "Find the pricing of Firecrawl",
    model: "spark-1-mini"
  });

  // Usando Spark 1 Pro para tarefas complexas
  const resultPro = await firecrawl.agent({
    prompt: "Compare all enterprise features and pricing across Firecrawl, Apify, and ScrapingBee",
    model: "spark-1-pro"
  });

  console.log(result.data);
  ```

  ```bash cURL theme={null}
  # Using Spark 1 Mini (default)
  curl -X POST "https://api.firecrawl.dev/v2/agent" \
    -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "prompt": "Find the pricing of Firecrawl",
      "model": "spark-1-mini"
    }'

  # Usando Spark 1 Pro para tarefas complexas
  curl -X POST "https://api.firecrawl.dev/v2/agent" \
    -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "prompt": "Compare all enterprise features and pricing across Firecrawl, Apify, and ScrapingBee",
      "model": "spark-1-pro"
    }'
  ```
</CodeGroup>

<div id="parameters">
  ## Parâmetros
</div>

| Parâmetro    | Tipo   | Obrigatório | Descrição                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ------------ | ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prompt`     | string | **Sim**     | Descrição em linguagem natural dos dados que você quer extrair (máx. 10.000 caracteres)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `model`      | string | Não         | Modelo a ser utilizado: `spark-1-mini` (padrão) ou `spark-1-pro`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `urls`       | array  | Não         | Lista opcional de URLs para direcionar a extração                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `schema`     | object | Não         | schema JSON opcional para saída estruturada                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `maxCredits` | number | Não         | Número máximo de créditos a serem usados nesta tarefa de agente. O padrão é **2.500** se não for definido. O painel suporta valores de até **2.500**; para limites mais altos, defina `maxCredits` via API (valores acima de 2.500 são sempre tratados como requisições pagas). Se o limite for atingido, o job falha e **nenhum dado é retornado**. Execuções com falha não são cobradas: créditos usados para raciocínio de IA nunca são cobrados em caso de falha, quaisquer créditos usados para chamadas de ferramentas durante a execução (scraping, busca, mapeamento etc.) são reembolsados, e a resposta informa `creditsUsed: 0`. |

<div id="agent-vs-extract-whats-improved">
  ## Agent vs Extract: O que melhorou
</div>

| Recurso                     | Agent (Novo) | Extract  |
| --------------------------- | ------------ | -------- |
| URLs obrigatórias           | Não          | Sim      |
| Velocidade                  | Mais rápida  | Padrão   |
| Custo                       | Mais baixo   | Padrão   |
| Confiabilidade              | Maior        | Padrão   |
| Flexibilidade das consultas | Alta         | Moderada |

<div id="example-use-cases">
  ## Exemplos de Casos de Uso
</div>

* **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"

<div id="csv-upload-in-agent-playground">
  ## Upload de CSV no Agent Playground
</div>

O [Agent Playground](https://www.firecrawl.dev/app/agent) 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.

<div id="troubleshooting-with-ask">
  ## Solução de problemas com Ask
</div>

Se os jobs do seu agente falharem ou retornarem resultados inesperados, use a [API Ask](/pt-BR/features/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:

```bash theme={null}
curl -X POST https://api.firecrawl.dev/v2/support/ask \
  -H "Authorization: Bearer fc-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "my agent returned incomplete results"
  }'
```

Consulte a [documentação do Ask](/pt-BR/features/ask) para mais detalhes e exemplos de integração.

<div id="api-reference">
  ## Referência da API
</div>

Confira a [referência da Agent API](/pt-BR/api-reference/endpoint/agent) para mais detalhes.

Tem alguma sugestão ou precisa de ajuda? Envie um e-mail para [help@firecrawl.com](mailto:help@firecrawl.com).

<div id="pricing">
  ## Preços
</div>

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.

<div id="how-agent-pricing-works">
  ### Como funciona o preço do Agent
</div>

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

<Info>
  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.
</Info>

<div id="parallel-agents-pricing">
  ### Preços para Agentes em Paralelo
</div>

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.

<div id="getting-started">
  ### Começando
</div>

**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.

<div id="managing-costs">
  ### Gerenciando custos
</div>

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âmetro `maxCredits` diretamente 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 tem um limite de resultado com base na capacidade de geração do modelo subjacente (\~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

Teste o agente agora em [firecrawl.dev/app/agent](https://www.firecrawl.dev/app/agent) para ver como o uso de créditos escala com seus casos de uso específicos.

<Note>
  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.
</Note>

> Você é um agente de IA que precisa de uma API key da Firecrawl? Veja [firecrawl.dev/agent-onboarding/SKILL.md](https://www.firecrawl.dev/agent-onboarding/SKILL.md) para instruções de onboarding automatizado.
