---
title: "Public Demo Search"
method: GET
path: "/api/public/demo-search"
tags: ["public"]
---

# Public Demo Search

`GET /api/public/demo-search`

## Request

- Base URL: `https://api.kolens.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kolens.ai/api/public/demo-search`
- Auth: none declared

Up to 5 KOLs whose cached videos / search history / category
match the keyword. No auth, no credits, no scrape — visitor-facing
teaser only.

Empty results when nothing is cached for that keyword. The UI's
"Sign up to scrape this fresh" CTA is the conversion event.

Sets ``X-Demo-Quota-Remaining`` header so the UI can show
"X demos left today, sign up for unlimited".

## Query parameters

- `keyword` string, required

## Response `200`

Successful Response

- DemoSearchResponse
  - `keyword` string, required
  - `results` DemoKOL[], required
    - `username` string, required
    - `display_name` string, nullable
    - `platform` string, required
    - `follower_count` integer, nullable
    - `avg_views` number, nullable
    - `avg_engagement_rate` number, nullable
    - `bio` string, nullable
    - `avatar_url` string, nullable
    - `profile_url` string, nullable
    - `email_masked` string, nullable
    - `one_liner` string, nullable
    - `highlights` string[]
  - `total_available` integer, required
  - `truncated` boolean, required
  - `message` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/kolens/apis/kolens-api.md) · [All operations](https://skmtc.dev/kolens/apis/kolens-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kolens/apis/kolens-api/revisions/5d6865ab0a24?raw)
