---
title: "Search scoped libraries and assets for evidence"
method: POST
path: "/v1/search"
tags: ["Search"]
---

# Search scoped libraries and assets for evidence

`POST /v1/search`

## Request body

- SearchRequest
  - `query` string, required
  - `scope` Scope, required
    - `library_ids` LibraryId[], required
    - `asset_ids` AssetId[], required
  - `execution_policy` 'local_only' | 'prefer_local' | 'cloud_allowed' | 'cloud_required', required
  - `limit` integer

## Response `200`

Search results

- SearchResponse
  - `request_id` string, required
  - `execution` Execution, required
    - `location` 'local' | 'cloud', required
    - `capability_id` string, nullable
    - `capability_version` string, nullable
  - `usage` Usage, required
    - `billable` boolean, required
    - `quantity` number, required
    - `unit` string, required
    - `credits` number
  - `warnings` string[], required
  - `data` SearchResult[], required
    - `evidence` Evidence, required
      - `id` string, required
      - `asset_id` string, required
      - `kind` 'transcript' | 'frame' | 'video_clip' | 'segment', required
      - `start_seconds` number, required
      - `end_seconds` number, required
      - `quote` string, required
      - `locators` EvidenceLocator[], required
        - `type` 'local' | 'cloud', required
        - `url` string, uri, required
    - `score` number, required

## Other responses

- `default` — Standard Cerul error envelope

## Changes

- **2026-07-27** `c15615d54993` — 11 breaking, 7 warning, 11 info
  - added the new required request property `execution_policy`
  - added the new required request property `scope`
  - removed `subschema #1, subschema #2` from the request body `anyOf` list
  - removed the media type `multipart/form-data` from the request body
  - …25 more
- **2026-04-08** `6cccdc178a95` — 5 warning, 20 info
  - added the new `internal_error` enum value to the `error/code` response property for the response status `400`
  - added the new `internal_error` enum value to the `error/code` response property for the response status `401`
  - added the new `internal_error` enum value to the `error/code` response property for the response status `403`
  - added the new `internal_error` enum value to the `error/code` response property for the response status `429`
  - …21 more
- **2026-04-04** `503281cd9fb3` — 3 breaking, 22 warning, 6 info
  - removed `subschema #1, subschema #2` from the request body `anyOf` list
  - removed the media type `multipart/form-data` from the request body
  - the request property `query` became required
  - the optional response header `x-request-id` removed for the status `200`
  - …27 more

[Change history](https://skmtc.dev/cerul-ai/apis/cerul-api/changes/v1/search/post.md)

---

[API](https://skmtc.dev/cerul-ai/apis/cerul-api.md) · [All operations](https://skmtc.dev/cerul-ai/apis/cerul-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cerul-ai/cerul-api/revisions/c15615d54993/schema)
