Hybrid Search APIs
The Hybrid Search API runs keyword search and an AI answer in a single call — ranked results next to a cited answer. It is the backend for a unified search box that both finds documents and answers questions.
Possible use cases: a site search box that answers questions inline, classic search-results pages, and answer-on-search experiences.
Unlike the Ask API, search results come back immediately in data.products. If an answer is generated (controlled by answer), you also receive a question_id to poll for the streaming answer.
Example 1 — Search + answer (simplest)
answer: "AUTO" returns results now and adds an answer only when the query looks like a question:
POST /v1/ask/search
{ "q": "interest rate cuts 2026", "answer": "AUTO" }
Response — results immediately, plus a question_id when an answer is being generated:
{
"message": "success",
"data": {
"miso_id": "b7c9e1a2-3d4e-5f60-7a8b-9c0d1e2f3a4b",
"question_id": "0e1f2a3b-4c5d-6e7f-8a9b-0c1d2e3f4a5b",
"took": 142,
"total": 87,
"products": [
{
"product_id": "art-20260612-rates",
"title": "Central bank signals 2026 cuts",
"url": "https://example.com/markets/rates"
}
]
}
}
Render products straight away, then poll GET /v1/ask/questions/{question_id}/answer for the answer (same as the Ask API).
Example 2 — Search only (no answer)
For a classic results page, turn the answer off:
POST /v1/ask/search
{ "q": "interest rate cuts 2026", "answer": false, "rows": 20 }
Example 3 — Scope to a subscription tier
Use fq to restrict candidates without affecting ranking, and fl to choose returned fields:
POST /v1/ask/search
{
"q": "interest rate cuts",
"answer": "AUTO",
"fq": "tier:\"premium\"",
"fl": ["title", "url", "cover_image"]
}
Example 4 — Faceted, newest-first results page
POST /v1/ask/search
{
"q": "interest rates",
"rows": 20,
"order_by": "-published_at",
"facets": [
"categories",
"tags"
]
}
Facet counts come back in data.facet_counts, ready to build a filter UI:
{
"data": {
"facet_counts": {
"facet_fields": {
"categories": [["Markets", 41], ["Economy", 18]],
"tags": [["interest rates", 22], ["inflation", 9]]
}
}
}
}
Example 5 — Personalized search
Pass the user (or anonymous_id) so both the ranking and the answer are tailored:
POST /v1/ask/search
{ "q": "best funds this year", "answer": "AUTO", "user_id": "u-10293" }
