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

# Pesquise no índice para desenvolvedores

Pesquise issues, pull requests mesclados e READMEs de repositórios de código públicos, além de sites de documentação selecionados. Os resultados são ranqueados e incluem as passagens correspondentes em Markdown.

`POST` está disponível no mesmo caminho para passar filtros de array como JSON.

Filtros repetíveis aceitam qualquer uma das formas em `GET`: um parâmetro de query repetido, como `types=issue&types=pull_request`, ou um valor separado por vírgulas, como `types=issue,pull_request`.

<div id="how-repos-and-sources-scope-a-search">
  ## Como `repos` e `sources` restringem uma busca
</div>

O índice tem duas partes, e esses dois filtros restringem cada uma delas de forma independente:

* `repos` restringe a parte do repositório, ou seja, os tipos `issue`, `pull_request` e `readme`
* `sources` restringe a parte da documentação, ou seja, o tipo `doc`
* Informar ambos combina as duas partes, em vez de cruzá-las, para que você receba resultados correspondentes de qualquer uma delas

Como cada filtro se aplica a apenas uma parte, um filtro que não pode corresponder a nenhum tipo solicitado é rejeitado, em vez de não retornar resultados silenciosamente:

* `repos` sem nenhum tipo de repositório em `types` retorna `400`, informando que `repos` não pode corresponder a nenhum tipo solicitado e que você deve adicionar tipos de repositório ou remover `repos`
* `sources` sem `doc` em `types` retorna `400` com `sources cannot match any requested type; add doc or drop sources`

<div id="how-the-repository-filters-scope-a-search">
  ## Como os filtros de repositório restringem uma busca
</div>

Os sete filtros de repositório — `language` (como `Rust`), `topic` (como `async`), `license` (como `MIT`), `min_stars`, `max_stars`, `archived` e `fork` — descrevem um repositório de código. A maioria das páginas de documentação do índice vem de sites rastreados sem um repositório associado, e nenhum atributo de repositório pode incluir ou excluir essas páginas.

Por isso, uma solicitação que envia um desses filtros sem especificar `sources` não retorna resultados `doc`. A resposta contém apenas evidências de repositório: os tipos `issue`, `pull_request` e `readme`. O mapa `coverage` informa `doc` como `unavailable`, pois a parte da documentação do índice não foi consultada. Isso é intencional, não uma falha do índice.

Para manter os resultados da documentação, remova os filtros de repositório. Você também pode restringir a parte da documentação com `sources` e consultar `coverage` para confirmar que o tipo `doc` retornou resultados.

<CodeGroup>
  ```bash cURL theme={null}
  # Não é necessária uma chave de API para começar; adicione -H "Authorization: Bearer $FIRECRAWL_API_KEY" para limites de taxa mais altos:
  curl -s "https://api.firecrawl.dev/v2/search/developer?query=how%20do%20I%20configure%20retries&k=10&language=Rust&license=MIT"
  ```

  ```bash cURL (POST) theme={null}
  curl -X POST https://api.firecrawl.dev/v2/search/developer \
    -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "query": "how do I configure retries",
      "k": 10,
      "types": ["issue", "pull_request"],
      "language": "Rust",
      "license": "MIT"
    }'
  ```
</CodeGroup>

<div id="which-values-sources-accepts">
  ## Quais valores `sources` aceita
</div>

`sources` não é um enum fixo. Aceita IDs de fontes de documentação, cada um uma string não vazia de até 512 caracteres, com no máximo 20 por solicitação. Os IDs correspondem aos sites de documentação presentes no índice, e esse conjunto cresce ao longo do tempo.

Para confirmar que um ID é reconhecido, informe-o e verifique o array `sources` adicionado à resposta. Ele só aparece quando você envia `sources` e informa cada ID exatamente como foi solicitado, além de indicar se está indexado:

```json theme={null}
{
  "success": true,
  "results": [],
  "sources": [
    { "source": "some-docs-site", "indexed": true },
    { "source": "unknown-docs-site", "indexed": false }
  ]
}
```

`indexed: true` significa que a fonte tem uma geração publicada; portanto, evidências da documentação dela podem aparecer. `indexed: false` significa que nada desse id pode corresponder, o que diferencia um id que não está no índice de uma query que simplesmente não encontrou nada.

`repos` também é retornado da mesma forma, como um array `repos` que informa `indexed` e apresenta uma divisão por tipo em `types`:

```json theme={null}
{
  "success": true,
  "results": [],
  "repos": [
    {
      "repo": "firecrawl/firecrawl",
      "indexed": true,
      "types": { "issue": true, "pullRequest": true, "readme": true }
    }
  ]
}
```

<div id="reading-coverage">
  ## Como interpretar `coverage`
</div>

`coverage` informa o status de cada tipo de resultado: `ok`, `degraded`, `unavailable` ou `skipped`. Verifique-o quando um tipo de resultado esperado estiver ausente:

* `skipped` significa que o valor de `types` não solicitou esse tipo
* `degraded` ou `unavailable` significa que a lacuna veio do índice ou de um filtro, não da query. Um filtro de repositório é uma dessas causas, como explica [a seção sobre como os filtros de repositório restringem uma busca](#how-the-repository-filters-scope-a-search)

Para uma visão geral do fluxo de trabalho, consulte o [guia do índice para desenvolvedores](/pt-BR/features/developer).


## OpenAPI

````yaml pt-BR/api-reference/v2-openapi.json GET /search/developer
openapi: 3.0.0
info:
  contact:
    email: support@firecrawl.dev
    name: Firecrawl Support
    url: https://firecrawl.dev/support
  description: >-
    API para interagir com os serviços do Firecrawl e executar tarefas de web
    scraping e crawling.
  title: Firecrawl API
  version: v2
servers:
  - url: https://api.firecrawl.dev/v2
security:
  - bearerAuth: []
paths:
  /search/developer:
    get:
      tags:
        - Developer
      summary: Pesquise no índice para desenvolvedores
      operationId: developerSearch
      parameters:
        - description: Pergunta em linguagem natural ou termo de busca.
          in: query
          name: query
          required: true
          schema:
            minLength: 1
            type: string
        - description: Número de resultados ranqueados a retornar.
          in: query
          name: k
          required: false
          schema:
            default: 10
            maximum: 100
            minimum: 1
            type: integer
        - description: >-
            Tipos de resultado a pesquisar. O padrão inclui os quatro tipos.
            Aceita um parâmetro repetido (`types=issue&types=pull_request`) ou
            um único valor separado por vírgulas (`types=issue,pull_request`).
          in: query
          name: types
          required: false
          schema:
            items:
              enum:
                - doc
                - issue
                - pull_request
                - readme
              type: string
            type: array
        - description: >-
            Slugs de repositório para restringir a parte do índice referente ao
            repositório, como `firecrawl/firecrawl`. Aplica-se apenas aos tipos
            `issue`, `pull_request` e `readme`. Quando enviados junto com
            `sources`, as duas partes são combinadas, e não cruzadas, portanto
            os resultados correspondentes podem vir de qualquer uma delas.
            Retorna 400 quando não há nenhum tipo de repositório em `types`,
            informando que `repos` não pode corresponder a nenhum tipo
            solicitado e que você deve adicionar tipos de repositório ou remover
            `repos`.
          in: query
          name: repos
          required: false
          schema:
            items:
              type: string
            type: array
        - description: >-
            IDs de fontes de documentação para restringir a parte da
            documentação a, no máximo, 20. Aplica-se apenas ao tipo `doc`. Não é
            uma enumeração fixa: os IDs refletem os sites de documentação no
            índice, e o conjunto cresce ao longo do tempo; portanto, confirme se
            um ID é válido enviando-o e consultando o array `sources` na
            resposta. Retorna 400 com `sources cannot match any requested type;
            add doc or drop sources` quando `doc` não está em `types`.
          in: query
          name: sources
          required: false
          schema:
            items:
              maxLength: 512
              minLength: 1
              type: string
            maxItems: 20
            type: array
        - description: >-
            Defina como `only` para limitar a busca a arquivos indexados de
            skill de agente.
          in: query
          name: skills
          required: false
          schema:
            enum:
              - only
            type: string
        - description: Passagens correspondentes a retornar por resultado.
          in: query
          name: passages
          required: false
          schema:
            default: 1
            maximum: 5
            minimum: 1
            type: integer
        - description: >-
            Linguagem principal do repositório, como `Rust`. Aplica-se apenas
            aos resultados de repositório; enviá-lo sem restringir `sources` não
            retorna resultados de `doc`. Consulte [como os filtros de
            repositório restringem uma
            busca](/api-reference/endpoint/developer-search#how-the-repository-filters-scope-a-search).
          in: query
          name: language
          required: false
          schema:
            example: Rust
            type: string
        - description: >-
            Tópico do repositório, como `async`. Aplica-se apenas aos resultados
            de repositório; enviá-lo sem restringir `sources` não retorna
            resultados de `doc`.
          in: query
          name: topic
          required: false
          schema:
            example: async
            type: string
        - description: >-
            Licença do repositório, como `MIT`. Aplica-se apenas aos resultados
            de repositório; enviá-la sem restringir `sources` não retorna
            resultados de `doc`.
          in: query
          name: license
          required: false
          schema:
            example: MIT
            type: string
        - description: >-
            Limite mínimo de estrelas do repositório. Aplica-se apenas a
            resultados de repositório; enviá-lo sem restringir `sources` não
            retorna resultados de `doc`.
          in: query
          name: min_stars
          required: false
          schema:
            minimum: 0
            type: integer
        - description: >-
            Limite máximo de estrelas do repositório. Aplica-se apenas a
            resultados de repositório; enviá-lo sem restringir `sources` não
            retorna resultados de `doc`.
          in: query
          name: max_stars
          required: false
          schema:
            minimum: 0
            type: integer
        - description: >-
            Incluir ou excluir repositórios arquivados. Aplica-se apenas a
            resultados de repositório; enviá-lo sem restringir `sources` não
            retorna resultados de `doc`.
          in: query
          name: archived
          required: false
          schema:
            type: boolean
        - description: >-
            Incluir ou excluir forks. Aplica-se apenas aos resultados de
            repositório; enviá-lo sem restringir `sources` não retorna
            resultados de `doc`.
          in: query
          name: fork
          required: false
          schema:
            type: boolean
      responses:
        '200':
          content:
            application/json:
              example:
                coverage:
                  doc: ok
                  issue: ok
                  pull_request: ok
                  readme: ok
                reranked: true
                results:
                  - id: issue:firecrawl/firecrawl#1234
                    passages:
                      - text: >-
                          The client treats 429 as a terminal status, so the
                          backoff never runs.
                    title: Retries are not applied to 429 responses
                    type: issue
                    url: https://github.com/firecrawl/firecrawl/issues/1234
                success: true
              schema:
                $ref: '#/components/schemas/DeveloperSearchResponse'
          description: >-
            Resultados para desenvolvedores ranqueados com passagens
            correspondentes.
        '400':
          description: >-
            Solicitação inválida, incluindo um filtro que não pode corresponder
            a nenhum dos tipos solicitados
        '401':
          description: Bearer token ausente ou inválido
        '429':
          description: Limite de taxa excedido
        '500':
          description: Erro interno do servidor
      security:
        - bearerAuth: []
components:
  schemas:
    DeveloperSearchResponse:
      properties:
        coverage:
          description: >-
            Integridade do índice por tipo de resultado. Verifique isso quando
            um tipo de resultado esperado estiver ausente: `skipped` significa
            que o valor de `types` não solicitou esse tipo, enquanto `degraded`
            ou `unavailable` significa que a ausência se deve ao índice ou a um
            filtro, e não à consulta. Um filtro de repositório é uma dessas
            causas — veja [como os filtros de repositório restringem uma
            busca](/api-reference/endpoint/developer-search#how-the-repository-filters-scope-a-search).
          properties:
            doc:
              enum:
                - ok
                - degraded
                - unavailable
                - skipped
              type: string
            issue:
              enum:
                - ok
                - degraded
                - unavailable
                - skipped
              type: string
            pull_request:
              enum:
                - ok
                - degraded
                - unavailable
                - skipped
              type: string
            readme:
              enum:
                - ok
                - degraded
                - unavailable
                - skipped
              type: string
          type: object
        repos:
          description: >-
            Presente apenas quando `repos` é enviado. Retorna cada slug e indica
            se está indexado, além de uma divisão por tipo em `types`.
          example:
            - indexed: true
              repo: firecrawl/firecrawl
              types:
                issue: true
                pullRequest: true
                readme: true
          items:
            properties:
              indexed:
                type: boolean
              repo:
                type: string
              types:
                description: >-
                  Quais tipos de resultados estão indexados para este
                  repositório: `issue`, `pullRequest` e `readme`.
                properties:
                  issue:
                    type: boolean
                  pullRequest:
                    type: boolean
                  readme:
                    type: boolean
                type: object
            type: object
          type: array
        reranked:
          description: Indica se a lista ranqueada passou pela etapa de reranqueamento.
          type: boolean
        results:
          items:
            $ref: '#/components/schemas/DeveloperSearchResult'
          type: array
        sources:
          description: >-
            Presente somente quando `sources` é enviado. Informa cada ID
            exatamente como solicitado, indicando se está indexado. `indexed:
            true` significa que a fonte tem uma geração publicada, portanto,
            evidências da documentação dela podem aparecer; `indexed: false`
            significa que nada desse ID pode corresponder, o que distingue um ID
            que não está no índice de uma query que simplesmente não encontrou
            nada.
          example:
            - indexed: true
              source: some-docs-site
            - indexed: false
              source: unknown-docs-site
          items:
            properties:
              indexed:
                type: boolean
              source:
                type: string
            type: object
          type: array
        success:
          type: boolean
      type: object
    DeveloperSearchResult:
      properties:
        id:
          description: ID estável do resultado, como `issue:owner/repo#123`.
          example: issue:firecrawl/firecrawl#1234
          type: string
        passages:
          description: >-
            Passagens correspondentes em Markdown, para preservar tabelas e
            blocos de código.
          items:
            properties:
              text:
                type: string
            type: object
          type: array
        title:
          description: >-
            Frequentemente ausente em resultados `doc`, nos quais a página de
            origem não tem um título utilizável. Use `url` como alternativa.
          type: string
        type:
          description: Tipo de resultado.
          enum:
            - doc
            - issue
            - pull_request
            - readme
          type: string
        url:
          format: uri
          type: string
      type: object
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````