---
title: "Feature Search"
method: POST
path: "/v1/features/search"
tags: ["Feature Search"]
---

# Feature Search

`POST /v1/features/search`

Search documents by vector similarity across collections. A convenience wrapper that builds an ad-hoc retriever with a single feature_search stage.

## Request body

- FeatureSearchRequest
  - `collection_identifiers` string[] — Collection IDs or names to search. OPTIONAL: omit (or pass []) on standalone/BYOV namespaces to search the namespace's direct-upsert documents without naming a collection.
  - `query` FeatureSearchQuery, required
    - `input_mode` string — Input mode: text, image, url, or vector.
    - `text` string, nullable — Text query (when input_mode=text).
    - `url` string, nullable — URL query (when input_mode=url).
    - `image` string, nullable — Base64 image (when input_mode=image).
    - `vector` union — Pre-computed query vector (when input_mode=vector). Either a single dense vector (list[float]) or multi-vector token embeddings (list[list[float]], e.g. ColBERT). NOTE — this field is specific to THIS convenience endpoint. In a retriever's feature_search STAGE the canonical carrier is 'value': {"input_mode": "vector", "value": [...]}. The stage also accepts 'vector' as a forgiving alias (normalized to 'value'), so the same shape works in both places.
      - number[]
      - array[]
        - number[]
  - `feature_uri` string — Feature URI to search against.
  - `top_k` integer — Number of results to return.
  - `filters` object, nullable — Pre-filters to apply before search.

## Response `200`

Successful Response

- unknown

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/mixpeek/apis/mixpeek-api.md) · [All operations](https://skmtc.net/mixpeek/apis/mixpeek-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mixpeek/mixpeek-api/versions/5d4c905106b4/schema)
