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

# Buscar en el Developer Index

Busca issues, pull requests fusionadas y README de repositorios de código público, junto con sitios de documentación seleccionados. Los resultados se clasifican e incluyen los pasajes coincidentes en markdown.

`POST` está disponible en la misma ruta si quieres pasar filtros de tipo array como JSON.

Los filtros repetibles aceptan cualquiera de las dos formas en `GET`: un parámetro query repetido como `types=issue&types=pull_request`, o un valor separado por comas como `types=issue,pull_request`.

<div id="how-repos-and-sources-scope-a-search">
  ## Cómo `repos` y `sources` acotan una búsqueda
</div>

El índice se divide en dos partes, y estos dos filtros las acotan de forma independiente:

* `repos` acota la parte de repositorios, es decir, los tipos `issue`, `pull_request` y `readme`
* `sources` acota la parte de documentación, es decir, el tipo `doc`
* Al pasar ambos, se combinan las dos partes en lugar de intersectarse, por lo que obtendrás resultados coincidentes de cualquiera de las dos

Como cada filtro solo se aplica a una parte, se rechaza un filtro que no puede coincidir con ninguno de los tipos solicitados, en lugar de no devolver resultados de forma silenciosa:

* `repos` sin ningún tipo de repositorio en `types` devuelve `400`, e informa que `repos` no puede coincidir con ningún tipo solicitado y que debes añadir tipos de repositorio o eliminar `repos`
* `sources` sin `doc` en `types` devuelve `400` con `sources cannot match any requested type; add doc or drop sources`

<div id="how-the-repository-filters-scope-a-search">
  ## Cómo los filtros de repositorio acotan una búsqueda
</div>

Los siete filtros de repositorio — `language` (como `Rust`), `topic` (como `async`), `license` (como `MIT`), `min_stars`, `max_stars`, `archived` y `fork` — describen un repositorio de código. La mayoría de las páginas de documentación del índice proceden de sitios web rastreados que no tienen un repositorio asociado, y ningún dato del repositorio puede incluir o excluir ese tipo de páginas.

Por lo tanto, una solicitud que envía uno de estos filtros sin acotar `sources` no obtiene resultados de tipo `doc`. Su respuesta solo contiene evidencia del repositorio: los tipos `issue`, `pull_request` y `readme`. El mapa `coverage` indica que `doc` está `unavailable`, porque la parte de documentación del índice nunca se ejecutó. Esto es intencional, no un fallo del índice.

Para conservar los resultados de documentación, elimina los filtros de repositorio. También puedes acotar la parte de documentación con `sources` y, después, consultar `coverage` para confirmar que el tipo `doc` respondió.

<CodeGroup>
  ```bash cURL theme={null}
  # No se necesita una clave de API para empezar; añade -H "Authorization: Bearer $FIRECRAWL_API_KEY" para obtener límites de tasa más 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">
  ## Valores que acepta `sources`
</div>

`sources` no es un enum fijo. Acepta ids de fuentes de documentación: cada uno debe ser una cadena no vacía de hasta 512 caracteres, con un máximo de 20 por solicitud. Los ids corresponden a los sitios de documentación del índice, y el conjunto crece con el tiempo.

Para confirmar que un id se resuelve, inclúyelo y consulta el array `sources` que añade la respuesta. Solo aparece cuando enviaste `sources` e indica cada id exactamente como lo solicitaste, junto con si 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 la fuente tiene una generación publicada, por lo que pueden aparecer pruebas de documentación procedentes de ella. `indexed: false` significa que nada de ese id puede coincidir, lo que distingue un id que no está en el índice de una consulta que simplemente no encontró nada.

`repos` se devuelve de la misma forma, como un array `repos` que indica `indexed` y un desglose por tipo en `types`:

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

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

`coverage` indica el estado de cada tipo de resultado: `ok`, `degraded`, `unavailable` o `skipped`. Revísalo si falta algún tipo de resultado que esperabas:

* `skipped` significa que el valor de `types` no solicitó ese tipo
* `degraded` o `unavailable` significa que la ausencia se debe al índice o a un filtro, no a la consulta. Un filtro de repositorio es una de estas causas, como se describe en [cómo los filtros de repositorio acotan una búsqueda](#how-the-repository-filters-scope-a-search)

Para obtener una visión general del flujo de trabajo, consulta la [guía de Developer Index](/es/features/developer).


## OpenAPI

````yaml es/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 interactuar con los servicios de Firecrawl y realizar tareas de
    scraping y rastreo web.
  title: Firecrawl API
  version: v2
servers:
  - url: https://api.firecrawl.dev/v2
security:
  - bearerAuth: []
paths:
  /search/developer:
    get:
      tags:
        - Developer
      summary: Buscar en el índice para desarrolladores
      operationId: developerSearch
      parameters:
        - description: Pregunta en lenguaje natural o frase de búsqueda.
          in: query
          name: query
          required: true
          schema:
            minLength: 1
            type: string
        - description: Número de resultados clasificados que se devolverán.
          in: query
          name: k
          required: false
          schema:
            default: 10
            maximum: 100
            minimum: 1
            type: integer
        - description: >-
            Tipos de resultados en los que buscar. De forma predeterminada, se
            incluyen los cuatro. Acepta un parámetro repetido
            (`types=issue&types=pull_request`) o un único valor separado por
            comas (`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 repositorios para acotar la parte de repositorios del
            índice, como `firecrawl/firecrawl`. Se aplica solo a los tipos
            `issue`, `pull_request` y `readme`. Si se envía junto con `sources`,
            las dos partes se combinan en lugar de intersectarse, por lo que se
            devuelven resultados coincidentes de cualquiera de las dos. Devuelve
            un error 400 cuando `types` no incluye ningún tipo de repositorio,
            indicando que `repos` no puede coincidir con ningún tipo solicitado
            y que debes añadir tipos de repositorio o eliminar `repos`.
          in: query
          name: repos
          required: false
          schema:
            items:
              type: string
            type: array
        - description: >-
            IDs de fuentes de documentación para acotar la parte de
            documentación, con un máximo de 20. Se aplica solo al tipo `doc`. No
            es una enumeración fija: los IDs reflejan los sitios de
            documentación del índice y el conjunto crece con el tiempo, así que
            comprueba que un ID se resuelva enviándolo y leyendo el array
            `sources` de la respuesta. Devuelve un error 400 con `sources cannot
            match any requested type; add doc or drop sources` cuando `types` no
            incluye `doc`.
          in: query
          name: sources
          required: false
          schema:
            items:
              maxLength: 512
              minLength: 1
              type: string
            maxItems: 20
            type: array
        - description: >-
            Configúralo como `only` para limitar la búsqueda a archivos de
            skills de agentes indexados.
          in: query
          name: skills
          required: false
          schema:
            enum:
              - only
            type: string
        - description: Pasajes coincidentes que se devolverán por resultado.
          in: query
          name: passages
          required: false
          schema:
            default: 1
            maximum: 5
            minimum: 1
            type: integer
        - description: >-
            Lenguaje principal del repositorio, como `Rust`. Se aplica solo a
            los resultados de repositorio; enviarlo sin acotar `sources` no
            devuelve resultados `doc`. Consulta [cómo los filtros de repositorio
            acotan una
            búsqueda](/api-reference/endpoint/developer-search#how-the-repository-filters-scope-a-search).
          in: query
          name: language
          required: false
          schema:
            example: Rust
            type: string
        - description: >-
            Tema del repositorio, como `async`. Se aplica solo a los resultados
            de repositorios; enviarlo sin acotar `sources` no devuelve
            resultados `doc`.
          in: query
          name: topic
          required: false
          schema:
            example: async
            type: string
        - description: >-
            Licencia del repositorio, como `MIT`. Se aplica solo a los
            resultados de repositorios; enviarlo sin acotar `sources` no
            devuelve resultados `doc`.
          in: query
          name: license
          required: false
          schema:
            example: MIT
            type: string
        - description: >-
            Límite inferior de estrellas del repositorio. Se aplica solo a los
            resultados del repositorio; enviarlo sin acotar `sources` no
            devuelve resultados de `doc`.
          in: query
          name: min_stars
          required: false
          schema:
            minimum: 0
            type: integer
        - description: >-
            Límite superior de estrellas del repositorio. Solo se aplica a los
            resultados del repositorio; enviarlo sin acotar `sources` no
            devuelve resultados `doc`.
          in: query
          name: max_stars
          required: false
          schema:
            minimum: 0
            type: integer
        - description: >-
            Incluir o excluir repositorios archivados. Solo se aplica a los
            resultados del repositorio; enviarlo sin acotar `sources` no
            devuelve resultados `doc`.
          in: query
          name: archived
          required: false
          schema:
            type: boolean
        - description: >-
            Incluir o excluir bifurcaciones. Solo se aplica a los resultados de
            repositorios; enviarlo sin acotar `sources` no devuelve resultados
            `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 desarrolladores clasificados con pasajes
            coincidentes.
        '400':
          description: >-
            Solicitud no válida, incluido un filtro que no puede coincidir con
            ningún tipo solicitado
        '401':
          description: Token de acceso de portador ausente o no válido
        '429':
          description: Se superó el límite de tasa
        '500':
          description: Error interno del servidor
      security:
        - bearerAuth: []
components:
  schemas:
    DeveloperSearchResponse:
      properties:
        coverage:
          description: >-
            Estado del índice por tipo de resultado. Compruebe esto cuando falte
            un tipo de resultado esperado: `skipped` significa que el valor de
            `types` no solicitó ese tipo, mientras que `degraded` o
            `unavailable` significa que la ausencia se debe al índice o a un
            filtro, y no a la consulta. Un filtro de repositorio es una de esas
            causas; consulte [cómo los filtros de repositorio acotan una
            búsqueda](/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: >-
            Solo está presente cuando se envía `repos`. Incluye cada slug e
            indica si está indexado, además de un desglose por tipo en `types`.
          example:
            - indexed: true
              repo: firecrawl/firecrawl
              types:
                issue: true
                pullRequest: true
                readme: true
          items:
            properties:
              indexed:
                type: boolean
              repo:
                type: string
              types:
                description: >-
                  Tipos de resultados indexados para este repositorio: `issue`,
                  `pullRequest` y `readme`.
                properties:
                  issue:
                    type: boolean
                  pullRequest:
                    type: boolean
                  readme:
                    type: boolean
                type: object
            type: object
          type: array
        reranked:
          description: Indica si la lista clasificada pasó por la etapa de reclasificación.
          type: boolean
        results:
          items:
            $ref: '#/components/schemas/DeveloperSearchResult'
          type: array
        sources:
          description: >-
            Solo está presente cuando se envía `sources`. Incluye cada id
            exactamente como se solicitó e indica si está indexado. `indexed:
            true` significa que la fuente tiene una generación publicada, por lo
            que puede aparecer evidencia documental de ella; `indexed: false`
            significa que nada de ese id puede coincidir, lo que distingue un id
            que no está en el índice de una consulta que simplemente no encontró
            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 de resultado estable, como `issue:owner/repo#123`.
          example: issue:firecrawl/firecrawl#1234
          type: string
        passages:
          description: >-
            Pasajes coincidentes en Markdown, para conservar las tablas y los
            bloques de código.
          items:
            properties:
              text:
                type: string
            type: object
          type: array
        title:
          description: >-
            Suele no estar presente en los resultados de `doc`, cuando la página
            de origen no tiene un título utilizable. 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

````