---
title: "Search code"
method: POST
path: "/api/search"
tags: ["Search & Navigation"]
---

# Search code

`POST /api/search`

Executes a blocking code search and returns all matching file chunks.

## Request body

- PublicSearchRequest
  - `query` string, required
  - `matches` number, required
  - `contextLines` number
  - `whole` boolean
  - `isRegexEnabled` boolean
  - `isCaseSensitivityEnabled` boolean

## Response `200`

Search results.

- PublicSearchResponse
  - `stats` object, required
    - `actualMatchCount` number, required
    - `totalMatchCount` number, required
    - `duration` number, required
    - `fileCount` number, required
    - `filesSkipped` number, required
    - `contentBytesLoaded` number, required
    - `indexBytesLoaded` number, required
    - `crashes` number, required
    - `shardFilesConsidered` number, required
    - `filesConsidered` number, required
    - `filesLoaded` number, required
    - `shardsScanned` number, required
    - `shardsSkipped` number, required
    - `shardsSkippedFilter` number, required
    - `ngramMatches` number, required
    - `ngramLookups` number, required
    - `wait` number, required
    - `matchTreeConstruction` number, required
    - `matchTreeSearch` number, required
    - `regexpsConsidered` number, required
    - `flushReason` string, required
  - `files` object[], required
    - `fileName` object, required
      - `text` string, required
      - `matchRanges` object[], required
        - `start` object, required
          - `byteOffset` number, required
          - `lineNumber` number, required
          - `column` number, required
        - `end` object, required
          - `byteOffset` number, required
          - `lineNumber` number, required
          - `column` number, required
    - `webUrl` string, required
    - `externalWebUrl` string
    - `repository` string, required
    - `repositoryId` number, required
    - `language` string, required
    - `chunks` object[], required
      - `content` string, required
      - `matchRanges` object[], required
        - `start` object, required
          - `byteOffset` number, required
          - `lineNumber` number, required
          - `column` number, required
        - `end` object, required
          - `byteOffset` number, required
          - `lineNumber` number, required
          - `column` number, required
      - `contentStart` object, required
        - `byteOffset` number, required
        - `lineNumber` number, required
        - `column` number, required
      - `symbols` object[]
        - `symbol` string, required
        - `kind` string, required
        - `parent` object
          - `symbol` string, required
          - `kind` string, required
    - `branches` string[]
    - `content` string
  - `repositoryInfo` object[], required
    - `id` number, required
    - `codeHostType` 'github' | 'gitlab' | 'gitea' | 'gerrit' | 'bitbucketServer' | 'bitbucketCloud' | 'genericGitHost' | 'azuredevops', required
    - `name` string, required
    - `displayName` string
    - `webUrl` string
  - `isSearchExhaustive` boolean, required

## Other responses

- `400` — Invalid request body.
- `500` — Unexpected search failure.

---

[API](https://skmtc.net/sourcebot/apis/sourcebot-public-api.md) · [All operations](https://skmtc.net/sourcebot/apis/sourcebot-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sourcebot/sourcebot-public-api/versions/b0ed96fb7103/schema)
