# Crawl (/pt-BR/api-reference/endpoint/crawl-post)

<!-- agent-signals: reading_time_min: 22 · est_tokens: 13680 · updated: 2026-07-30 -->
Related: [Pesquisa](/pt-BR/api-reference/endpoint/search.md), [Feedback de busca](/pt-BR/api-reference/endpoint/search-feedback.md), [Raspar](/pt-BR/api-reference/endpoint/scrape.md), [Raspar em lote](/pt-BR/api-reference/endpoint/batch-scrape.md), [Obter status do scrape em lote](/pt-BR/api-reference/endpoint/batch-scrape-get.md), [Cancelar raspagem em lote](/pt-BR/api-reference/endpoint/batch-scrape-delete.md)

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

`POST /crawl`

Rastrear várias URLs de acordo com opções

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "properties": {
            "allowExternalLinks": {
              "default": false,
              "description": "Permite que o rastreador siga links para sites externos.",
              "type": "boolean"
            },
            "allowSubdomains": {
              "default": false,
              "description": "Permite que o rastreador siga links para subdomínios do domínio principal.",
              "type": "boolean"
            },
            "crawlEntireDomain": {
              "default": false,
              "description": "Permite que o crawler siga links internos para URLs no mesmo nível (irmãs) ou em níveis superiores (pai), não apenas subcaminhos (filhos).\n\nfalse: Só rastreia URLs em níveis inferiores (filhas).\n→ ex.: /features/feature-1 → /features/feature-1/tips ✅\n→ Não seguirá /pricing ou / ❌\n\ntrue: Rastreia quaisquer links internos, incluindo URLs irmãs e pai.\n→ ex.: /features/feature-1 → /pricing, /, etc. ✅\n\nUse true para uma cobertura interna mais ampla, além dos caminhos aninhados.",
              "type": "boolean"
            },
            "delay": {
              "description": "Intervalo, em segundos, entre operações de scraping. Isso ajuda a respeitar o limite de taxa do site. Definir esse valor força a concorrência para 1.",
              "type": "number"
            },
            "excludePaths": {
              "description": "Padrões de regex para o pathname da URL que excluem URLs correspondentes do rastreamento. Por exemplo, se você definir `\"excludePaths\": [\"blog/.*\"]` para a URL base firecrawl.dev, quaisquer resultados que correspondam a esse padrão serão excluídos, como https://www.firecrawl.dev/blog/firecrawl-launch-week-1-recap.",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ignoreQueryParameters": {
              "default": false,
              "description": "Não faça scraping novamente do mesmo caminho com parâmetros de consulta diferentes (ou sem parâmetros)",
              "type": "boolean"
            },
            "ignoreRobotsTxt": {
              "default": false,
              "description": "Ignora as regras do robots.txt do site. Disponível apenas no Enterprise — entre em contato com support@firecrawl.com para habilitar.",
              "type": "boolean"
            },
            "includePaths": {
              "description": "Padrões de regex para paths de URL que definem quais URLs serão incluídas no crawl. Apenas os paths que corresponderem aos padrões especificados serão incluídos na resposta. Observação: a URL inicial também é validada em relação a esses padrões — se ela não corresponder, o crawl pode retornar zero páginas. Por exemplo, se você configurar \"includePaths\": [\"blog/.*\"] tendo como URL base firecrawl.dev/blog, apenas as páginas em /blog/ serão incluídas nos resultados, como https://www.firecrawl.dev/blog/firecrawl-launch-week-1-recap.",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "limit": {
              "default": 10000,
              "description": "Número máximo de páginas a rastrear. O limite padrão é 10.000.",
              "type": "integer"
            },
            "maxConcurrency": {
              "description": "Número máximo de raspagens concorrentes. Este parâmetro permite definir um limite de concorrência para este rastreamento. Se não for especificado, o rastreamento seguirá o limite de concorrência da sua equipe.",
              "type": "integer"
            },
            "maxDiscoveryDepth": {
              "description": "Profundidade máxima de crawl com base na ordem de descoberta. O site raiz e as páginas do sitemap têm profundidade de descoberta igual a 0. Por exemplo, se você definir para 1 e usar `sitemap: 'skip'`, você só fará o crawl da URL fornecida e de todas as URLs que tiverem links nessa página.",
              "type": "integer"
            },
            "prompt": {
              "description": "Um prompt em linguagem natural para gerar as opções do crawler (todos os parâmetros abaixo). Parâmetros definidos explicitamente substituem os equivalentes gerados.",
              "type": "string"
            },
            "regexOnFullURL": {
              "default": false,
              "description": "Quando definido como true, os padrões de regex de includePaths e excludePaths serão comparados com a URL completa (incluindo parâmetros de consulta/query strings), em vez de apenas com o pathname da URL. Útil quando você precisa filtrar URLs com base em query strings.",
              "type": "boolean"
            },
            "robotsUserAgent": {
              "description": "String de User-Agent personalizada para a avaliação do robots.txt. Quando definida, o robots.txt é buscado com esse User-Agent, e as regras de permissão/bloqueio são verificadas com base nele em vez do padrão. Disponível apenas no Enterprise — entre em contato com support@firecrawl.com para habilitar.",
              "type": "string"
            },
            "scrapeOptions": {
              "properties": {
                "actions": {
                  "description": "Ações a serem executadas na página antes de extrair o conteúdo",
                  "items": {
                    "oneOf": [
                      {
                        "oneOf": [
                          {
                            "additionalProperties": false,
                            "properties": {
                              "milliseconds": {
                                "description": "Número de milissegundos a esperar",
                                "minimum": 1,
                                "type": "integer"
                              },
                              "type": {
                                "description": "Esperar um número específico de milissegundos",
                                "enum": [
                                  "wait"
                                ],
                                "type": "string"
                              }
                            },
                            "required": [
                              "type",
                              "milliseconds"
                            ],
                            "title": "Wait by Duration",
                            "type": "object"
                          },
                          {
                            "additionalProperties": false,
                            "properties": {
                              "selector": {
                                "description": "Seletor CSS do elemento a esperar",
                                "example": "#my-element",
                                "type": "string"
                              },
                              "type": {
                                "description": "Esperar até que um elemento específico apareça",
                                "enum": [
                                  "wait"
                                ],
                                "type": "string"
                              }
                            },
                            "required": [
                              "type",
                              "selector"
                            ],
                            "title": "Wait for Element",
                            "type": "object"
                          }
                        ],
                        "title": "Wait"
                      },
                      {
                        "properties": {
                          "fullPage": {
                            "default": false,
                            "description": "Define se a captura de tela deve abranger a página inteira (ignorando viewport.height) ou se deve ser limitada à viewport atual.",
                            "type": "boolean"
                          },
                          "quality": {
                            "description": "A qualidade da captura de tela, de 1 a 100, onde 100 é a mais alta qualidade.",
                            "type": "integer"
                          },
                          "type": {
                            "description": "Faça uma captura de tela. Os links estarão no array `actions.screenshots` da resposta.",
                            "enum": [
                              "screenshot"
                            ],
                            "type": "string"
                          },
                          "viewport": {
                            "properties": {
                              "height": {
                                "description": "A altura da viewport, em pixels",
                                "type": "integer"
                              },
                              "width": {
                                "description": "Largura da viewport em pixels",
                                "type": "integer"
                              }
                            },
                            "required": [
                              "width",
                              "height"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Screenshot",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "all": {
                            "default": false,
                            "description": "Clica em todos os elementos que correspondem ao seletor, não apenas no primeiro. Não lança um erro se nenhum elemento corresponder ao seletor.",
                            "type": "boolean"
                          },
                          "selector": {
                            "description": "Seletor para encontrar o elemento por",
                            "example": "#load-more-button",
                            "type": "string"
                          },
                          "type": {
                            "description": "Clique em um elemento",
                            "enum": [
                              "click"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "selector"
                        ],
                        "title": "Click",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "text": {
                            "description": "Texto a ser digitado",
                            "example": "Hello, world!",
                            "type": "string"
                          },
                          "type": {
                            "description": "Digite o texto em um campo de entrada, área de texto ou elemento com conteúdo editável. Observação: primeiro é preciso colocar o foco no elemento usando uma ação de “clique” antes de escrever. O texto será digitado caractere por caractere para simular a entrada pelo teclado.",
                            "enum": [
                              "write"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "text"
                        ],
                        "title": "Write text",
                        "type": "object"
                      },
                      {
                        "description": "Pressione qualquer tecla na página. Consulte https://asawicki.info/nosense/doc/devices/keyboard/key_codes.html para ver os códigos de tecla.",
                        "properties": {
                          "key": {
                            "description": "Tecla para pressionar",
                            "example": "Enter",
                            "type": "string"
                          },
                          "type": {
                            "description": "Pressione qualquer tecla na página",
                            "enum": [
                              "press"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "key"
                        ],
                        "title": "Press a key",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "direction": {
                            "default": "down",
                            "description": "Sentido da rolagem",
                            "enum": [
                              "up",
                              "down"
                            ],
                            "type": "string"
                          },
                          "selector": {
                            "description": "Seletor (query selector) do elemento a ser rolado",
                            "example": "#my-element",
                            "type": "string"
                          },
                          "type": {
                            "description": "Rolar a página ou um elemento específico",
                            "enum": [
                              "scroll"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Scroll",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "type": {
                            "description": "Raspa o conteúdo da página atual e retorna a URL e o HTML.",
                            "enum": [
                              "scrape"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Scrape",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "script": {
                            "description": "Código JavaScript para executar",
                            "example": "document.querySelector('.button').click();",
                            "type": "string"
                          },
                          "type": {
                            "description": "Executar código JavaScript na página",
                            "enum": [
                              "executeJavascript"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "script"
                        ],
                        "title": "Execute JavaScript",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "format": {
                            "default": "Letter",
                            "description": "O tamanho da página do PDF gerado",
                            "enum": [
                              "A0",
                              "A1",
                              "A2",
                              "A3",
                              "A4",
                              "A5",
                              "A6",
                              "Letter",
                              "Legal",
                              "Tabloid",
                              "Ledger"
                            ],
                            "type": "string"
                          },
                          "landscape": {
                            "default": false,
                            "description": "Se o PDF deve ser gerado em orientação horizontal",
                            "type": "boolean"
                          },
                          "scale": {
                            "default": 1,
                            "description": "O fator de escala do PDF gerado",
                            "type": "number"
                          },
                          "type": {
                            "description": "Gerar um PDF da página atual. O PDF será retornado no array `actions.pdfs` da resposta.",
                            "enum": [
                              "pdf"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Generate PDF",
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "auditMetadata": {
                  "additionalProperties": false,
                  "description": "Identificação do usuário incluída nos eventos de log do SIEM quando o SIEM Logging estiver habilitado para a organização.",
                  "properties": {
                    "username": {
                      "description": "O nome de usuário associado à requisição.",
                      "maxLength": 1024,
                      "type": "string"
                    }
                  },
                  "required": [
                    "username"
                  ],
                  "type": "object"
                },
                "blockAds": {
                  "default": true,
                  "description": "Habilita o bloqueio de anúncios e de pop-ups de cookies.",
                  "type": "boolean"
                },
                "excludeTags": {
                  "description": "Tags a serem excluídas da saída.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "formats": {
                  "default": [
                    "markdown"
                  ],
                  "description": "Formatos de saída que devem ser incluídos na resposta. Você pode especificar um ou mais formatos, como strings (por exemplo, `'markdown'`) ou como objetos com opções adicionais (por exemplo, `{ type: 'json', schema: {...} }`). Alguns formatos exigem que opções específicas sejam configuradas. Exemplo: `['markdown', { type: 'json', schema: {...} }]`.",
                  "items": {
                    "oneOf": [
                      {
                        "properties": {
                          "type": {
                            "enum": [
                              "markdown"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Markdown",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "type": {
                            "enum": [
                              "summary"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Summary",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "type": {
                            "enum": [
                              "html"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "HTML",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "type": {
                            "enum": [
                              "rawHtml"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Raw HTML",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "type": {
                            "enum": [
                              "links"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Links",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "type": {
                            "enum": [
                              "images"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Images",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "fullPage": {
                            "default": false,
                            "description": "Define se a captura de tela deve abranger a página inteira (ignorando viewport.height) ou se deve ser limitada à viewport atual.",
                            "type": "boolean"
                          },
                          "quality": {
                            "description": "Qualidade da captura de tela, de 1 a 100. 100 é a qualidade máxima.",
                            "type": "integer"
                          },
                          "type": {
                            "enum": [
                              "screenshot"
                            ],
                            "type": "string"
                          },
                          "viewport": {
                            "properties": {
                              "height": {
                                "description": "Altura da viewport em pixels",
                                "type": "integer"
                              },
                              "width": {
                                "description": "Largura da viewport em pixels",
                                "type": "integer"
                              }
                            },
                            "required": [
                              "width",
                              "height"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Screenshot",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "prompt": {
                            "description": "O prompt a ser usado para gerar a saída em JSON",
                            "type": "string"
                          },
                          "schema": {
                            "description": "O esquema a ser usado para a saída em JSON. Deve estar em conformidade com o [JSON Schema](https://json-schema.org/).",
                            "type": "object"
                          },
                          "type": {
                            "enum": [
                              "json"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "JSON",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "modes": {
                            "description": "O modo a ser usado para rastrear alterações. 'git-diff' fornece um diff detalhado e 'json' compara os dados JSON extraídos.",
                            "items": {
                              "enum": [
                                "git-diff",
                                "json"
                              ],
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "prompt": {
                            "description": "Prompt a ser usado para rastreamento de alterações ao usar o modo \"json\". Caso não seja fornecido, será usado o prompt padrão.",
                            "type": "string"
                          },
                          "schema": {
                            "description": "Esquema para extração de JSON ao usar o modo `json`. Define a estrutura dos dados a serem extraídos e comparados. Deve estar em conformidade com o [JSON Schema](https://json-schema.org/).",
                            "type": "object"
                          },
                          "tag": {
                            "default": null,
                            "description": "Tag a ser usada para rastreamento de alterações. Tags podem separar o histórico de rastreamento de alterações em “branches” (ramificações) distintas, em que o rastreamento com uma tag específica só vai comparar com coletas feitas na mesma tag. Se não for fornecida, será usada a tag padrão (null).",
                            "nullable": true,
                            "type": "string"
                          },
                          "type": {
                            "enum": [
                              "changeTracking"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Change Tracking",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "type": {
                            "enum": [
                              "branding"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Branding",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "type": {
                            "enum": [
                              "product"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Product",
                        "type": "object"
                      },
                      {
                        "properties": {
                          "type": {
                            "enum": [
                              "menu"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Menu",
                        "type": "object"
                      },
                      {
                        "description": "Extrai áudio (MP3) de URLs de vídeo compatíveis, como o YouTube. Retorna uma URL GCS assinada.",
                        "properties": {
                          "type": {
                            "enum": [
                              "audio"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Audio",
                        "type": "object"
                      },
                      {
                        "description": "Extrai o vídeo em melhor qualidade de URLs de vídeo compatíveis, como o YouTube. Retorna uma URL GCS assinada.",
                        "properties": {
                          "type": {
                            "enum": [
                              "video"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "Video",
                        "type": "object"
                      },
                      {
                        "description": "Faça uma pergunta em linguagem natural sobre a página. Retorna a resposta no campo `answer` da resposta.",
                        "properties": {
                          "question": {
                            "description": "A pergunta a ser respondida sobre a página. Máximo de 10.000 caracteres.",
                            "maxLength": 10000,
                            "type": "string"
                          },
                          "type": {
                            "enum": [
                              "question"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "question"
                        ],
                        "title": "Question",
                        "type": "object"
                      },
                      {
                        "description": "Encontre trechos de texto relevantes na página. Retorna o texto selecionado no campo `highlights` da resposta.",
                        "properties": {
                          "query": {
                            "description": "A consulta de seleção de texto a ser executada na página. Máximo de 10.000 caracteres.",
                            "maxLength": 10000,
                            "type": "string"
                          },
                          "type": {
                            "enum": [
                              "highlights"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "query"
                        ],
                        "title": "Highlights",
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "headers": {
                  "description": "Cabeçalhos a serem enviados na requisição. Podem ser usados para enviar cookies, user-agent etc.",
                  "type": "object"
                },
                "includeTags": {
                  "description": "Tags a serem incluídas no resultado.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "location": {
                  "description": "Configurações de localização da requisição. Quando definidas, será usado um proxy apropriado, se disponível, e serão emuladas as configurações correspondentes de idioma e fuso horário. O padrão é \"US\" se não for especificado.",
                  "properties": {
                    "country": {
                      "default": "US",
                      "description": "Código de país ISO 3166-1 alpha-2 (por exemplo, \"US\", \"AU\", \"DE\", \"JP\")",
                      "pattern": "^[A-Z]{2}$",
                      "type": "string"
                    },
                    "languages": {
                      "description": "Idiomas e localidades preferidos para a requisição, em ordem de prioridade. Por padrão, usa o idioma da localização especificada. Consulte https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language",
                      "items": {
                        "example": "en-US",
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "lockdown": {
                  "default": false,
                  "description": "Se verdadeiro, atende à requisição apenas a partir do cache do Firecrawl e nunca faz uma solicitação externa para a URL de destino. Projetado para ambientes com restrições de conformidade ou isolados da rede, nos quais a própria requisição de scraping poderia expor informações sensíveis. Em caso de cache miss, retorna 404 com o código de erro SCRAPE_LOCKDOWN_CACHE_MISS (a URL nunca é registrada em caso de miss). As requisições de lockdown são tratadas com retenção zero de dados. O maxAge padrão é estendido para 2 anos, para que páginas já armazenadas em cache continuem elegíveis. São cobrados 5 créditos em caso de hit e 1 crédito em caso de cache miss.",
                  "type": "boolean"
                },
                "maxAge": {
                  "default": 172800000,
                  "description": "Retorna uma versão em cache da página se ela for mais recente do que essa idade em milissegundos. Se a versão em cache da página for mais antiga do que esse valor, a página será novamente coletada. Se você não precisa de dados extremamente atualizados, ativar isso pode acelerar suas coletas em até 500%. O padrão é 2 dias.",
                  "type": "integer"
                },
                "minAge": {
                  "description": "Quando definido, a requisição verifica apenas o cache e nunca aciona uma nova extração. O valor está em milissegundos e especifica a idade mínima que os dados em cache devem ter. Se houver dados em cache correspondentes, eles serão retornados instantaneamente. Se nenhum dado em cache for encontrado, será retornado um 404 com o código de erro SCRAPE_NO_CACHED_DATA. Defina como 1 para aceitar qualquer dado em cache, independentemente da idade.",
                  "type": "integer"
                },
                "mobile": {
                  "default": false,
                  "description": "Defina como true se quiser emular a extração a partir de um dispositivo móvel. Útil para testar páginas responsivas e capturar screenshots da versão mobile.",
                  "type": "boolean"
                },
                "onlyCleanContent": {
                  "default": false,
                  "description": "Beta. Executa uma etapa adicional baseada em LLM sobre o markdown gerado para remover boilerplate residual que `onlyMainContent` pode não detectar (banners de cookies, blocos de anúncios, widgets de compartilhamento em redes sociais, breadcrumbs, inscrições em newsletters, seções de comentários, listas de artigos relacionados). Títulos, listas, tabelas, blocos de código, referências de imagem e links inline são preservados. Pode ser combinado com `onlyMainContent` (a configuração mais comum) ou usado por conta própria. É ignorado com um aviso quando o markdown excede o limite de tokens de resultado do modelo de limpeza (o markdown original é preservado). Não é compatível com requests com retenção zero de dados.",
                  "type": "boolean"
                },
                "onlyMainContent": {
                  "default": true,
                  "description": "Retorne apenas o conteúdo principal da página, excluindo cabeçalhos, menus de navegação, rodapés etc. Este é um filtro determinístico em nível de HTML aplicado antes da geração do markdown; nenhum LLM é usado.",
                  "type": "boolean"
                },
                "parsers": {
                  "default": [
                    "pdf"
                  ],
                  "description": "Controla como os arquivos são processados durante o scraping. Quando \"pdf\" é incluído (padrão), o conteúdo do PDF é extraído e convertido em markdown, com cobrança baseada no número de páginas (1 crédito por página). Quando um array vazio é fornecido, o arquivo PDF é retornado em codificação base64 com uma taxa fixa de 1 crédito para todo o PDF.",
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "maxPages": {
                            "description": "Número máximo de páginas do PDF a serem processadas. Deve ser um inteiro positivo de até 10.000.",
                            "maximum": 10000,
                            "minimum": 1,
                            "type": "integer"
                          },
                          "mode": {
                            "default": "auto",
                            "description": "Modo de processamento de PDFs. \"fast\": extração apenas baseada em texto (usa o texto embutido, mais rápido). \"auto\" (padrão): tenta primeiro a extração rápida e, se necessário, recorre ao OCR. \"ocr\": força o processamento via OCR em todas as páginas.",
                            "enum": [
                              "fast",
                              "auto",
                              "ocr"
                            ],
                            "type": "string"
                          },
                          "type": {
                            "enum": [
                              "pdf"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "profile": {
                  "description": "Ative o armazenamento persistente do navegador em sessões de scraping e interação. Informe um perfil ao fazer scraping para preservar cookies, localStorage e dados de sessão. Sessões com o mesmo nome de perfil compartilham o estado do navegador.",
                  "properties": {
                    "name": {
                      "description": "Um nome para o perfil. Scrapings com o mesmo nome compartilham o estado do navegador (cookies, localStorage, sessões).",
                      "maxLength": 128,
                      "minLength": 1,
                      "type": "string"
                    },
                    "saveChanges": {
                      "default": true,
                      "description": "Quando verdadeiro, o estado do navegador é salvo de volta no perfil quando a sessão de interação é encerrada. Defina como falso para carregar dados existentes sem gravar. Apenas uma sessão de salvamento é permitida por vez.",
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object"
                },
                "proxy": {
                  "default": "auto",
                  "description": "Especifica o tipo de proxy a ser utilizado.\n\n - **basic**: Proxies para scraping de sites sem soluções anti‑bot ou apenas com soluções anti‑bot básicas. Rápido e geralmente funciona.\n - **enhanced**: Proxies avançados para scraping de sites com soluções anti‑bot avançadas. Mais lento, porém mais confiável em alguns sites. Pode custar até 5 créditos por requisição.\n - **auto**: O Firecrawl tentará automaticamente refazer o scraping com proxies enhanced se o proxy basic falhar. Se a nova tentativa com enhanced for bem-sucedida, 5 créditos serão cobrados pelo scraping. Se a primeira tentativa com basic for bem-sucedida, apenas o custo regular será cobrado.",
                  "enum": [
                    "basic",
                    "enhanced",
                    "auto"
                  ],
                  "type": "string"
                },
                "redactPII": {
                  "default": false,
                  "description": "Redija informações de identificação pessoal do markdown retornado. Passe `true` para usar os padrões ou um objeto para ajustar o modo, as entidades e o estilo de substituição.",
                  "oneOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "additionalProperties": false,
                      "description": "Opções de ajuste para redação de PII.",
                      "properties": {
                        "entities": {
                          "description": "Restrinja a redação a estas categorias de entidades. Se omitido, todas as entidades compatíveis serão redigidas.",
                          "items": {
                            "description": "Categorias públicas de entidades de PII compatíveis com a redação do Firecrawl.",
                            "enum": [
                              "PERSON",
                              "EMAIL",
                              "PHONE",
                              "LOCATION",
                              "FINANCIAL",
                              "SECRET"
                            ],
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "mode": {
                          "default": "accurate",
                          "description": "Estratégia de redação. `accurate` usa apenas o modelo e é otimizada para precisão, `aggressive` aumenta a cobertura com heurísticas adicionais, e `fast` usa heurísticas sem chamar o modelo.",
                          "enum": [
                            "accurate",
                            "aggressive",
                            "fast"
                          ],
                          "type": "string"
                        },
                        "replaceStyle": {
                          "default": "tag",
                          "description": "`tag` substitui trechos por marcadores como `<EMAIL>`, `mask` substitui caracteres por `*` e `remove` exclui o texto do trecho.",
                          "enum": [
                            "tag",
                            "mask",
                            "remove"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  ]
                },
                "removeBase64Images": {
                  "default": true,
                  "description": "Remove todas as imagens em base64 do resultado em markdown, que pode se tornar excessivamente longo. Isso não afeta os formatos html nem rawHtml. O texto alternativo da imagem permanece no resultado, mas a URL é substituída por um placeholder.",
                  "type": "boolean"
                },
                "skipTlsVerification": {
                  "default": true,
                  "description": "Ignorar a verificação de certificado TLS ao realizar requisições.",
                  "type": "boolean"
                },
                "storeInCache": {
                  "default": true,
                  "description": "Se definido como true, a página será armazenada no índice e no cache do Firecrawl. Definir isso como false é útil se sua atividade de scraping puder levantar preocupações relacionadas à proteção de dados. O uso de alguns parâmetros associados a scraping sensível (por exemplo, ações, headers) fará com que esse parâmetro seja definido automaticamente como false.",
                  "type": "boolean"
                },
                "threatProtection": {
                  "description": "Substituição por solicitação da [Proteção contra ameaças](https://docs.firecrawl.dev/features/threat-protection). Os campos fornecidos substituem os campos correspondentes da política da sua organização apenas nesta solicitação; os campos omitidos mantêm os valores definidos no nível da organização. Exige que a Proteção contra ameaças esteja habilitada para sua equipe (recurso enterprise) — caso contrário, a solicitação será rejeitada com 403. Se sua organização tiver desativado substituições por solicitação, qualquer solicitação que inclua este objeto será rejeitada com 403. Se a Proteção contra ameaças for imposta à sua equipe, `mode` não poderá ser definido como `off`.",
                  "properties": {
                    "blacklist": {
                      "description": "Domínios a serem sempre bloqueados, como domínios simples (`example.com`) ou padrões curinga (`*.example.com`). Sem protocolo, caminho ou porta.",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 1000,
                      "type": "array"
                    },
                    "blockedTlds": {
                      "description": "Domínios de nível superior a serem bloqueados diretamente, em minúsculas e sem o ponto inicial (ex.: `zip`).",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 1000,
                      "type": "array"
                    },
                    "failurePolicy": {
                      "description": "O que fazer quando o classificador não puder ser acessado: `closed` bloqueia a solicitação, `open` a permite.",
                      "enum": [
                        "open",
                        "closed"
                      ],
                      "type": "string"
                    },
                    "mode": {
                      "description": "Modo de verificação de URL para esta solicitação. `normal` verifica as URLs no Google Web Risk (+2 créditos por URL verificada).",
                      "enum": [
                        "off",
                        "normal"
                      ],
                      "type": "string"
                    },
                    "riskScoreThreshold": {
                      "description": "Pontuação de risco normalizada (0–100) a partir da qual um veredito do classificador bloqueia a URL. Quanto menor, mais rigoroso.",
                      "example": 75,
                      "maximum": 100,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "whitelist": {
                      "description": "Domínios a serem sempre permitidos, como domínios simples ou padrões curinga. Tem prioridade sobre todas as outras regras.",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 1000,
                      "type": "array"
                    }
                  },
                  "title": "Threat Protection Override",
                  "type": "object"
                },
                "timeout": {
                  "default": 60000,
                  "description": "Tempo limite, em milissegundos, para a solicitação. O mínimo é 1000 (1 segundo). O padrão é 60000 (60 segundos). O máximo é 300000 (300 segundos).",
                  "maximum": 300000,
                  "minimum": 1000,
                  "type": "integer"
                },
                "waitFor": {
                  "default": 0,
                  "description": "Defina um atraso, em milissegundos, antes de buscar o conteúdo, permitindo que a página tenha tempo suficiente para carregar. Esse tempo de espera é somado ao recurso de espera inteligente do Firecrawl.",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "sitemap": {
              "default": "include",
              "description": "Modo de uso do sitemap durante o rastreamento. Se você definir como \"skip\", o crawler vai ignorar o sitemap do site e rastrear apenas a URL inicial, descobrindo novas páginas a partir dela. Se você definir como \"only\", o crawler vai rastrear somente as URLs presentes no sitemap (mais a URL inicial) e não vai seguir links encontrados no HTML.",
              "enum": [
                "skip",
                "include",
                "only"
              ],
              "type": "string"
            },
            "url": {
              "description": "URL base para iniciar o rastreamento",
              "format": "uri",
              "type": "string"
            },
            "webhook": {
              "description": "Objeto de especificação de webhook.",
              "properties": {
                "events": {
                  "description": "Tipos de eventos a serem enviados para a URL do webhook. (padrão: todos)",
                  "items": {
                    "enum": [
                      "completed",
                      "page",
                      "failed",
                      "started"
                    ],
                    "type": "string"
                  },
                  "type": "array"
                },
                "headers": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Cabeçalhos que devem ser enviados para a URL do webhook.",
                  "type": "object"
                },
                "metadata": {
                  "additionalProperties": true,
                  "description": "Metadados personalizados que serão incluídos em todos os payloads de webhook deste rastreamento",
                  "type": "object"
                },
                "url": {
                  "description": "A URL para a qual o webhook será enviado. Ele será disparado quando o rastreamento for iniciado (crawl.started), para cada página rastreada (crawl.page) e quando o rastreamento for concluído (crawl.completed ou crawl.failed). A resposta será a mesma do endpoint `/scrape`.",
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "type": "object"
            },
            "zeroDataRetention": {
              "default": false,
              "description": "Se definido como true, isso garantirá que nenhum dado seja retido para este crawl. Para ativar esse recurso, entre em contato com help@firecrawl.dev",
              "type": "boolean"
            }
          },
          "required": [
            "url"
          ],
          "type": "object"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "id": {
                "type": "string"
              },
              "success": {
                "type": "boolean"
              },
              "url": {
                "format": "uri",
                "type": "string"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Resposta bem-sucedida"
    },
    "402": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "Payment required to access this resource.",
                "type": "string"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Pagamento obrigatório"
    },
    "429": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "Request rate limit exceeded. Please wait and try again later.",
                "type": "string"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Muitas solicitações"
    },
    "500": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "An unexpected error occurred on the server.",
                "type": "string"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Erro no servidor"
    }
  }
}
```
