---
title: "Search Chips"
method: GET
path: "/v1/search-chips"
---

# Search Chips

`GET /v1/search-chips`

## Request

- Base URL: `https://api.storyflo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.storyflo.com/v1/search-chips`
- Auth: none declared

Return the curated chip catalog rendered on the Storyflo
``/search`` landing page.

This is the source of truth — the BE boot-warming task reads from
the same module (:mod:`app.search_chips`) so chip→warming drift can
never reappear. A follow-up FE PR will replace the hardcoded chip
array in ``storyflo/app/search/page.tsx`` with a fetch against this
endpoint; until then, the FE array and this endpoint are mirrored
verbatim in :mod:`app.search_chips.CURATED_SEARCH_CHIP_GROUPS`.

Response shape::

    {
      "groups": [
        {"group": "Markets", "topics": ["SpaceX", "Polymarket", ...]},
        {"group": "Sports",  "topics": ["World Cup", ...]},
        ...
      ],
      "all_queries": ["SpaceX", "Polymarket", ..., "news", "bitcoin", ...]
    }

``all_queries`` is the deduplicated union of curated chips +
popular-keyword watchdog set, in the same order the boot warmer
iterates so an FE caller can debug "is my chip in the warm set?"
visually.

Public read-only — no auth, no per-user gating. Safe to cache at
the CDN edge for hours.

## Response `200`

Successful Response

- object

---

[API](https://skmtc.dev/storyflo/apis/storyflo-inference-router.md) · [All operations](https://skmtc.dev/storyflo/apis/storyflo-inference-router/llms.txt) · [OpenAPI document](https://skmtc.dev/storyflo/apis/storyflo-inference-router/revisions/c3a1a735ac7a?raw)
