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" }
Hybrid Search APIs Operations