Unified Search (Find)
findUnified search across a workspace or share — ONE query, results GROUPED BY TYPE into buckets (files, metadata [workspace only], comments), each independently paginated and health-reported. action='describe' gives the full action/param reference. storage action=search is the files-only search, with a smaller default page, files_scope/metadata_filters and the depth surface; find adds metadata-only hits and comments in the same call; metadata action=search covers lexical metadata fields alone.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Alias for search (the name storage + code-mode search use). | |
| action | Yes | Operation. Use 'describe' for full action reference. | |
| detail | No | Files-bucket rows on workspaces AND shares: caps `content_snippet` (standard 600 bytes, terse 200, full untrimmed). On a WORKSPACE also the `facts` tier: standard (default) up to 8 fields WITH values, full up to 100, terse names-only so a terse row carries NO `facts`. Shares carry no facts at any tier. See action='describe'. | |
| search | No | Search query string. 1-1024 chars; empty/blank rejected (platform 1605). Searched across every applicable bucket. (Alias: query.) | |
| share_id | No | Alias for profile_id when profile_type=share. | |
| search_in | No | filename | content | both (DEFAULT). filename = name only, find-style. content = the AI's summary + semantic, NOT grep. Sending it changes the response shape (adds a search_metadata block); omitting it reproduces today's behavior byte-for-byte. filename pairs with name_match. | |
| context_id | No | Alias for profile_id. | |
| name_match | No | auto (DEFAULT) | exact | prefix | contains | glob. exact = whole name; prefix = starts with; contains = substring — those three are LITERAL (* and ? are ordinary chars). glob = wildcards over the WHOLE name: *.pdf, report-*.xlsx. No pre-escaping needed. Applies when search_in is filename or both; auto keeps today's relevance. Precise modes cap the pattern at 256 chars, reject an empty one. | |
| profile_id | No | Workspace or share opaque ID (19-digit numeric ID or custom name). Pair with profile_type. Four accepted aliases besides this one (five id params total): workspace_id, share_id, context_id, instance_id — the supplied id must match profile_type (workspace_id only with profile_type=workspace, share_id only with share). | |
| files_limit | No | files bucket page size (default 25). | |
| instance_id | No | Alias for profile_id (REST/how-to name; profile_id is canonical). | |
| context_type | No | Alias for profile_type. | |
| files_offset | No | files bucket result offset (default 0). | |
| profile_type | No | Profile to search: "workspace" or "share". (Alias: context_type.) | |
| workspace_id | No | Alias for profile_id when profile_type=workspace. | |
| case_sensitive | No | Case-sensitive matching for exact/prefix/contains/glob. Default false (like find -iname), which folds non-ASCII too. Ignored under name_match=auto. | |
| comments_limit | No | comments bucket page size (default 25). | |
| metadata_limit | No | metadata bucket page size (default 25). Workspace only — dropped from the request on a share (shares have no metadata bucket). | |
| comments_offset | No | comments bucket result offset (default 0). | |
| metadata_offset | No | metadata bucket result offset (default 0). Workspace only — dropped from the request on a share (shares have no metadata bucket). |