---
title: "Search from Public Video Sources"
method: POST
path: "/serve/api/v1/search_public"
---

# Search from Public Video Sources

`POST /serve/api/v1/search_public`

## Request body

- SearchPublicRequest
  - `search_param` string, required — Natural-language search query. Must be non-empty.
  - `search_type` 'BY_VIDEO' | 'BY_AUDIO' — Search modality. Only BY_VIDEO and BY_AUDIO are accepted here; BY_CLIP and BY_IMAGE are explicitly rejected. BY_VIDEO is treated as BY_CLIP internally.
  - `type` 'TIKTOK' | 'YOUTUBE' | 'INSTAGRAM' — Source platform to search within.
  - `top_k` integer — Maximum number of results to return. Range 1-1000.
  - `filtering_level` 'low' | 'medium' | 'high' — Similarity-score filter. low=0.15, medium=0.225, high=0.4.

## Response `200`

Successful response

- SearchPublicResponse
  - `code` string
  - `msg` string
  - `data` object[]
    - `videoNo` string
    - `videoName` string
    - `startTime` string
    - `endTime` string
    - `audio_ts` string — Matched audio transcript (populated for BY_AUDIO).
    - `score` number, double
    - `video_bucket` string — GCS bucket of our cached copy of the public video. Omitted when the storage location cannot be resolved.
    - `video_blob` string — GCS blob path of the cached video. Use with video_bucket at GET /serve/api/v2/download to fetch the file directly.
    - `keyframe_bucket` string — GCS bucket of the matched keyframe image (BY_CLIP only).
    - `keyframe_blob` string — GCS blob path of the matched keyframe image.
  - `success` boolean
  - `failed` boolean

---

[API](https://skmtc.net/memories/apis/screenplay-extraction-api.md) · [All operations](https://skmtc.net/memories/apis/screenplay-extraction-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/memories/screenplay-extraction-api/versions/720c8c144ddc/schema)
