---
title: "Search storage objects"
method: GET
path: "/v2/storage/global-search"
tags: ["Search"]
---

# Search storage objects

`GET /v2/storage/global-search`

## Request

- Base URL: `https://connection.keboola.com`
- URL: `https://connection.keboola.com/v2/storage/global-search`
- Auth: one of:
  - API key in header `X-StorageApi-Token`
  - API key in header `X-KBC-ManageApiToken`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/keboola/apis/keboola-storage-api/docs/v2/storage/global-search/get.ts> (a function with typed inputs; its response is checked against the schema)

Search across storage objects (buckets, tables, columns, configurations) within the organization, optionally narrowed to specific projects via projectIds.

## Query parameters

- `query` string, required: Search query string.
- `limit` integer: Maximum number of results to return.
- `offset` integer: Number of results to skip (pagination).
- `types[]` string[], nullable: Filter by object type. Repeatable.
- `projectIds[]` integer[], nullable: Narrow the search to specific project ids. Repeatable.
- `branchTypes[]` string[], nullable: Filter by branch type. Repeatable.
- `branchIds[]` integer[], nullable: Filter by branch ids. Repeatable.
- `mode` 'standard' | 'regex': Search mode. Allowed values: standard, regex. Default: standard. standard: full-text search with normalisation (accent folding, lower-casing, word splitting). regex: Lucene regexp matched against the original (un-normalised) storage id and object name. - Matches if the pattern matches the id OR the name. - Whole-term semantics: "report" does NOT match "monthly_report"; use ".*report.*" to match a substring. - Case-insensitive. - Object names longer than 256 characters are not searchable in regex mode (ids are not length-limited). - An invalid or overly long pattern returns HTTP 400.

## Response `200`

Search results.

- GlobalSearchResponse: Global search results with per-type and per-project match counts.
  - `all` integer, required: Total number of matches across the organization, ignoring `limit` and `offset`.
  - `items` GlobalSearchItem[], required: Matches for the requested page.
    - `id` string, required: Identifier within its type — bucket or table string id, configuration id, configuration row id.
    - `type` 'bucket' | 'table' | 'configuration' | 'configuration-row', required: Kind of the matched object.
    - `name` string, required: Display name of the object.
    - `fullPath` GlobalSearchItemFullPath, required: Where a search hit lives. Which members are present depends on the hit `type`.
      - `project` object, required: Project the object belongs to.
        - `id` integer, required: Project id.
        - `name` string, required: Project name.
      - `branch` GlobalSearchItemBranch, required: Branch a search hit belongs to.
        - `id` integer, required: Branch id.
        - `name` string, required: Branch name.
        - `isDefault` boolean, required: Whether this is the project default branch.
        - `isNative` boolean, required: False when the branch was resolved from a fake branch rather than being a real development branch.
      - `bucket` union: Bucket the object lives in. Present for tables and bucket-scoped objects. An empty array `[]` when the bucket could not be resolved uniquely at index time.
        - GlobalSearchIdName: Identifier and display name of an object on the path to a search hit.
          - `id` string, required: Identifier of the object.
          - `name` string, nullable, required: Display name of the object; `null` for a configuration stored without a name.
        - unknown[]
          - unknown
      - `component` union: Component of the configuration. Present for configurations and configuration rows. An empty array `[]` when the component could not be resolved uniquely at index time.
        - GlobalSearchIdName: Identifier and display name of an object on the path to a search hit.
          - `id` string, required: Identifier of the object.
          - `name` string, nullable, required: Display name of the object; `null` for a configuration stored without a name.
        - unknown[]
          - unknown
      - `configuration` GlobalSearchIdName: Identifier and display name of an object on the path to a search hit.
        - `id` string, required: Identifier of the object.
        - `name` string, nullable, required: Display name of the object; `null` for a configuration stored without a name.
    - `uri` string: API detail URL. Present for buckets and tables only.
    - `componentId` string: Component the configuration belongs to. Present for configurations and configuration rows.
    - `matchedColumns` string[]: Column names that matched, taken from the search highlight. Present for tables matched by a column name; the full column list is never returned.
    - `organizationId` integer, required: Organization the object belongs to.
    - `projectId` integer, required: Project the object belongs to.
    - `projectName` string: Name of that project.
    - `created` string, date-time, required: When the object was created.
  - `byType` object, required: Match counts per object type, plus `total`. Only types with at least one match are present.
    - `total` integer, required: Number of matches across all types.
  - `byProject` union, required: Names of the projects the matches come from, keyed by project id; an empty array `[]` when nothing matched.
    - object
    - unknown[]
      - unknown

## Other responses

- `400`: Invalid query, invalid regex pattern, or pattern exceeds the maximum allowed length.

---

[API](https://skmtc.dev/keboola/apis/keboola-storage-api.md) - [All operations](https://skmtc.dev/keboola/apis/keboola-storage-api/llms.txt) - [OpenAPI document](https://skmtc.dev/keboola/apis/keboola-storage-api/revisions/34b5ceac0317?raw)
