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

# Developer Index を検索

公開コードリポジトリの issue、マージ済みのプルリクエスト、README に加え、厳選されたドキュメントサイトを検索します。結果は関連度順に表示され、一致した本文箇所が Markdown 形式で含まれます。

配列フィルターを JSON として渡す場合は、同じパスで `POST` を使用できます。

繰り返し可能なフィルターは、`GET` でどちらの形式も受け付けます。`types=issue&types=pull_request` のように query パラメータを繰り返す形式、または `types=issue,pull_request` のようにカンマ区切りの 1 つの値を指定する形式です。

<div id="how-repos-and-sources-scope-a-search">
  ## `repos` と `sources` による検索範囲の制限
</div>

インデックスは2つの部分に分かれており、これら2つのフィルターはそれぞれ独立して検索範囲を制限します。

* `repos` はリポジトリ側、つまり `issue`、`pull_request`、`readme` タイプの範囲を制限します
* `sources` はドキュメント側、つまり `doc` タイプの範囲を制限します
* 両方を指定すると、2つの部分は共通部分ではなく結合されるため、いずれかから一致する結果が返されます

各フィルターは片方の部分にのみ適用されるため、指定されたどのタイプにも一致し得ないフィルターは、何も返さずに処理されるのではなく拒否されます。

* `types` にリポジトリタイプが含まれない状態で `repos` を指定すると、`400` が返され、`repos` が要求されたどのタイプにも一致できないこと、およびリポジトリタイプを追加するか `repos` を外す必要があることが報告されます
* `types` に `doc` が含まれない状態で `sources` を指定すると、`400` が返され、`sources cannot match any requested type; add doc or drop sources` となります

<div id="how-the-repository-filters-scope-a-search">
  ## リポジトリフィルターによる検索範囲の制限
</div>

7 つのリポジトリフィルター (`language` (`Rust` など) 、`topic` (`async` など) 、`license` (`MIT` など) 、`min_stars`、`max_stars`、`archived`、`fork`) は、コードリポジトリの属性を表します。インデックス内のドキュメントページの大半は、リポジトリに紐付かないクロール済み Web サイトから取得されています。そのため、リポジトリの属性でそのようなページを含めたり除外したりすることはできません。

したがって、これらのフィルターのいずれかを指定し、`sources` で範囲を指定しないリクエストでは、`doc` の結果は返されません。レスポンスに含まれるのはリポジトリの根拠のみ、すなわち `issue`、`pull_request`、`readme` タイプです。インデックスのドキュメント側は実行されないため、`coverage` マップでは `doc` が `unavailable` と表示されます。これは仕様であり、インデックスの不具合ではありません。

ドキュメント結果を取得するには、リポジトリフィルターを削除してください。また、`sources` でドキュメント側の範囲を指定し、`coverage` を確認して `doc` タイプが応答したことを確認することもできます。

<CodeGroup>
  ```bash cURL theme={null}
  # 開始時に API キーは不要です。より高いレート制限を利用するには、-H "Authorization: Bearer $FIRECRAWL_API_KEY" を追加してください:
  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">
  ## `sources` に指定できる値
</div>

`sources` は固定の列挙型ではありません。ドキュメントのソース ID を受け付けます。各 ID は最大 512 文字の空でない文字列で、1 リクエストあたり最大 20 個指定できます。ID はインデックス内のドキュメントサイトを示しており、その一覧は随時追加されます。

ID が解決されることを確認するには、その ID を渡し、レスポンスに追加される `sources` 配列を確認します。この配列は `sources` を送信した場合にのみ含まれ、指定した各 ID と、その ID がインデックス化されているかどうかをリクエスト時のまま返します。

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

`indexed: true` は、ソースに公開済みの世代があることを示し、そのソースのドキュメントの根拠が表示される場合があります。`indexed: false` は、その ID に一致するものがないことを示します。これにより、インデックスに存在しない ID と、単に何も見つからなかった query を区別できます。

`repos` も同様に返され、`indexed` と `types` 配下のタイプ別内訳を含む `repos` 配列として返されます。

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

<div id="reading-coverage">
  ## `coverage` の見方
</div>

`coverage` は、各結果タイプの状態を `ok`、`degraded`、`unavailable`、`skipped` のいずれかで示します。期待した結果タイプがない場合は、次を確認してください。

* `skipped` は、`types` の値でそのタイプを指定していないことを意味します
* `degraded` または `unavailable` は、その欠落の原因が query ではなくインデックスまたはフィルターにあることを意味します。リポジトリフィルターもその一例です。詳しくは、[リポジトリフィルターによる検索範囲の絞り込み](#how-the-repository-filters-scope-a-search)を参照してください

ワークフローの概要については、[Developer Index ガイド](/ja/features/developer)を参照してください。


## OpenAPI

````yaml ja/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: Firecrawlのサービスを利用して、Webスクレイピングやクロールを行うためのAPIです。
  title: Firecrawl API
  version: v2
servers:
  - url: https://api.firecrawl.dev/v2
security:
  - bearerAuth: []
paths:
  /search/developer:
    get:
      tags:
        - Developer
      summary: Developer Indexを検索
      operationId: developerSearch
      parameters:
        - description: 自然言語の質問または検索フレーズ。
          in: query
          name: query
          required: true
          schema:
            minLength: 1
            type: string
        - description: 返すランク付け済み結果の数。
          in: query
          name: k
          required: false
          schema:
            default: 10
            maximum: 100
            minimum: 1
            type: integer
        - description: >-
            検索する結果タイプ。デフォルトでは4種類すべてです。繰り返しパラメータ（`types=issue&types=pull_request`）または単一のカンマ区切り値（`types=issue,pull_request`）を指定できます。
          in: query
          name: types
          required: false
          schema:
            items:
              enum:
                - doc
                - issue
                - pull_request
                - readme
              type: string
            type: array
        - description: >-
            `firecrawl/firecrawl`
            など、インデックスのリポジトリ側の対象を絞り込むリポジトリスラッグ。`issue`、`pull_request`、`readme`
            タイプにのみ適用されます。`sources`
            とともに送信した場合、両方の対象は共通部分ではなく結合されるため、いずれかに一致する結果が返されます。`types`
            にリポジトリタイプが含まれていない場合は、`repos` は要求されたどのタイプにも一致できないため、リポジトリタイプを追加するか
            `repos` を削除するよう示して400を返します。
          in: query
          name: repos
          required: false
          schema:
            items:
              type: string
            type: array
        - description: >-
            ドキュメント側の対象を絞り込むドキュメントのソースID。最大20件まで指定できます。`doc`
            タイプにのみ適用されます。固定の列挙値ではありません。IDはインデックス内のドキュメントサイトを反映しており、対象のセットは時間の経過とともに増えるため、IDを送信し、レスポンスの
            `sources` 配列を確認してIDが解決されることを確かめてください。`types` に `doc`
            が含まれていない場合は、`sources cannot match any requested type; add doc or
            drop sources` とともに400を返します。
          in: query
          name: sources
          required: false
          schema:
            items:
              maxLength: 512
              minLength: 1
              type: string
            maxItems: 20
            type: array
        - description: 検索対象をインデックス化された agent-skill ファイルに限定するには、`only` に設定します。
          in: query
          name: skills
          required: false
          schema:
            enum:
              - only
            type: string
        - description: 結果ごとに返す一致した本文箇所。
          in: query
          name: passages
          required: false
          schema:
            default: 1
            maximum: 5
            minimum: 1
            type: integer
        - description: >-
            リポジトリの主要言語。`Rust` など。リポジトリの結果にのみ適用されます。`sources`
            のスコープを指定せずに送信すると、`doc`
            の結果は返されません。[リポジトリフィルターによる検索範囲の絞り込み](/api-reference/endpoint/developer-search#how-the-repository-filters-scope-a-search)を参照してください。
          in: query
          name: language
          required: false
          schema:
            example: Rust
            type: string
        - description: >-
            リポジトリのトピック。`async` など。リポジトリの結果にのみ適用されます。`sources`
            スコープを指定せずに送信した場合、`doc` の結果は返されません。
          in: query
          name: topic
          required: false
          schema:
            example: async
            type: string
        - description: >-
            リポジトリのライセンス。`MIT` など。リポジトリの結果にのみ適用されます。`sources`
            スコープを指定せずに送信した場合、`doc` の結果は返されません。
          in: query
          name: license
          required: false
          schema:
            example: MIT
            type: string
        - description: >-
            リポジトリのスター数の下限。リポジトリの結果にのみ適用されます。`sources` スコープを指定せずに送信した場合、`doc`
            の結果は返されません。
          in: query
          name: min_stars
          required: false
          schema:
            minimum: 0
            type: integer
        - description: >-
            リポジトリのスター数の上限。リポジトリの結果にのみ適用されます。`sources` を指定せずに送信すると、`doc`
            の結果は返されません。
          in: query
          name: max_stars
          required: false
          schema:
            minimum: 0
            type: integer
        - description: >-
            アーカイブ済みリポジトリを含めるか除外するか。リポジトリの結果にのみ適用されます。`sources`
            のスコープなしで送信すると、`doc` 結果は返されません。
          in: query
          name: archived
          required: false
          schema:
            type: boolean
        - description: >-
            フォークを含めるか除外するか。リポジトリの結果にのみ適用されます。`sources` のスコープなしで送信すると、`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: 一致した本文箇所を含む、ランク付け済みの開発者向け検索結果。
        '400':
          description: 要求したどのタイプにも一致しない絞り込み条件を含む、無効なリクエスト
        '401':
          description: Bearerトークンがないか、無効です
        '429':
          description: レート制限を超過しました
        '500':
          description: 内部サーバーエラー
      security:
        - bearerAuth: []
components:
  schemas:
    DeveloperSearchResponse:
      properties:
        coverage:
          description: >-
            結果タイプごとの結果。想定した結果タイプがない場合に確認してください。`skipped` は、`types`
            の値でそのタイプが指定されていないことを意味します。`degraded` または `unavailable`
            の場合、その欠落はqueryではなくインデックスまたはフィルターに起因します。リポジトリフィルターもその原因の一つです。詳細は、[リポジトリフィルターが検索対象を限定する仕組み](/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: >-
            `repos` が送信された場合にのみ存在します。各スラッグについて、インデックス化の有無と `types`
            配下のタイプ別の内訳を返します。
          example:
            - indexed: true
              repo: firecrawl/firecrawl
              types:
                issue: true
                pullRequest: true
                readme: true
          items:
            properties:
              indexed:
                type: boolean
              repo:
                type: string
              types:
                description: 'このリポジトリでインデックス化されている結果タイプ: `issue`、`pullRequest`、`readme`。'
                properties:
                  issue:
                    type: boolean
                  pullRequest:
                    type: boolean
                  readme:
                    type: boolean
                type: object
            type: object
          type: array
        reranked:
          description: ランク付けされたリストが再ランキング処理を経たかどうか。
          type: boolean
        results:
          items:
            $ref: '#/components/schemas/DeveloperSearchResult'
          type: array
        sources:
          description: >-
            `sources` が送信された場合にのみ含まれます。要求どおりに各 ID と、その ID
            がインデックス化されているかどうかを返します。`indexed: true`
            は、ソースに公開済みの生成があることを意味するため、そのソースのドキュメント上の根拠が表示される場合があります。`indexed:
            false` は、その ID に由来するものはいずれも一致しないことを意味します。これにより、インデックスに存在しない ID
            と、単に何も見つからなかった query を区別できます。
          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: '`issue:owner/repo#123` などの安定した結果ID。'
          example: issue:firecrawl/firecrawl#1234
          type: string
        passages:
          description: 表やコードブロックを保持できるMarkdown形式の一致した本文箇所。
          items:
            properties:
              text:
                type: string
            type: object
          type: array
        title:
          description: >-
            `doc` の結果では、ソースページに使用可能なタイトルがないため、含まれないことがよくあります。代わりに `url`
            を使用してください。
          type: string
        type:
          description: 結果タイプ。
          enum:
            - doc
            - issue
            - pull_request
            - readme
          type: string
        url:
          format: uri
          type: string
      type: object
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````