---
title: "Hybrid search across manual pages"
method: GET
path: "/v1/search"
tags: ["search"]
---

# Hybrid search across manual pages

`GET /v1/search`

## Request

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

Search manual pages using hybrid ranking (Postgres FTS + pgvector semantic similarity merged via Reciprocal Rank Fusion). Falls back to FTS-only if embeddings are unavailable. Supports case-insensitive substring filtering by model_number (searched in applicable_models), equipment_type, manufacturer, document_id, equipment_family, and document_type. Each result includes a snippet and nested document and equipment metadata. Results include normalized_rank (score relative to top result) alongside the raw rank. low_confidence is true when the best vector cosine similarity is below 0.10 (applies in both vector and hybrid modes). Default limit: 5 results. Pass ``debug=true`` to include ``rel_pos`` (relative page position 0.0–1.0) on each result for inspecting positional ranking behavior.

## Query parameters

- `q` string, required
- `limit` integer
- `model_number` string, nullable
- `equipment_type` string, nullable
- `manufacturer` string, nullable
- `document_id` integer, nullable
- `equipment_family` string, nullable
- `document_type` string, nullable
- `mode` string
- `debug` boolean

## Headers

- `authorization` string

## Response `200`

Successful Response

- SearchResultsOut: Wrapper for search results including result-set-level confidence signal.
  - `low_confidence` boolean, required
  - `filter_warnings` string[]
  - `results` EnrichedSearchResultOut[], required
    - `page_number` integer, required
    - `printed_page_number` integer, nullable
    - `snippet` string, nullable
    - `rank` number, required
    - `normalized_rank` number, required
    - `rel_pos` number, nullable
    - `has_visual_enrichment` boolean
    - `document` SearchDocumentInfo, required: Nested document metadata within an enriched search result.
      - `document_id` integer, required
      - `title` string, required
      - `document_type` string, nullable
      - `document_version` string, nullable
      - `page_count` integer, required
      - `estimated_token_count` integer, required
      - `pdf_page_offset` integer, nullable
    - `equipment` SearchEquipmentInfo, required: Nested equipment metadata within an enriched search result.
      - `manufacturer` string, nullable
      - `equipment_type` string, nullable
      - `equipment_family` 'test_and_measurement' | 'industrial_controls' | 'automotive' | 'rf_and_communications' | 'power_electronics' | 'ics_and_microcontrollers' | 'miscellaneous', nullable
      - `applicable_models` string[]
    - `collapsed_document_ids` integer[]

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/techmanual/apis/techmanual-ai-api.md) · [All operations](https://skmtc.dev/techmanual/apis/techmanual-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/techmanual/apis/techmanual-ai-api/revisions/97e0fde41040?raw)
