---
title: "Unified Search Endpoint"
method: GET
path: "/v1/search/unified"
tags: ["search"]
---

# Unified Search Endpoint

`GET /v1/search/unified`

## 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/unified`
- Auth: none declared

Search every requested corpus and return per-corpus buckets.

Note the deliberate asymmetry with ``/v1/search/hybrid``: that endpoint
takes NO db session (a request-scoped session held across its
single-flight wait exhausted the 8-connection pool in a 2026-06-20
P0). Here a session IS needed for auth + metering, but it is used only
for those short writes — the SEARCH itself runs inside
``search_all``'s own short-lived read session, so nothing is held
across the scan.

## Query parameters

- `q` string, required
- `corpora` string, nullable: Comma-separated corpora to search: news, declassified, signals. Omit (or '*') for all. Unknown names are ignored rather than rejected so a pinned client keeps working as corpora are added.
- `profile` string, nullable: Ranking profile: 'desk' (signals lead, news/declassified are supporting evidence) or 'publisher' (news/declassified lead with attribution, signals are context). Defaults to the client's configured profile, else 'publisher'. Both profiles return the SAME buckets — only order and enrichment differ.
- `vertical` string, nullable
- `limit` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[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)
