# Pesquisa (/pt-BR/api-reference/endpoint/search)

<!-- agent-signals: reading_time_min: 29 · est_tokens: 19607 · updated: 2026-07-30 -->
Related: [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), [Obter erros de scraping em lote](/pt-BR/api-reference/endpoint/batch-scrape-get-errors.md)

O endpoint de pesquisa combina pesquisa na web com as capacidades de scraping do Firecrawl para retornar o conteúdo completo da página para qualquer consulta.

Inclua `scrapeOptions` com `formats: [{"type": "markdown"}]` para obter o conteúdo completo em markdown para cada resultado de pesquisa; caso contrário, você receberá por padrão apenas os resultados (url, title, description). Você também pode usar outros formatos, como `{"type": "summary"}` para conteúdo condensado.

<div id="supported-query-operators">
  ## Operadores de pesquisa compatíveis [#operadores-de-pesquisa-compatíveis]
</div>

Oferecemos uma variedade de operadores de pesquisa que ajudam você a filtrar melhor seus resultados.

| Operador      | Funcionalidade                                                            | Exemplos                          |
| ------------- | ------------------------------------------------------------------------- | --------------------------------- |
| `""`          | Faz uma correspondência exata com um trecho de texto                      | `"Firecrawl"`                     |
| `-`           | Exclui determinadas palavras-chave ou nega outros operadores              | `-bad`, `-site:firecrawl.dev`     |
| `site:`       | Retorna apenas resultados de um site específico                           | `site:firecrawl.dev`              |
| `filetype:`   | Retorna apenas resultados com uma extensão de arquivo específica          | `filetype:pdf`, `-filetype:pdf`   |
| `inurl:`      | Retorna apenas resultados que incluam uma palavra na URL                  | `inurl:firecrawl`                 |
| `allinurl:`   | Retorna apenas resultados que incluam várias palavras na URL              | `allinurl:git firecrawl`          |
| `intitle:`    | Retorna apenas resultados que incluam uma palavra no título da página     | `intitle:Firecrawl`               |
| `allintitle:` | Retorna apenas resultados que incluam várias palavras no título da página | `allintitle:firecrawl playground` |
| `related:`    | Retorna apenas resultados relacionados a um domínio específico            | `related:firecrawl.dev`           |
| `imagesize:`  | Retorna apenas imagens com dimensões exatas                               | `imagesize:1920x1080`             |
| `larger:`     | Retorna apenas imagens maiores que as dimensões especificadas             | `larger:1920x1080`                |

<div id="location-parameter">
  ## Parâmetro de localização [#parâmetro-de-localização]
</div>

Use o parâmetro `location` para obter resultados de pesquisa segmentados por região. Formato: `"string"`. Exemplos: `"Germany"`, `"San Francisco,California,United States"`.

Consulte a [lista completa de localidades compatíveis](https://firecrawl.dev/search_locations.json) para ver todos os países e idiomas disponíveis.

<div id="country-parameter">
  ## Parâmetro country [#parâmetro-country]
</div>

Use o parâmetro `country` para definir o país dos resultados de pesquisa usando códigos de país ISO. Padrão: `"US"`.

Exemplos: `"US"`, `"DE"`, `"FR"`, `"JP"`, `"UK"`, `"CA"`.

```json
{
  "query": "restaurantes",
  "country": "DE"
}
```

<div id="categories-parameter">
  ## Parâmetro `categories` [#parâmetro-categories]
</div>

Filtre os resultados de pesquisa por categorias específicas usando o parâmetro `categories`:

* **`github`**: Pesquise em repositórios do GitHub, código, issues e documentação
* **`research`**: Pesquise em sites acadêmicos e de pesquisa (arXiv, Nature, IEEE, PubMed, etc.)
* **`pdf`**: Pesquise por PDFs

<div id="example-usage">
  ### Exemplo de uso [#exemplo-de-uso]
</div>

```json
{
  "query": "machine learning",
  "categories": ["github", "pesquisa"],
  "limit": 10
}
```

<div id="domain-filters">
  ## Filtros de domínio [#filtros-de-domínio]
</div>

Use `includeDomains` para restringir os resultados a domínios específicos ou `excludeDomains` para excluir domínios específicos da busca. Os domínios devem conter apenas nomes de host, sem protocolo ou caminho.

`includeDomains` e `excludeDomains` são mutuamente excludentes.

<div id="include-domains-example">
  ### Exemplo de inclusão de domínios [#exemplo-de-inclusão-de-domínios]
</div>

```json
{
  "query": "web scraping",
  "includeDomains": ["firecrawl.dev", "docs.firecrawl.dev"],
  "limit": 10
}
```

<div id="exclude-domains-example">
  ### Exemplo de exclusão de domínios [#exemplo-de-exclusão-de-domínios]
</div>

```json
{
  "query": "web scraping tools",
  "excludeDomains": ["example.com"],
  "limit": 10
}
```

<div id="category-response">
  ### Categoria da Resposta [#categoria-da-resposta]
</div>

Cada resultado inclui um campo `category` que indica sua origem:

```json
{
  "success": true,
  "data": {
    "web": [
      {
        "url": "https://github.com/example/ml-project",
        "title": "Machine Learning Project",
        "description": "Implementation of ML algorithms",
        "category": "github"
      },
      {
        "url": "https://arxiv.org/abs/2024.12345",
        "title": "ML Research Paper",
        "description": "Latest advances in machine learning",
        "category": "research"
      }
    ]
  }
}
```

<div id="time-based-search">
  ## Busca por período de tempo [#busca-por-período-de-tempo]
</div>

Use o parâmetro `tbs` para filtrar resultados por períodos de tempo, incluindo intervalos de datas personalizados. Consulte a [documentação do recurso de busca](https://docs.firecrawl.dev/features/search#time-based-search) para exemplos detalhados e formatos suportados.

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

`POST /search`

Pesquise e, opcionalmente, faça scraping dos resultados de busca

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "properties": {
            "categories": {
              "description": "Categorias pelas quais filtrar os resultados. O padrão é [], o que significa que os resultados não serão filtrados por nenhuma categoria.",
              "items": {
                "oneOf": [
                  {
                    "properties": {
                      "type": {
                        "enum": [
                          "github"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "title": "GitHub",
                    "type": "object"
                  },
                  {
                    "properties": {
                      "type": {
                        "enum": [
                          "research"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "title": "Research",
                    "type": "object"
                  },
                  {
                    "properties": {
                      "type": {
                        "enum": [
                          "pdf"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "title": "PDF",
                    "type": "object"
                  }
                ]
              },
              "type": "array"
            },
            "country": {
              "default": "US",
              "description": "Código de país ISO para segmentação geográfica dos resultados de pesquisa (por exemplo, `US`). Para obter melhores resultados, configure este parâmetro e também o parâmetro `location`.",
              "type": "string"
            },
            "enterprise": {
              "description": "Opções de busca Enterprise para Zero Data Retention (ZDR). Use `[\"zdr\"]` para ZDR de ponta a ponta (10 credits / 10 resultados) ou `[\"anon\"]` para ZDR anonimizado (2 credits / 10 resultados). Deve estar habilitado para a sua equipe.",
              "items": {
                "enum": [
                  "anon",
                  "zdr"
                ],
                "type": "string"
              },
              "type": "array"
            },
            "excludeDomains": {
              "description": "Exclui os resultados de busca dos domínios especificados. Os domínios devem ser apenas nomes de host, sem protocolo nem caminho. Não pode ser usado com includeDomains.",
              "items": {
                "format": "hostname",
                "type": "string"
              },
              "type": "array"
            },
            "highlights": {
              "default": true,
              "description": "Gere highlights relevantes para a query nos resultados de busca. Defina como false para retornar descrições ou snippets do provedor sem destaque.",
              "type": "boolean"
            },
            "ignoreInvalidURLs": {
              "default": false,
              "description": "Exclui dos resultados de pesquisa as URLs que são inválidas para outros endpoints do Firecrawl. Isso ajuda a reduzir erros se você estiver direcionando dados da pesquisa para outros endpoints da API do Firecrawl.",
              "type": "boolean"
            },
            "includeDomains": {
              "description": "Restringe os resultados de busca aos domínios especificados. Os domínios devem ser apenas nomes de host, sem protocolo nem caminho. Não pode ser usado com excludeDomains.",
              "items": {
                "format": "hostname",
                "type": "string"
              },
              "type": "array"
            },
            "limit": {
              "default": 10,
              "description": "Número máximo de resultados retornados (por tipo de fonte ao usar várias fontes)",
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            },
            "location": {
              "description": "Parâmetro de localização para resultados de busca (por exemplo, `San Francisco,California,United States`). Para melhores resultados, defina tanto este quanto o parâmetro `country`.",
              "type": "string"
            },
            "query": {
              "description": "A consulta de busca",
              "maxLength": 500,
              "type": "string"
            },
            "scrapeOptions": {
              "allOf": [
                {
                  "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"
                }
              ],
              "default": {},
              "description": "Opções para raspagem de resultados de busca"
            },
            "sources": {
              "default": [
                "web"
              ],
              "description": "Fontes a serem pesquisadas. Determina os arrays disponíveis na resposta. O padrão é ['web'].",
              "items": {
                "oneOf": [
                  {
                    "properties": {
                      "location": {
                        "description": "Parâmetro de localização para resultados de pesquisa",
                        "type": "string"
                      },
                      "tbs": {
                        "description": "Parâmetro de pesquisa por tempo. Suporta intervalos de tempo predefinidos (`qdr:h`, `qdr:d`, `qdr:w`, `qdr:m`, `qdr:y`), intervalos de datas personalizados (`cdr:1,cd_min:MM/DD/YYYY,cd_max:MM/DD/YYYY`) e classificação por data (`sbd:1`). Os valores podem ser combinados, por exemplo: `sbd:1,qdr:w`.",
                        "type": "string"
                      },
                      "type": {
                        "enum": [
                          "web"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "title": "Web",
                    "type": "object"
                  },
                  {
                    "properties": {
                      "type": {
                        "enum": [
                          "images"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "title": "Images",
                    "type": "object"
                  },
                  {
                    "properties": {
                      "type": {
                        "enum": [
                          "news"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "title": "News",
                    "type": "object"
                  }
                ]
              },
              "type": "array"
            },
            "tbs": {
              "description": "Parâmetro de pesquisa por tempo. Suporta intervalos de tempo predefinidos (`qdr:h`, `qdr:d`, `qdr:w`, `qdr:m`, `qdr:y`), intervalos de datas personalizados (`cdr:1,cd_min:MM/DD/YYYY,cd_max:MM/DD/YYYY`) e classificação por data (`sbd:1`). Os valores podem ser combinados, por exemplo: `sbd:1,qdr:w`.",
              "type": "string"
            },
            "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",
              "type": "integer"
            }
          },
          "required": [
            "query"
          ],
          "type": "object"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "creditsUsed": {
                "description": "O número de créditos utilizados na busca",
                "type": "integer"
              },
              "data": {
                "description": "Os resultados da pesquisa. Os arrays disponíveis dependerão das fontes que você especificar na requisição. Por padrão, o array `web` será retornado.",
                "properties": {
                  "images": {
                    "items": {
                      "properties": {
                        "imageHeight": {
                          "description": "Altura da imagem",
                          "type": "integer"
                        },
                        "imageUrl": {
                          "description": "URL da imagem",
                          "type": "string"
                        },
                        "imageWidth": {
                          "description": "Largura da imagem",
                          "type": "integer"
                        },
                        "position": {
                          "description": "Posição do resultado de pesquisa",
                          "type": "integer"
                        },
                        "title": {
                          "description": "Título do resultado da pesquisa",
                          "type": "string"
                        },
                        "url": {
                          "description": "URL do resultado da pesquisa",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "news": {
                    "items": {
                      "properties": {
                        "audio": {
                          "description": "URL assinada para o arquivo de áudio MP3 extraído, se `audio` estiver em `formatos`. A URL assinada expira em 1 hora.",
                          "nullable": true,
                          "type": "string"
                        },
                        "date": {
                          "description": "Data do artigo",
                          "type": "string"
                        },
                        "html": {
                          "description": "Conteúdo HTML se solicitado nos formatos",
                          "nullable": true,
                          "type": "string"
                        },
                        "imageUrl": {
                          "description": "URL da imagem do artigo",
                          "type": "string"
                        },
                        "links": {
                          "description": "Links encontrados, se solicitados, nos formatos",
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "markdown": {
                          "description": "Conteúdo em Markdown, caso a raspagem tenha sido solicitada",
                          "nullable": true,
                          "type": "string"
                        },
                        "metadata": {
                          "properties": {
                            "description": {
                              "type": "string"
                            },
                            "error": {
                              "nullable": true,
                              "type": "string"
                            },
                            "numPages": {
                              "description": "Para entradas em PDF, o número de páginas processadas (limitado pela opção maxPages do parser).",
                              "type": "integer"
                            },
                            "sourceURL": {
                              "description": "A URL original solicitada. Pode ser diferente da URL final da página se houver redirecionamentos.",
                              "type": "string"
                            },
                            "statusCode": {
                              "type": "integer"
                            },
                            "title": {
                              "type": "string"
                            },
                            "totalPages": {
                              "description": "Para entradas em PDF, o número real de páginas do documento antes de qualquer limitação por maxPages. Omitido quando não for possível determiná-lo; um totalPages maior que numPages indica que o resultado foi truncado.",
                              "type": "integer"
                            },
                            "url": {
                              "description": "A URL final da página após seguir todos os redirecionamentos.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "position": {
                          "description": "Posição do artigo",
                          "type": "integer"
                        },
                        "rawHtml": {
                          "description": "Conteúdo HTML bruto, caso seja solicitado em formatos",
                          "nullable": true,
                          "type": "string"
                        },
                        "screenshot": {
                          "description": "URL da captura de tela, se solicitado nos formatos. As capturas de tela expiram após 24 horas e não podem mais ser baixadas.",
                          "nullable": true,
                          "type": "string"
                        },
                        "snippet": {
                          "description": "Trecho do artigo",
                          "type": "string"
                        },
                        "title": {
                          "description": "Título do artigo",
                          "type": "string"
                        },
                        "url": {
                          "description": "URL do artigo",
                          "type": "string"
                        },
                        "video": {
                          "description": "URL assinada para o arquivo de vídeo extraído, se `video` estiver em `formatos`. A URL assinada expira após 1 hora.",
                          "nullable": true,
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "web": {
                    "items": {
                      "properties": {
                        "audio": {
                          "description": "URL assinada para o arquivo de áudio MP3 extraído, se `audio` estiver em `formatos`. A URL assinada expira em 1 hora.",
                          "nullable": true,
                          "type": "string"
                        },
                        "description": {
                          "description": "Descrição do resultado da pesquisa",
                          "type": "string"
                        },
                        "html": {
                          "description": "Conteúdo HTML, se solicitado nos formatos",
                          "nullable": true,
                          "type": "string"
                        },
                        "links": {
                          "description": "Links encontrados, se solicitado nos formatos",
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "markdown": {
                          "description": "Conteúdo em Markdown caso a raspagem tenha sido solicitada",
                          "nullable": true,
                          "type": "string"
                        },
                        "metadata": {
                          "properties": {
                            "description": {
                              "type": "string"
                            },
                            "error": {
                              "nullable": true,
                              "type": "string"
                            },
                            "numPages": {
                              "description": "Para entradas em PDF, o número de páginas processadas (limitado pela opção maxPages do parser).",
                              "type": "integer"
                            },
                            "sourceURL": {
                              "description": "A URL original solicitada. Pode ser diferente da URL final da página se houver redirecionamentos.",
                              "type": "string"
                            },
                            "statusCode": {
                              "type": "integer"
                            },
                            "title": {
                              "type": "string"
                            },
                            "totalPages": {
                              "description": "Para entradas em PDF, o número real de páginas do documento antes de qualquer limitação por maxPages. Omitido quando não for possível determiná-lo; um totalPages maior que numPages indica que o resultado foi truncado.",
                              "type": "integer"
                            },
                            "url": {
                              "description": "A URL final da página após seguir todos os redirecionamentos.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "rawHtml": {
                          "description": "Conteúdo HTML bruto, se solicitado em formatos",
                          "nullable": true,
                          "type": "string"
                        },
                        "screenshot": {
                          "description": "URL da captura de tela, se solicitada em formatos. As capturas de tela expiram após 24 horas e não podem mais ser baixadas.",
                          "nullable": true,
                          "type": "string"
                        },
                        "title": {
                          "description": "Título do resultado da pesquisa",
                          "type": "string"
                        },
                        "url": {
                          "description": "URL do resultado de busca",
                          "type": "string"
                        },
                        "video": {
                          "description": "URL assinada para o arquivo de vídeo extraído, se `video` estiver em `formatos`. A URL assinada expira após 1 hora.",
                          "nullable": true,
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              },
              "id": {
                "description": "O ID da tarefa de pesquisa",
                "type": "string"
              },
              "success": {
                "type": "boolean"
              },
              "warning": {
                "description": "Mensagem de aviso caso ocorra algum problema",
                "nullable": true,
                "type": "string"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Resposta bem-sucedida"
    },
    "408": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "Request timed out",
                "type": "string"
              },
              "success": {
                "example": false,
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Tempo limite da requisição esgotado"
    },
    "500": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "code": {
                "example": "UNKNOWN_ERROR",
                "type": "string"
              },
              "error": {
                "example": "An unexpected error occurred on the server.",
                "type": "string"
              },
              "success": {
                "example": false,
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Erro do servidor"
    }
  }
}
```
